 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
jaironuness Novato

Registrado: Domingo, 9 de Março de 2014 Mensagens: 1
|
Enviada: Dom Mar 09, 2014 2:47 pm Assunto: como colocar criar codigo de barras para meus produtos ? |
|
|
Ola , amigos boa tarde , confesso sou leigo totalmente no assunto sobre codigos de barras .Peço a vossa ajuda como criar codigo de barras ? por onde comessar ? existe programas gratuitos para isto ? tenho que me filair a uma empresa ? agradeço desde ja a vossa ajuda e atenção.
Jaironuness. |
|
Voltar ao Topo |
|
 |
Ghost_Rider Colaborador

Registrado: Segunda-Feira, 6 de Outubro de 2003 Mensagens: 4437
|
Enviada: Seg Mar 10, 2014 4:57 pm Assunto: |
|
|
Tá...vc é fabricante de produto ou apenas revenda ??? |
|
Voltar ao Topo |
|
 |
cads0511 Novato

Registrado: Domingo, 6 de Abril de 2014 Mensagens: 3 Localização: Mongagua - SP
|
Enviada: Dom Abr 06, 2014 5:17 am Assunto: Re: como colocar criar codigo de barras para meus produtos ? |
|
|
Sua Pergunta é Realmente Muito Vaga , Acho que pelo meu Entendimento , Você quer Uma Rotina para Implantar em sua Aplicação , a Geração do Códigos de Barras , correto? se For Isso, Existe a Possibilidade sim , Porém, Você deve Entender que para uma Geração Dinâmica , devemos tratar os Dados de Forma que em Diversas Situações você deverá Utilizar a Rotina.
POr Exemplo : No Cadastro direto do Produto : O produto já vem com código Gtin ( EAN13 ) .. então basta Capta-lo.
2º) Não tenho o código , posso informa-lo da minha forma ex: 123 , 25665542 , 00002 , 00003 etc...
3º) Se Campo Código de Barras estiver Vazio Faça Gerar Valor EAN13 . 13 Digitos ( Respeitando o Digito Verificador. ) , Em Minhas Aplicações sempre procuro começar com 7890000000123 . A leitura é Certa em Todos os Modelos de Leitores de Códigos de barras.
e Procuro Tratar essa condição em todas as telas que preciso Cadatrar ou dar Entrada , seja pela NFE ou Manual.
Segue o Código Abaixo:
==============================================================================================
unit UnCriaCodBarras;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Printers;
type
TForm1 = class(TForm)
Button1: TButton;
Image1: TImage;
procedure Button1Click(Sender: TObject);
private
procedure GeraBarrasEAN13(CodBarras: string; Imagem: TCanvas);
procedure DesenhaBarras(SequenciaHexa: string; Imagem: TCanvas);
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses UnCriaCodBarrasImpressao;
{$R *.dfm}
//------------------------------------------------------------------------------
//
// .------------------------------------.
// | | Tabela A | Tabela B | Tabela C |
// |---+----------+----------+----------|
// | 0 | 0001101 | 0100111 | 1110010 |
// | 1 | 0011001 | 0110011 | 1100110 |
// | 2 | 0010011 | 0011011 | 1101100 |
// | 3 | 0111101 | 0011011 | 1000010 |
// | 4 | 0100011 | 0011101 | 1011100 |
// | 5 | 0110001 | 0111001 | 1001110 |
// | 6 | 0101111 | 0000101 | 1010000 |
// | 7 | 0111011 | 0010001 | 1000100 |
// | 8 | 0110111 | 0001001 | 1001000 |
// | 9 | 0001011 | 0010111 | 1110100 |
// .------------------------------------.
// Tabela Auxiliar
// .-----------------------.
// | Algarismo | Seqüência |
// |-----------+-----------|
// | 0 | AAAAAA |
// | 1 | AABABB |
// | 2 | AABBAB |
// | 3 | AABBBA |
// | 4 | ABAABB |
// | 5 | ABBAAB |
// | 6 | ABBBAA |
// | 7 | ABABAB |
// | 8 | ABABBA |
// | 9 | ABBABA |
// .-----------------------.
//
// Gerae código de barras padrão EAN13
procedure TForm1.GeraBarrasEAN13(CodBarras: string; Imagem: TCanvas);
const
TabelaA: array[0..9] of string[7] = ('0001101', '0011001', '0010011', '0111101', '0100011', '0110001', '0101111', '0111011', '0110111', '0001011');
TabelaB: array[0..9] of string[7] = ('0100111', '0110011', '0011011', '0011011', '0011101', '0111001', '0000101', '0010001', '0001001', '0010111');
TabelaC: array[0..9] of string[7] = ('1110010', '1100110', '1101100', '1000010', '1011100', '1001110', '1010000', '1000100', '1001000', '1110100');
TabAux: array[0..9] of string[6] = ('AAAAAA', 'AABABB', 'AABBAB', 'AABBBA', 'ABAABB', 'ABBAAB', 'ABBBAA', 'ABABAB', 'ABABBA', 'ABBABA');
var
Codigo: string;
Formato: string;
PegaDaTabela: string;
DecimoTerceiroDig: Byte;
Cont: Byte;
begin
Formato := '';
Codigo := CodBarras;
DecimoTerceiroDig := StrToIntDef(CodBarras[1], 0);
{----------------------------------------------------------------------------}
{ Tendo o 13º dígito definido, posso definir o padrão de impressão das barras}
{ no primeiro conjunto de 6 dígitos baseado na tabela Auxiliar. }
{----------------------------------------------------------------------------}
PegaDaTabela := TabAux[DecimoTerceiroDig] + 'CCCCCC';
Formato := Formato + '101'; //--> Barra Auxiliar de Guarda 'Esquerda'
for Cont := 1 to Length(PegaDaTabela) do
begin
case PegaDaTabela[Cont] of
'A': Formato := Formato + TabelaA[StrToInt(Codigo[Cont + 1])];
'B': Formato := Formato + TabelaB[StrToInt(Codigo[Cont + 1])];
'C': Formato := Formato + TabelaC[StrToInt(Codigo[Cont + 1])];
end;
if Cont = 6 then
Formato := Formato + '01010'; //--> Barra Auxiliar de Guarda 'Central'
end;
Formato := Formato + '101'; //--> Barra Auxiliar de Guarda 'Direita'
//------ Desenha o código alfa-numérico na imagem
Imagem.Font.Size := 10;
Imagem.Brush.Color := ClWhite;
Imagem.Pen.Color := ClBlack;
Imagem.TextOut(02, 51, Copy(CodBarras, 01, 01));
Imagem.TextOut(13, 51, Copy(CodBarras, 02, 06));
Imagem.TextOut(60, 51, Copy(CodBarras, 08, 06));
//------ Desenha as barras na imagem
DesenhaBarras(Formato, Imagem);
end;
procedure TForm1.DesenhaBarras(SequenciaHexa: string; Imagem: TCanvas);
var
X, Y, H: LongInt;
A, B, C, D: TPoint;
I: Boolean;
begin
Imagem.Brush.Color := ClWhite;
Imagem.Pen.Color := ClBlack;
x := 10;
i := True;
for y := 1 to Length(SequenciaHexa) do
begin
if SequenciaHexa[y] = '0' then
Imagem.Pen.Color := ClWhite
else
Imagem.Pen.Color := ClBlack;
h := 1;
a.x := x;
a.y := 0;
b.x := x;
b.y := 50;
c.x := x + h - 1;
c.y := 50;
d.x := x + h - 1;
d.y := 0;
case Y of
1..3, 46..50, 93..95:
begin
b.y := 55;
c.y := 55;
end;
end;
Imagem.Polygon([A, B, C, D]);
i := not (i);
x := x + h;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
GeraBarrasEAN13('7891089060350', Image1.Canvas);
end; _________________ Carlos Dias |
|
Voltar ao Topo |
|
 |
cads0511 Novato

Registrado: Domingo, 6 de Abril de 2014 Mensagens: 3 Localização: Mongagua - SP
|
Enviada: Dom Abr 06, 2014 5:22 am Assunto: Re: como colocar criar codigo de barras para meus produtos ? |
|
|
Agora se você Não é Programador , Mas sim Produtor ou Industrializador , te Respondo logo: Existe o Padrão Mundial para cada Código de Barras.
se Sua Empresa Precisa de Uma faixa Exclusiva de Códigos de Barras você pode Comprar. Existe Empresas que Prestam esse serviço.
GTIN - antigo EAN13 é o Padrão Brasileiro mais Encontrado.
http://www.codigodebarras-oficial.com.br/ _________________ Carlos Dias |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|