Ir para conteúdo
  • Cadastre-se

dev botao

ACBrETQ - Só imprimir código de barras valido?


FabioMachado
  • Este tópico foi criado há 4262 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde, estou tentando descobrir se é o componente ou a impressora que só quer imprimir o código de barras valido.

Os campos texto funcionam blz, porém o código de barras só se for valido EAN. Estou usando assim:

ImprimirTexto(orNormal, 2, 1, 3, 25, 37, linha1);

ImprimirTexto(orNormal, 2, 1, 1, 95, 40, linha2);

ImprimirBarras(orNormal, tipo_cod_bar, '2', '2', 120, 40, codigobarras, 080, becSIM);

ImprimirTexto(orNormal, 2, 1, 3, 25, 380, linha1);

ImprimirTexto(orNormal, 2, 1, 1, 95, 380, linha2);

ImprimirBarras(orNormal, tipo_cod_bar, '2', '2', 120, 390, codigobarras, 080, becSIM);

ImprimirTexto(orNormal, 2, 1, 3, 25, 730, linha1);

ImprimirTexto(orNormal, 2, 1, 1, 95, 730, linha2);

ImprimirBarras(orNormal, tipo_cod_bar, '2', '2', 120, 740, codigobarras, 080, becSIM);

Onde tem itp_cod_bar é um campo string que recebe a configuração conforme tabela abaixo e em nenhuma opção consegui imprimir o código de barras não valido:

0

1

1E

2

2C

2D

2G

2M

2U

3

3C

9

E30

E32

E35

E80

E82

E85

K

P

UA0

UA2

UA5

UE0

UE2

UE5

Link para o comentário
Compartilhar em outros sites

A solução que arrumei foi essa:

Gerar um código de barras valido a partir do codigo desejado.

dgt_verificador:=CalculaDigEAN13(LRPAD(CDS_produtosCODIGO.AsString,12,'0','L'));

codigobarras:=LRPAD(CDS_produtosCODIGO.AsString,12,'0','L')+dgt_verificador;

// dica tirada de um site na internet

function CalculaDigEAN13(Cod:String):String;

function Par(Cod:Integer):Boolean;

begin

Result:= Cod Mod 2 = 0;

end;

var i,SomaPar,SomaImpar:Integer;

begin

SomaPar:=0;SomaImpar:=0;

for i:=1 to 12 do

if Par(i) then

SomaPar:=SomaPar+StrToInt(Cod)

else

SomaImpar:=SomaImpar+StrToInt(Cod);

SomaPar:=SomaPar*3;i:=0;

while i < (SomaPar+SomaImpar)do

Inc(i,10);

Result:=IntToStr(i-(SomaPar+SomaImpar));

end;

Link para o comentário
Compartilhar em outros sites

  • 5 semanas depois ...
  • Fundadores

Varias impressoras de etiquetas se recusam a imprimir códigos EAN13 inválidos... outras sempre ignoram o 13o dígito e recalculam ele novamente

Há muito tempo já existe funções para calcular e verificar o dígito EAN13 em "ACBrUtil.pas"

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 4262 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.