Código de barras sem mistérios

Código de barras sem mistérios

por Luiz Cláudio C. V. da Rocha

Para ler todas as matérias da FórumAccess, assine a revista no endereço http://www.forumaccess.com.br/novo/
Este artigo discute:
Este artigo usa as seguintes tecnologias:
  • Código de barras
Access 97, 2000 e XP


INTRODUÇÃO

Quem se lembra da operação de varejo no Brasil antes dos anos 90, quando a tecnologia era “proibida” por aqui, sabe a grandeza que representa a automação comercial. Nos supermercados, por exemplo, o funcionário do caixa procurava a etiqueta de preço de cada item e digitava o valor em sua máquina registradora, fazendo a soma. Muito usual também era ver uma empresa do comércio “fechada para inventário”, visto que o controle era praticamente todo manual e demandava muito tempo, espaço e pessoas. Apenas as lojas menores podiam se dar ao “luxo” de conhecer mais de perto os clientes: anotava-se em sua ficha, ou na caderneta, os produtos comprados e os pagamentos realizados. Neste quadro cabe muito bem a expressão: “isto é coisa do século passado!” Mas lembre-se: faz menos de 15 anos...
Com a (tardia) entrada dos microcomputadores no Brasil, houve uma revolução na administração de varejo. O funcionário do caixa, ao invés de simplesmente somar preços, passou a entrar com o código dos produtos, e o sistema informatizado fazia o resto: totalizava as vendas, dava baixa no estoque, emitia relatórios atualizados, informava a comissão dos vendedores e tudo mais. Foi um enorme salto de produtividade. Mesmo assim, ainda era possível melhorar: ao invés do usuário entrar com os dados, por que não o próprio sistema capturá-lo? É aqui que entra o código de barras, uma tecnologia aplicada a muitas áreas: indústria, comércio, bancos, bibliotecas, hospitais, bancos de sangue, correios, transportes, controles de acesso etc.
Apresentarei neste artigo algumas soluções de códigos de barras aplicadas ao comércio.

O QUE SÃO CÓDIGOS DE BARRAS

Aquela estranha seqüência de barras pretas e brancas, indecifráveis para nós, nada mais é que a representação de um pequeno conjunto de números e/ou letras, impressos de uma forma que o leitor óptico possa interpretar: o preto retém a luz e o branco a reflete, de forma que o leitor capture os sinais e interprete qual a seqüência de números (ou letras) representada pelas barras.
Mesmo sendo um sistema conceitualmente simples, é a base da tecnologia de automação comercial.

TIPOS DE CÓDIGOS DE BARRAS

O desenho das barras não é sempre igual, há diferentes tipos (simbologias), ou seja, diferentes critérios para combinar barras claras e escuras. A seqüência “123”, por exemplo, pode ter diversas representações, dependendo do tipo de código utilizado.
Um leitor óptico não é capaz de ler qualquer código de barras, ele deve estar devidamente habilitado (configurado) para cada tipo que lhe for apresentado, a fim de conseguir interpretar o código. Os leitores a laser (muito usados no comércio) geralmente são configurados por comandos de programação impressos em menus (cartões) de códigos de barras, ou então por envio de comandos pela porta serial do micro. A grande maioria das lojas de varejo tem seus equipamentos configurados para ler os padrões EAN e UPC, mas geralmente também lêem o código 3 de 9 (cada tipo será explicado adiante).
Além de haver diferentes combinações de barras, alguns códigos possuem um conteúdo de dados padronizado, ou seja, a seqüência de números representados é organizada de uma determinada forma (cada posição tem um significado). Isto ocorre, por exemplo, com o EAN13, UPC12 e demais padrões de codificação estabelecidos e controlados internacionalmente. Outros códigos, como o 39, são livres, ou seja, quem for usá-lo tem a liberdade de posicionar os números e letras livremente.
A principal vantagem de se trabalhar com um padrão internacional rígido é que cada produto terá seu código exclusivo, aplicável no mundo inteiro, sem repetição, o que possibilita a integração e a troca de informações entre os vários elos da cadeia produtiva: do fabricante ao consumidor final, o código acompanha o produto. A contrapartida é a burocracia: a empresa deve se cadastrar no órgão responsável (EAN - European Article Numbering - responsável pelos códigos no mundo inteiro, exceto Estados Unidos e Canadá, em que o responsável é o UCC - Uniform Code Council), a fim de receber um ID que a identificará exclusivamente dentro do código de barras. É evidente que sem tal burocracia seria impossível existir este sistema organizado de codificação em escala global.
Já os códigos livres (não padronizados) têm a vantagem de permitir sua personalização, criando uma lógica para incluir todas as informações que precisa (veja o Box 1 - “Código interno personalizado”). É possível, por exemplo, criar um código que contenha a sigla do fornecedor, o código da categoria, o código da linha, o código da cor, e qualquer informação que permita à empresa descrever um produto apenas olhando seu código. É possível, até mesmo, incluir neste código o número de série do produto, para acompanhá-lo individualmente, fornecendo uma informação valiosa à empresa. Por outro lado, a abrangência do código não padronizado se limita à própria empresa (ou a um determinado grupo que compartilhe a mesma lógica em seu sistema).

