none
Como gerar um codigo de barra??

    Question

  • Estou usando o visual studio 2008 e o Microsoft ReportViewer para gerar relatorios.
    Os relatorios estao funcionando normalmente, mas gostaria de gerar um codigo de barra em cada relatorio. Nao sei como fazer isso.. tem algum componente que possa me ajudar??

    Obrigada desde ja!
    =D
    Monday, April 06, 2009 12:53 PM

Answers

  • Fala Carol !

    Não sei se entendi direito o que vc quer. Seria assim, o codigo de barra tem um tamanho pré definido, exemplo 10. O 1 e ano ocupam 5 caracteres, vc quer colocar o numero do protocolo no final, e o nº de caracteres que faltar pra fechar 10 colocar zeros ?


    Bom, se for isso, vc poderia fazer um for pra preencher o numero(string).

    Exemplo:

    12009 -> padrão ( 5 chars)
    nº protocolo -> 123 (3 chars podendo mudar)

    /// <summary>
        /// Gerar código de barras
        /// </summary>
        /// <param name="Ano">Ano Corrente (4 dígitos)</param>
        /// <param name="NProtoc">Nº do protocolo</param>
        /// <param name="TamanhoCod">Quantidade de caracteres do código</param>
        /// <returns>Retorna o código em forma de String</returns>
        protected string MontaCod(String Ano, String NProtoc, int TamanhoCod)
        {
            String codigo = "1" + Ano.Trim();
    
            int CodSemNProtc = TamanhoCod - NProtoc.Length;
    
            int NZeros = CodSemNProtc - codigo.Length;
            
            for (int i = 0; i < NZeros; i++)
            {
                codigo += "0";
            }
    
            codigo += NProtoc;
    
            return codigo;
        }
    Depois é só chamar a função, fazendo os filtros necessários:
    MontaCod("2009", "123", 10);
    Se não for essa sua dúvida, desculpe, tente ser um pouco mais clara.  =)

    Leandro Mello
    Monday, April 13, 2009 6:23 PM

All replies

  • Oi Carol!

    Eu não conheço nenhum componente e acho que não existe.

    O que te recomendaria é gerar a imagem através de código( VB.NET ou C#) e colocar essa imagem no Report.

    Dá uma lida nesses links e ve se ajuda:

    http://www.macoratti.net/boleto.htm
    http://www.macoratti.net/vbcodbar.htm

    Abraços
    Monday, April 06, 2009 6:24 PM
  • oi Leandro

    Muito obrigada! Consegui gerar o codigo de barra, mas agora estou com outro problema... na expressao que uso para gerar.
    Por exemplo, o numero gerado no codigo de barra será..
    12009123, onde 1 é fixo, o 2009 é o ano do protocolo, e o 123 seu o numero do protocolo, gostaria que entre o ano e numero do protocolo aparecesse 8 zeros (00000000), no caso ficaria
    1200900000000123
    se for fixo eu consigo por:
    =1 & year(Fields!DataProtocolo.Value) &"00000000"& Fields!IDProtocolo.Value

    mas nao quero, ficaria presa na expressao...
    queria fazer de uma maneira que se o numero do protocolo aumentar o numero de zeros diminuiria..
    nao sei se estou sendo clara..

    esse é a expressao gerada sem os zeros.
    =1 & year(Fields!DataProtocolo.Value) & FormatNumber(Fields!IDProtocolo.Value,0,

    true,false,false)

    Desde ja, agradeço!

    Carol

    Thursday, April 09, 2009 2:00 PM
  • Fala Carol !

    Não sei se entendi direito o que vc quer. Seria assim, o codigo de barra tem um tamanho pré definido, exemplo 10. O 1 e ano ocupam 5 caracteres, vc quer colocar o numero do protocolo no final, e o nº de caracteres que faltar pra fechar 10 colocar zeros ?


    Bom, se for isso, vc poderia fazer um for pra preencher o numero(string).

    Exemplo:

    12009 -> padrão ( 5 chars)
    nº protocolo -> 123 (3 chars podendo mudar)

    /// <summary>
        /// Gerar código de barras
        /// </summary>
        /// <param name="Ano">Ano Corrente (4 dígitos)</param>
        /// <param name="NProtoc">Nº do protocolo</param>
        /// <param name="TamanhoCod">Quantidade de caracteres do código</param>
        /// <returns>Retorna o código em forma de String</returns>
        protected string MontaCod(String Ano, String NProtoc, int TamanhoCod)
        {
            String codigo = "1" + Ano.Trim();
    
            int CodSemNProtc = TamanhoCod - NProtoc.Length;
    
            int NZeros = CodSemNProtc - codigo.Length;
            
            for (int i = 0; i < NZeros; i++)
            {
                codigo += "0";
            }
    
            codigo += NProtoc;
    
            return codigo;
        }
    Depois é só chamar a função, fazendo os filtros necessários:
    MontaCod("2009", "123", 10);
    Se não for essa sua dúvida, desculpe, tente ser um pouco mais clara.  =)

    Leandro Mello
    Monday, April 13, 2009 6:23 PM
  • oi Leandro,

    Desculpa pela falta de  clareza na pergunta, mas é bem isso que eu queria! hehehe

    Muito Obrigada! :D


    Carol
    Tuesday, April 14, 2009 3:16 PM
  • Oi, se a minha resposta te ajudou, marca ela como útil..   :)
    Não esqueça de marcar a resposta como útil!
    --
    Learn! Think! Produce!
    Leandro Mello
    Wednesday, July 15, 2009 5:32 PM