Ir para conteúdo
  • Cadastre-se

dev botao

Acbretq - Etiqueta Duplicada


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

Recommended Posts

Boa Tarde Pessoal, tudo bem?

 

Efetuando a atualização do componente com a Revision 8085, as impressões acabam sendo duplicadas na impressora. Fazendo a comporação dos fontes achei algumas diferenças que possam ocasionar o problema com um comentário na frete.

 

A impressora que foi usado é a Zebra GC430T. Espero ter ajudado. Obrigado!

 

 

procedure TACBrETQEpl2.FinalizarEtiqueta(Copias: Integer; AvancoEtq: Integer);

begin
  Cmd := '';
 
  if (Copias < 0) or (Copias > 65535) then
     Raise Exception.Create(ACBrStr('Número de Cópias deve estar entre 0 e 65535'));
 
  Cmd := 'P' + IntToStr(Copias) ;
 
  ListaCmd.Add(Cmd);
 
  fpEtqFinalizada   := True;
  fpEtqInicializada := False; // Nova Linha
end;
 
procedure TACBrETQPpla.FinalizarEtiqueta(Copias: Integer = 1; AvancoEtq: Integer = 0);
var
  NCop: String;
begin
  Cmd := '';
  if (Copias < 0) or (Copias > 9999) then
    Raise Exception.Create(ACBrStr('Tamanho máximo para o Número de Cópias 4 caracteres'));
  NCop := IntToStrZero(Copias, 4);
 
  if AvancoEtq = 0 then
    AvancoEtq := Avanco;
  if (AvancoEtq < 0) or (AvancoEtq > 779) then
    Raise Exception.Create(ACBrStr('O Valor máximo para o Avanço de Etiquetas é 779'));
 
  AvancoEtq := AvancoEtq + 220;
 
  Cmd := 'Q' + NCop                            + CRLF +
         'E'                                   + CRLF +   // Ends the job and exit from label formatting mode
         STX + 'f' + IntToStrZero(AvancoEtq,3);           // Ajusta o avanço para corte da etiqueta
 
  ListaCmd.Add(Cmd);
 
  fpEtqFinalizada   := True;
  fpEtqInicializada := False; // Nova Linha
end;
 
procedure TACBrETQZplII.FinalizarEtiqueta(Copias: Integer; AvancoEtq: Integer);
begin
  if Copias > 1 then
    ListaCmd.Add('^PQ'+IntToStr(min(Copias,999)) );
 
  ListaCmd.Add('^XZ');
 
  fpEtqFinalizada   := True;
  fpEtqInicializada := False; // Nova Linha
end;

 

Atenciosamente,

Fernando Dutra.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Não compreendi o que você quis dizer... poderia descrever melhor o problema e a sua estratégia de solução ?

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

Bom Dia Daniel, tudo bem?

 

Foram feitas alterações nos métodos da revision 8005 e as coloquei para facilitar a análise. Acontece que quando atualizei em um cliente as impressões estavam sendo duplicadas. Não consegui resolver até voltar a versão das units ACBrETQEpl2.pas,ACBrETQPpla.pas,ACBrETQZplII.pas.

 

Voltando a versão atualizei no cliente as impressões voltaram a funcionar. Depois disso comparei as units, e achei as diferenças que coloquei acima. Coloquei um comentário "// Nova Linha"

na frente do código que foi alterado.

 

Acredito que estas linhas estejam dando o problema. Infelizmente como não tenho impressora não consigo efetuar testes. Se eu mando a impressão em um arquivo de texto(*.txt) as informações saem iguais.

 

Espero ter ajudado. Obrigado!

 

Atenciosamente,

Fernando Dutra.

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
Bom Dia Srs., tudo bem?
 
Eu fiz a análise do código funcional com o atual, e acredito que o problema seja a linha que coloco abaixo. No final de cada método foi incluído esta linha. Se comentar a linha o processo de etiquetas volta a funcionar. Espero ter ajudado. Obrigado!
 

 

 

fpEtqInicializada := False; // Nova Linha

 

Atenciosamente,
Fernando Dutra.
Link para o comentário
Compartilhar em outros sites

Bom Dia Sr. Daniel, tudo bem?

 

Anexo uma imagem para esclarecer, e repare que na Revision 8005 contém uma linha a mais a "fpEtqInicializada := False;". Eu acredito que esta seja a linha que esteja dando o problema de duplicidade, pois eu comentei ela e a impressão voltou ao normal no cliente.

 

Infelizmente não tenho a impressora em mãos para efetuar mais testes. Obrigado!

 

Atenciosamente,

Fernando Dutra.

post-5698-0-12647400-1426775199_thumb.pn

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Não compreendi a necessidade da modificação... a Linha parece correta... afinal o nome do método é "FinalizarEtiqueta", após a execução desse método o usuário realmente precisa Iniciar uma  nova etiqueta

 

Se tiverem algum bug para reportar, favor descrever um PASSO a PASSO usando a aplicação Demo do ACBrETQ

  • Curtir 1
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

  • 4 semanas depois ...

Boa tarde, 

 

Realmente passei pelo mesmo problema é tive que comentar a linha na unit ACBrETQEpl2.

 

No método FinalizarEtiqueta não se deve alterar a inicialização(fpEtqInicializada) da etiqueta pois os comandos incluídos pelos método IniciarEtiqueta devem sempre constar em cada etiqueta montada pelo componente é não exclusivamente no inicio da string enviada pelo componente a impressora. 

 

 

 
 

Link para o comentário
Compartilhar em outros sites

Na unit ACBrETQEpl2 no método "FinalizarEtiqueta" não deveria ser setado a variável:

 

fpEtqInicializada := False;

 

Pois desta forma me obriga a realizar a impressão da etiqueta, pois ao iniciar outra etiqueta antes de enviar para a impressora o componente insere no inicio da lista ao invés de adicionar, assim deixando o arquivo incorreto.

 

Sendo que eu posso realizar a inicialização e finalização da etiqueta quantas vezes o buffer da impressora aguentar.

 

A forma que está implementado hoje o resultado da lista enviada para a impressora seria:

 

D10

N
R0,0
ZB
D10
N
R0,0
ZB
A14,6,0,2,1,1,N,""
A14,30,0,2,1,1,N,"testes 01"
A14,54,0,2,1,1,N,"testes 01"
A14,78,0,2,1,2,N,"COD: 1743"
A14,106,0,2,1,2,N,"             R$00,00"
P1
//Está próxima impressão ocorre o erro. 
A14,6,0,2,1,1,N,""
A14,30,0,2,1,1,N,"testes 02"
A14,54,0,2,1,1,N,"testes 02"
A14,78,0,2,1,2,N,"COD: 1744"
A14,106,0,2,1,2,N,"             R$00,00"
P1

Sendo que a forma correta seria

D10
N
R0,0
ZB
A14,6,0,2,1,1,N,""
A14,30,0,2,1,1,N,"testes 01"
A14,54,0,2,1,1,N,"testes 01"
A14,78,0,2,1,2,N,"COD: 1743"
A14,106,0,2,1,2,N,"             R$00,00"
P1
D10
N
R0,0
ZB
A14,6,0,2,1,1,N,""
A14,30,0,2,1,1,N,"testes 02"
A14,54,0,2,1,1,N,"testes 02"
A14,78,0,2,1,2,N,"COD: 1744"
A14,106,0,2,1,2,N,"             R$00,00"
P1
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3297 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.