O PAPEL DO APLICATIVO

É muito importante entender que quem deve se preocupar com a leitura das barras é o leitor óptico: ele foi criado para esta única finalidade. O aplicativo, por sua vez, deve se preocupar em entender o conteúdo que as barras representam, ou seja, os caracteres que foram interpretados pelo leitor óptico.
Eu friso este ponto porque é justamente nele que muitos desenvolvedores ficam em dúvida: “como fazer meu aplicativo entender as barras?” A resposta é simples: o aplicativo não precisa entender as barras, mas sim o conteúdo delas. O leitor óptico faz a leitura e retorna o resultado (ex: “9771414305005”). O trabalho do aplicativo deve ser tratar o “9771414305005” (buscando o ID na tabela de produtos, gravando nos detalhes de venda, imprimindo o item no cupom fiscal, etc.).

CÓDIGOS MAIS COMUNS NO COMÉRCIO

EAN13: é o código mais usado na identificação de itens comerciais. É composto de 13 dígitos: os 3 primeiros representam o país (o Brasil é 789), os 4 seguintes representam o código da empresa filiada à EAN, os próximos 5 representam o código do item comercial dentro da empresa, e o 13º dígito é o verificador, obtido por meio de cálculo algoritmo (ver edição 23 da Fórum Access para mais informações sobre o cálculo). De acordo com a grade de itens da empresa (quantidade), a composição pode ser mudada para que o item comercial tenha de 3 a 6 dígitos, e a empresa tenha 6 a 3. Ou seja, a combinação de código da empresa + código do item deve ter 9 dígitos.
EAN8: é a versão reduzida do EAN13, para embalagens pequenas. Ele não inclui o código da empresa, apenas o do país (3 dígitos), do produto (4 dígitos) e dígito verificador. Como não há o código da empresa, o licenciamento de numerações é integralmente controlado pela EAN, mediante comprovação técnica de necessidade, taxa de licenciamento e anuidade de manutenção, pois há poucos códigos disponíveis por país.
UPC-A: tem a mesma aplicação do EAN13, mas é usado para itens comercializados nos Estados Unidos e Canadá. Tem 1 dígito que representa a categoria do produto, 5 dígitos para a identificação do fabricante, 5 dígitos para a identificação do produto e 1 dígito verificador (totalizando 12). Não há identificação do país, pois o cadastro de filiados é único para EUA e Canadá.
UPC-E: é a versão UPC de 8 dígitos, obtida suprimindo 4 zeros do UPC-E (entre número da empresa e número do item).
3 de 9: é um código simples de ser gerado, aceita letras e números e é livre. Sua simbologia não é densa, dispensando o uso de dígito verificador (que é usado nos outros padrões para garantir que a leitura foi feita corretamente). Costuma ser usado para codificações internas de empresas que necessitam de caracteres alfa-numéricos (indústrias, companhias aéreas, etc.), mas também é usado em aplicações comerciais.
Em geral, os sistemas no Brasil estão modelados para receber código de 13 posições (embora a EAN recomende 14), o que possibilita trabalhar também com códigos de 8 (EAN8/UPC-E) e 12 (UPC-A) posições. O mesmo não se aplica aos sistemas norte-americanos, configurados para receber apenas 12 posições, dificultando o trabalho com EAN13. Entretanto, há um acordo entre a EAN e a UCC para que esta situação seja corrigida até 2005.

