|
|
|
|
|
Dicas
|
|
Visual Basic (Miscelâneas)
|
|
|
Título da Dica: Código de Barras no Visual Basic e Crystal Reports
|
|
|
|
Postada em 13/9/2003 por Ð@®l@n
Este dica irá mostrar como utilizar código de barras no Visual Basic e Crystal Report, um texto bastante didático.
Com o crescente avanço da informática em todos os setores, torna-se cada vez mais necessária a otimização e qualidade, em busca da "qualidade" para poder competir com outras empresas. A tecnologia de código de barras foi desenvolvida visando a entrada de dados automatizados e a abolição de erros humanos de digitação. Esta tecnologia é de grande utilidade em processos que envolvem digitação de informações, e a utilização do código de barras pode causar redução de até 50% no tempo e na qualidade da operação. A tecnologia de código de barras está destinada a quase todo tipo de aplicação onde se deseje automatizar a identificação de produtos, mercadorias, pessoas, documentos, etc. Tem sido extremamente útil na indústria, no comércio, em bancos e na identificação de pessoal, através de crachás, em portarias, etc.
A leitura, ao contrário do que muitos pensam, é muito simples. Uma leitora própria, ligada ao computador pela porta do teclado, joga um feixe de luz no símbolo e capta a luz refletida. A imagem recebida é comparada com uma tabela interna e decodificada. Após a decodificação, a leitora retorna para o computador os dígitos que compõem o símbolo lido, como se tivessem sido digitados no teclado. Com isto, o código tem sua entrada no computador de forma muito rápida e sem erros. Vale a pena ressaltar que estes leitores após a leitura da imagem, colocam no final dos dígitos lidos, o caracter #13, que representa a tecla , ou seja, a leitura equivale a se digitar alguns caracteres e pressionar a tecla . Com o tempo foram desenvolvidos muitos tipos de codificação para gerar símbolos com barras. Os mais conhecidos são:
CodaBar Code 49 Data Code Planet Code CodaBlock Code 93 Interleaved 2 of 5 Plessex Code Code 1 Code 128 Maxi Code PDF 417 Code 16 UPC MSI Code PostNet Code 11 EAN Nw-7 Code Telepen Code 39 Vericode e outros
Tratar com detalhe todos os tipos acima foge do contexto desta dica, portanto, mostrarei alguns detalhes dos códigos mais utilizados no comércio e nas transações financeiras. Caso deseje obter algum detalhe sobre algum dos tipos acima não citados, visite estas páginas http://www.barcodobrasil.com.br e http://www.gold.com.br/~finelli/index.html ou http://www.eanbrasil.org.br/
Código de barras do tipo 3 de 9
O código 39, 3 por 9, 3 de 9 ou 3x9, foi criado pela empresa norte-americana Interface Mechanism Inc. Ele é adotado pela maioria das empresas automotivas, de transporte aéreo e de saúde, visto a possibilidade de se codificarem caracteres alfanuméricos que são essenciais ao controle dessas tarefas.
O código 39 é um código de barra alfanumérico. O símbolo pode ser longo o suficiente para guardar informações codificadas. Ele é desenhado para codificar 26 letras maiúsculas, 10 dígitos e 7 caracteres especiais. Além disso, pode codificar todos os 128 caracteres ASCII, usando um esquema de 2 caracteres.
Cada caracter de informações codificado num símbolo de Código 39 é composto por 5 barras e quatro espaços, num total de 9 elementos. Cada barra ou espaço pode ser "largo" ou "estreito", e 3 dos 9 elementos são sempre largos.
O símbolo inclui uma área vazia, o caracter inicial " * ", as informações codificadas, o caracter final " * " e uma área vazia. O asterisco é usado somente como código de início e fim. Este é o único código de barras que você poderá utilizar, se tiver mercadorias onde os códigos apresentam letras.
Código de barras 2 de 5 intercalado O código 2 de 5 é de fácil entendimento. Ele possui 5 barras que contêm 3 barras estreitas e 2 largas. Os espaços servem apenas para separar uma barra da outra, podendo possuir qualquer tamanho, em geral o mesmo da barra estreita. Em sua estrutura existem os seguintes elementos:
>> 1 caracter de guarda inicial >> n caracteres de dados >> 1 caracter de guarda final
Este código comporta apenas números. O tamanho do símbolo gerado depende da quantidade de informações codificadas. Quanto maior o número do código, maior será o tamanho da figura gerada. Por ser um código de alta densidade, pode suportar até 18 dígitos por polegada quando impresso usando 7,5 mil x dimensão.
Neste código existem 5 barras, 2 das quais são largas, e 5 espaços, 2 deles largos. Um dígito é codificado nas barras e o dígito seguinte é codificado nos espaços.
O símbolo inclui uma zona vazia, um caracter inicial (barra estreita - espaço estreito - barra estreita - espaço estreito), as informações codificadas, um caracter final (barra larga - espaço estreito - barra estreita) e uma zona vazia.
Este padrão é utilizado pelos bancos e organizações financeiras para a confecção de boleto bancário. Mas se você tem mercadorias onde os códigos possuem apenas números e não são do padrão EAN, você poderá utilizar em suas mercadorias o código 2 de 5.
A utilização de código de barras é muito simples: vou utilizar fontes true type para a confecção das barras, as fontes utilizadas estão no disquete, para utilizá-las basta copiá-las para a pasta windows\fonts.
Para a impressão de código de barras no padrão 3 de 9 basta informar o nome da fonte e o código que deseja imprimir. Veja o código exemplo abaixo:
Printer.FontName = "C39HrP36DlTt" Printer.FontSize = 36 Printer.Print "*VASO4421*" Printer.EndDoc
Para a impressão de código de barras 2 de 5 intercalado é um pouco mais complicado, neste site http://www.synergixps.co.uk/download.htm tem um exemplo completo para a impressão deste padrão de código de barras e outros padrões, inclusive no padrão 3 de 9.
Utilizando Código de Barras no Crystal Reports
É necessário entretanto alguns arquivos como algumas fontes true type e uma dll. Podem ser adquiridas no site www.crystal.com.br. Copie estas fontes para a pasta windows\fonts e a dll para a pasta windows\system. No exemplo, utilizo o Crystal Reports 6.0 mas, a partir da versão 5.0 funciona corretamente.
Agora demonstrarei como usar o código de barras 3 de 9.
1. Abra o Crystal Reports e crie um novo relatório. 2. Vá ao menu Insert e clique na opção Formula Field. 3. Clique no botão New e informe um nome para a Formula Field. 4. Digite "*VASO4421*" no campo Formula Text. 5. Clique no botão Accept. 6. Agora inclua esta fórmula na sessão Details do relatório. 7. Mude a fonte para a fonte C39HrP36DlTt, aumente o tamanho da fonte e pronto.
No campo Formula Text, caso queira usar um campo da tabela, entre com o seguinte texto:
"*" + {Tabela.Campo} + "*"
Onde Tabela é a tabela do banco de dados e Campo é o campo da tabela que contém o código a ser convertido. Se o campo da tabela for um campo numérico, é bom lembrar de usar as funções Mid(), ToText() e Length() para converter um número em uma string, vejam:
"*"+Mid(ToText({Tabela.CampoNumérico}),1,(Length(ToText _ ({Tabela.CampoNumérico})-3))+"*"
Quando a função ToText() é usada, são acrescentados uma vírgula e dois zeros à direita do número. Exemplo: ToText(4421) = 4421,00.
Então, usando as funções Mid() e Length() elimino a vírgula e os dois zeros indesejáveis. Bem, agora para utilizar o padrão 2 de 5 intercalado, vamos usar uma função que estará disponível no Crystal Reports após copiar os arquivos Cia_itft.Ttf e u2lbcp.Dll que estão no disquete que acompanha o exemplo para as pastas windows\fonts e windows\system, respectivamente.
Depois de copiar os arquivos siga os passos abaixo:
1. Abra o Crystal Reports e crie um novo relatório. 2. Vá ao menu Insert e clique na opção Formula Field. 3. Clique no botão New e informe um nome para a Formula Field. 4. Em Functions localize a função BarcodeINTERLEAVED 2OF5("ITF-0.B", Fld) e dê um duplo click na função. 5. Em Formula Text, no lugar da expressão Fld, digite "01234". 6. Clique no botão Accept. 7. Agora inclua esta fórmula na sessão Details do relatório. 8. Mude a fonte para a fonte CIA ITF Tall, aumente o tamanho da fonte e pronto.
A formula ficará da seguinte forma: BarcodeINTERLEAVED2OF5 ("ITF-0.B", "01234").
Para utilizar um Campo de alguma tabela basta substituir a expressão Fld da função BarcodeINTERLEAVED2OF5("ITF-0.B", Fld) pelo campo da tabela, exemplo:
BarcodeINTERLEAVED2OF5("ITF-0.B", {Tabela.NomedoCampo})
Esta função encarrega-se de converter a string ou conteúdo do campo para a fonte true type que, por sua vez, apresenta o código de barras. Agora basta somente fazer a impressão.
Bloqueto bancário
A impressão de boletos bancários não é um bicho de sete cabeças. Para executar esta tarefa com sucesso é recomendado que o desenvolvedor tenha em mãos um manual de emissão de boletos que pode ser adquirido junto ao banco para o qual se deseja desenvolver o boleto bancário, pois os padrões podem variar de um banco para outro. As normas internas do Banco Central anunciam que todos os boletos de cobrança devem conter o código de barras e a linha digitável, condições estas indispensáveis para a operacionalização da Compensação Eletrônica de Cobrança. Estas são as características que todos os bancos adotam, mas nem todos os bancos tratam as informações da mesma forma. Tive uma experiência semelhante ao desenvolver boletos de cobrança para dois bancos diferentes.
Basicamente, o desenvolvimento de um boleto bancário se resume em preencher alguns campos do boleto, gerar o código de barras e a linha digitável, itens que devem seguir as normas do banco em questão.
O código de barras tem que ser do tipo 2 de 5 intercalado, devendo conter 44 posições no máximo. Estas posições (dígitos) disponíveis na barra devem conter obrigatoriamente as seguintes informações: código do banco, tipo de moeda, dígito verificador do código de barras, valor do documento, código do cedente, código do documento, data do vencimento em formato Juliano quando o documento tiver vencimento.
O cálculo padronizado do dígito verificador do código de barras é o módulo 11, com pesos de 2 a 9, alinhados da direita para a esquerda. O resultado da operação deve ser diminuído do numeral 11, utilizar dígito 1 (um) sempre que o resultado do cálculo padrão for igual a 0, 1 ou 10. Para o cálculo, deve-se considerar apenas as posições de 1 a 4 e de 6 a 44, iniciando pela 44º posição e saltando para a 5º posição.
A linha digitável é a tradução do conteúdo do código de barras. Trata-se de informação obrigatória e deve estar impressa na margem superior direita da "Ficha de Compensação", sendo opcional para as demais vias do boleto. A linha digitável é dividida em 5 campos e cada campo contém um grupo de dígitos. Nos três primeiros campos o último dígito é o dígito verificador do campo que é calculado com o módulo 10 e pesos de 2 a 1 da direita para a esquerda.
Como foi dito, tenha em mãos um manual do banco com as normas e exemplos dos cálculos em questão, para o desenvolvimento dos dígitos que compõem o código de barras e a linha digitável.
Conclusões
O código de barras é utilizado em quase todos os seguimentos comerciais e industriais, portanto, não deixe esta tecnologia para depois. Para utilizar código de barras o único trabalho que temos é a impressão da imagem, pois como foi dito, a leitora se encarrega do restante.
|
|
|
|
|