GERANDO CÓDIGO DE BARRAS NO ACCESS

Existem diferentes maneiras de se gerar códigos de barras a partir do Access:
a) Usar fontes TrueType de código de barras: no relatório cria-se uma caixa de texto e se ajusta a propriedade Nome da Fonte. Embora seja uma solução aparentemente simples, é importante lembrar que cada tipo de código de barras tem suas especificações, como caracteres de abertura e fechamento, tamanho, etc., e o relatório deve considerá-las. Além disto, geralmente as fontes não são gratuitas (é preciso comprá-las), salvo algumas exceções.
b) Usar código VBA para gerar as barras: é a solução mais interessante, pois é interna do próprio aplicativo, não sendo preciso licenciar e cuidar da distribuição de componentes externos. Entretanto, as rotinas de geração das barras são bastante complexas, estando além do escopo do dia a dia do desenvolvedor.
c) Usar um componente externo (OCX ou DLL) que tenha todas as regras encapsuladas, para que com poucas linhas de código as barras sejam geradas sem dificuldade. É uma boa solução para quem pretende trabalhar com vários padrões diferentes, pois tira do desenvolvedor a necessidade de lidar com as inúmeras particularidades e regras de cada tipo. Os componentes mais completos não são gratuitos.

GERANDO EAN13

Na edição 23 da FórumAccess foi publicado um artigo pioneiro sobre código de barras no Access, de autoria do Mauro Possato, o qual considero de leitura obrigatória a quem vai trabalhar com este recurso. O artigo explica o cálculo do dígito verificador e todo o código necessário para se gerar as etiquetas, e ainda inclui um MDB de exemplo (Ean13.mdb), que pode ser encontrado no CD Enciclopédia FórumAccess (outra fonte indispensável de estudo), ou na seção de downloads do FórumAccess (www.forumaccess.com.br/novo/downloads.asp, no link da Revista 23).
Uma outra forma de se gerar código de barras EAN13 é usar o ActiveX Chromatick BarCode, que é freeware e pode ser encontrado para download em sites como VbMania e VbBrasil, e também foi incluído no arquivo de exemplo deste artigo.
Para usá-lo, copie os arquivos CTKBCDC.OCX e CTKBCDC.DEP na pasta de sistema do Windows (c:\Windows\System ou c:\WINNT\System32, dependendo do sistema operacional) e faça o registro digitando Regsvr32 CTKBCDC.ocx na linha de comando do Iniciar/Executar do Windows (Figura 1).
Cc580676.R57_CodigoBarras_img_2(pt-br,MSDN.10).jpg
Figura 1 - Registro do componente
Feito o registro, os controles dos códigos de barras poderão ser colocados em relatórios do Access como qualquer outro controle, bastando abrir a caixa de ferramentas e clicar no botão Mais Controles (Figura 2), selecionar na lista e dimensionar no relatório.
Cc580676.R57_CodigoBarras_img_3(pt-br,MSDN.10).jpg
Figura 2 - Listagem “Mais Controles”
No arquivo de exemplo deste artigo, que deve ser usado para acompanhar os próximos itens, criei um relatório a partir do Assistente de Etiqueta e incluí os campos de código do produto (CodBarras - deixei invisível), descrição e preço. Coloquei o controle ctk_BarCode.EAN13 para exibir as barras (Figura 3), dando-lhe o nome de ctkEAN13.
Cc580676.R57_CodigoBarras_img_4(pt-br,MSDN.10).jpg
Figura 3 - Estrutura do relatório
Veja que o controle ActiveX fica configurado para imprimir zeros, então é preciso informar, em tempo de execução, o valor que deverá estar contidos nas barras (ou seja, o conteúdo do campo CodBarras), na propriedade Code. Para isto, pode ser usado o evento Ao Imprimir da seção detalhe, com a seguinte linha de código:
Me.ctkEAN13.Code = Me.CodBarras
O resultado do relatório de etiquetas pode ser visto na Figura 4.
Cc580676.R57_CodigoBarras_img_5(pt-br,MSDN.10).jpg
Figura 4 - Relatório de etiquetas EAN13

GERANDO EAN8

Para gerar o código EAN8, você pode usar o mesmo componente, porém incluindo o controle ctk_BarCode.EAN8 no relatório, dando-lhe o nome de ctkEAN8. Siga os mesmos passos descritos anteriormente, lembrando de ajustar o nome do controle na linha de código do evento Ao Imprimir da seção:
Me.ctkEAN8.Code = Me.CodBarras
O código de barras EAN8 tem a aparência mostrada na Figura 5.
Cc580676.R57_CodigoBarras_img_7(pt-br,MSDN.10).jpg
Figura 5 - Relatório EAN8

GERANDO CÓDIGO 3 DE 9

O código de barras 3 de 9 (ou Barcode39) é bastante usado para códigos personalizados, e tem a flexibilidade de imprimir letras e caracteres especiais, aumentando bastante a possibilidade de aplicação.
Uma das formas de gerá-lo é usar o mesmo componente ctk_BarCode já explicado nos tópicos anteriores, porém selecionando o controle Code39. Como neste código os caracteres não são exibidos em formato humano-legível, é recomendável deixar visível uma caixa de texto com o código do produto, para que o operador possa digitá-lo caso a leitura óptica falhe.
Entretanto, a melhor forma de se trabalhar no Access com o Barcode39 é por meio de código. No arquivo de exemplo deste artigo coloquei as funções necessárias para isto: a função MD_BC39 retorna a composição binária (de 9 dígitos) de cada letra, número e caractere especial suportados pelo Barcode39. Já a função MD_Barcode39 usa essa composição de binários para gerar as barras pretas e brancas em um controle do relatório (o nome do controle e do relatório são passados como parâmetros). Não coloquei estas funções aqui porque são extensas e estão fora do escopo do artigo, mas quem tiver curiosidade pode analisar o módulo basCodBar39 do arquivo de exemplo. Já no relatório, basta criar uma caixa de texto (Barcode39) para receber as barras, e outra com o nome (CodBarras) para exibir o código em formato humano-legível. No evento Ao Imprimir da seção detalhe, coloque uma linha de código para chamar a função MD_Barcode39:
Call MD_Barcode39(Me.Barcode39, Me)
O primeiro parâmetro é o nome do controle em que aparecerão as barras (Barcode39), o segundo parâmetro faz referência ao relatório atual (Me). O resultado é exibido na Figura 6.
Cc580676.R57_CodigoBarras_img_6(pt-br,MSDN.10).jpg
Figura 6 - Relatório do código 39
O código 3 de 9, além de letras e números, também imprime espaço, $ (cifrão), % (porcentagem), + (mais), | (“pipe”), . (ponto), - (hífen) e / (barra).
Uma terceira forma de se trabalhar com o código 39 é usar uma fonte TrueType. É possível fazer download de uma fonte gratuita no endereço www.squaregear.net/fonts/free3of9.shtml, a qual também foi incluída no arquivo de exemplo deste artigo.
Para usá-la, copie os arquivos FREE3OF9.TTF (Free 3 of 9 - para números) e FRE3OF9X.TTF (Free 3 of 9 Extended - alfanumérica) para a pasta de fontes do Windows. Em seguida, abra o Painel de Controle e o ícone Fontes. Abra o menu Arquivo/Instalar nova fonte, selecione a pasta de fontes e selecione os dois arquivos TTF, conforme indica a Figura 7.
Cc580676.R57_CodigoBarras_img_8(pt-br,MSDN.10).jpg
Figura 7 - Instalação de fontes TrueType
Com as fontes instaladas, crie uma caixa de texto no relatório do Access e selecione Free 3 of 9 Extended como propriedade Nome da Fonte.
Na origem do controle, é necessário colocar os caracteres de abertura e fechamento, que são símbolos procurados pelo leitor óptico para iniciar e finalizar a leitura. No caso do código 3 de 9, o caractere é o asterisco (*). Assim, na origem do controle coloque:
=”*” & [CodBarras] & “*”
O resultado deve ser exatamente igual ao que foi mostrado na figura 6, naturalmente.
Observação: se for trabalhar com esta fonte no Word, lembre-se de desabilitar a opção *Negrito* e _itálico_ por formatação real, no menu Ferramentas/Autocorreção/AutoFormatação ao Digitar.

IMPRESSORA TÉRMICA

Para quem precisa imprimir grande quantidade de etiquetas, uma solução mais econômica é usar uma impressora térmica (etiquetadora). Embora seja um equipamento bem mais caro que uma impressora jato de tinta comum, a economia com suprimentos (2 ou 3 cartuchos de tinta custam mais que a própria impressora) é grande. Essas etiquetadoras são muito comuns em aeroportos, usadas para emitir as etiquetas com a sigla do aeroporto de destino afixadas nas malas, e também os cartões de embarque. Funcionam com um rolo de etiquetas e outro de fita preta (ribbon), suprimentos de baixo custo. O ribbon é aquecido na cabeça de impressão, de forma a gravar texto, barras e imagens na etiqueta. O sensor do equipamento pode detectar onde acaba uma etiqueta e começa outra.
O equipamento é ligado na porta serial do micro, e para controlá-lo pode-se usar o ActiveX MSCOMM32.OCX, que vem no Visual Basic, e também está disponível no material de download da edição 35 da FórumAccess (no artigo “Coletando dados com Access”).
O código a seguir pode ser usado para imprimir etiquetas em impressora Datamax, uma das mais usadas no mercado:
Private Sub ImprimeTeste()
Dim intPorta As Integer
Dim strTexto As String
On Error GoTo Tratamento
MSComm1.CommPort = 1 ‘COM1
‘Configura a porta serial
MSComm1.Settings = “9600,n,8,2”
‘Controla o Fluxo de Dados
MSComm1.Handshaking = comRTSXOnXOff
‘Abre a porta serial
MSComm1.PortOpen = True
‘Define um avanço no papel após a impressão
MSComm1.Output = “~f256” & Chr$(13)
‘Define o Off set de coluna
MSComm1.Output = “~LC0005” & Chr$(13)
‘Define o Off set de linha
MSComm1.Output = “R0000” & Chr$(13)
‘Define o tamanho do Pixel.
MSComm1.Output = “D11” & Chr$(13)
‘Seleciona o zero não cortado
MSComm1.Output = “z” & Chr$(13)
‘Define o calor de impressão.
MSComm1.Output = “H09” & Chr$(13)
‘CAMPOS DA ETIQUETA:
MSComm1.Output = “102200100650025” & _
“SOFTWARE” & Chr$(13) ‘Categoria
MSComm1.Output = “102200100550015” & _
“VISUAL BASIC” & Chr$(13)
MSComm1.Output = “102200100550095” & _
“MICROSOFT” & Chr$(13) ‘Marca
MSComm1.Output = “102200100450015” & _
“STANDARD” & Chr$(13) ‘Tipo
MSComm1.Output = “102200100450105” & _
“2003” & Chr$(13) ‘Versão
MSComm1.Output = “102200100350015” & _
“.NET” & Chr$(13) ‘Família
MSComm1.Output = “102200100350095” & _
“65955690” & Chr$(13) ‘Código
MSComm1.Output = “102200100250015” & _
“FERRAMENTA DESENV” & Chr$(13) ‘Descrição
‘Código de barras (segunda letra minúscula) 
MSComm1.Output = “1e1202500000015” & _
“65955690” & Chr$(13) ‘letra e: padrão 128
MSComm1.Output = “121100100150145” & _
“R$” & Chr$(13) ‘Preço (cifrão)
MSComm1.Output = “121100100050145” & _
“500” & Chr$(13) ‘Preço
MSComm1.Output = “Q” & Format(1, “0000”) & _
Chr$(13) ‘Quantidade de cópias da etiqueta
‘Termina a transmissão e inicia a impressão
MSComm1.Output = “E” & Chr$(13)
Do Until MSComm1.OutBufferCount = 0
Loop
MSComm1.PortOpen = False ‘Fecha a porta
Exit Sub
Tratamento:
If Err = 8002 Then
MsgBox “Porta serial inválida.”
Exit Sub
End If
MsgBox Err.Description
End Sub
Algumas impressoras não usam o til “~” como caractere inicial, mas sim o “^B”. Neste caso, o til deve ser trocado por Chr(02) no código anterior.
Na linha de comando do código de barras, a letra “e” representa o código de barras 128, mas poderiam ser usadas as seguintes letras: “a” - código 39, “b” - UPC-A, “c” - UPC-E, “d” - I25, “f” - EAN-13, “g” - EAN-8, “h” - HIBC, “i” - Codabar, “j” - I25+CD, “k” - Plessey, “l” - Case, “m” - UPC+2, “n” - UPC+5, “o” - 93, “v” - UPC peso variável, “q” - UCC-EAN128.
Dica: a cabeça de impressão tem vida útil. Após alguns milhares de etiquetas impressas, ela vai se desgastando e as etiquetas começam a apresentar algumas falhas (riscos brancos bem finos). Se levar na assistência técnica, eles vão sugerir a troca da peça (que é bastante cara). Entretanto, como as etiquetas geralmente são bem mais estreitas que o cabeçote, é possível posicionar o rolo inteiro mais à direita e configurar o Off-Set de coluna (ver código anterior) para que a impressão comece em outro lugar. Desta forma você “foge” das falhas e aumenta bastante a vida útil da peça, trocando-a apenas quando estiver inteiramente gasta. Por isto, procure sempre começar a imprimir em um dos cantos.

ELABORANDO CÓDIGOS INTERNOS

Embora a grande maioria dos produtos em circulação no comércio já tenha um código de barras impresso pelo fabricante, em algumas situações a empresa pode ter a necessidade de fazer um controle interno.
Situação 1: imagine uma locadora de vídeos que queira controlar os itens que estão locados, os que não foram pagos ainda, as devoluções atrasadas, etc., e que tudo que ela tenha inicialmente seja apenas um cadastro de filmes, em que cada título possui um código de 6 dígitos (FFFFFF).
Este código de 6 dígitos (ex: 058489) seria suficiente, por exemplo, para informar ao cliente se ele já locou o filme antes (basta uma consulta à base de dados), mas não possibilita fazer todos os controles que a empresa precisa.
Muitos títulos disponíveis existem na versão vídeo (VHS) e DVD, e a empresa pode querer tratá-los de forma diferente. Para indicar o tipo, é possível acrescentar uma letra ao código, como “D” para DVD e “V” para VHS: FFFFFFT (ex: 058489D). Assim, a empresa pode controlar não apenas preços diferentes, mas também analisar qual tipo tem sido mais procurado, quais itens estão disponíveis em uma única versão, quais itens merecem uma atualização para DVD, etc.
Por fim, cada filme pode ter mais de uma cópia, e a locadora precisa de um controle individual de cada item. Para isto, pode acrescentar dois dígitos ao código, a fim de numerar cada unidade de um mesmo filme (01, 02, 03...): FFFFFFTUU. Assim, se a locadora adquirir 3 DVDs do filme 058489, a numeração de cada um seria 058489D01, 058489D02 e 058489D03.
Desta forma, todos os itens estariam identificados, e se o banco de dados estiver devidamente modelado, seria possível, por exemplo, a partir de uma leitura óptica no balcão de atendimento, identificar na hora se todos os filmes estão sendo devolvidos pelo cliente, quais estão dentro do prazo, quais foram pagos, etc.
Situação 2: uma empresa que fabrica e comercializa roupas no varejo precisa codificar seus produtos, visando melhor controle administrativo e planejamento de produção. Como o código será criado internamente, é interessante um mecanismo que permita identificar todos os atributos do produto, como no formato LYYTTTMMCCSS, em que:
- L: indica a coleção (verão, inverno, etc.).
- YY: indica o ano (2001, 2002, 2003).
- TTT: indica a categoria (camisa, calça, etc.).
- MM: indica o material (lã, seda, algodão, etc.).
- CC: indica a cor (branca, preta, etc.)
- SS: indica o tamanho (grande, pequeno, 40, 42, etc.).
Exemplo: 103002450278 - coleção verão 2003, calça, linho, preta, tamanho 44.
Um código deste tipo, além de facilitar a identificação dos itens no ponto de vendas (auxiliando o trabalho do vendedor), simplifica também a criação e análise dos relatórios gerenciais (itens de maior giro, tendências de cada estação, cores e materiais mais procurados, tamanhos que não vendem, e muitas outras opções).

CÓDIGOS DE BARRAS COM ERROS?

Em uma edição da Harvard Business Review, um artigo sobre cadeias de suprimentos alertou sobre o problema de erros de inventário que algumas grandes empresas americanas estavam enfrentando, mesmo trabalhando com estoque informatizado por códigos de barras. Estariam as leituras com erro?
A resposta é negativa: o erro continuava sendo dos operadores. O problema mais freqüente encontrado é a estocagem em lugar errado: na pressa do dia a dia, muitos produtos são guardados em qualquer canto, e na hora da contagem não são encontrados, pois não estão juntos. Outro problema muito comum está no caixa: o funcionário vê duas embalagens iguais, então ao invés de passar uma a uma no leitor óptico, passa duas vezes o mesmo produto, para ir mais rápido. Entretanto, um era iogurte de morango, o outro era de frutas vermelhas...
Resumo: ao implantar um sistema de códigos de barras, é muito importante dar treinamento a todos os funcionários, até mesmo àqueles que aparentemente não precisam. Às vezes um único minuto de explicação pode poupar horas de tempo desperdiçado no futuro.

CONCLUSÃO

Espero ter contribuído aqui com o seu entendimento sobre a tecnologia de código de barras, que embora não seja nova, ainda é um mistério para muitos desenvolvedores. Conforme o artigo mostrou, há diversas maneiras de se trabalhar com estes recursos. O importante é saber analisar o caso concreto e escolher a solução que melhor atenda os objetivos.
Embora haja muitos detalhes e regras, o conceito de funcionamento do código de barras é simples. Todas as vantagens aqui apresentadas (produtividade, melhor qualidade das informações, cruzamento de dados, etc.) não derivam do código de barras, mas sim de um banco de dados bem modelado. Sem isto, as barras pouco ajudarão. Juntando as duas partes (entrada de dados com qualidade e boa modelagem do banco de dados), o sistema será uma boa ferramenta de gestão, e os relatórios serão mais confiáveis.
Matérias Relacionadas:
Revista 23 - “Código de barras EAN13”
Revista 35 - “Coletores de dados”
Revista 40 - “Código de barras no VB/Crystal Reports”
Revista 41 - “Boletos bancários no Access”
Para se aprofundar:
Site EAN Brasil: www.eanbrasil.com.br
* Luiz Cláudio C. V. da Rocha (lui@link.com.br) é administrador de empresas e advogado, atua na área de desenvolvimento de sistemas e é colaborador no GD FórumAccess.

Comentários

Postagens mais visitadas