Ir para conteúdo
  • Cadastre-se

dev botao

Erro Ao Imprimir O Segundo Danfe De Nfce


Valdir Dill
Ver Solução Respondido por Valdir Dill,
  • Este tópico foi criado há 3418 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Estou tendo erro em alguns clientes onde ocorre o erro da imagem abaixo.

Na impressão de um Danfe, imprime normal, mas quando se tentar a impressão do segundo danfe em sequência, o erro acontece.

Utilizo Fast Report.

 

Alguma dica?

 

Obrigado

post-349-0-71955200-1415388167.png

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

A rotina é a mesma. Na verdade não é reeimpressão. É uma impressão de um segundo danfe (de outra nota) em sequência da primeira.

A rotina utilizada é esta:

 ACBrNFeDANFEFRNFCe.TipoDANFE := tiNFCe;
 ACBrNFeDANFEFRNFCe.MostrarPreview := false; 
 DMNFEletr.ACBrNFe1.NotasFiscais.Clear;
 DMNFEletr.ACBrNFe1.NotasFiscais.LoadFromFile(VArqXML);
ACBrNFe1.NotasFiscais.Imprimir;
 

 

Penso que talvez possa ter relação com a impressora que esse cliente usa, pois em vários outros usuários o problema não ocorre. Não sei bem qual o modelo que ele usa, mas é Bematech.

 

Obrigado

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
Não está. Eu é que esqueci de tirar o DMNFEletr das linhas, mas todos estão no mesmo DM.
O certo das linhas é:
ACBrNFe1.NotasFiscais.Clear;
ACBrNFe1.NotasFiscais.LoadFromFile(VArqXML);
 
O que eu faço é utilizar o mesmos componentes tanto para NFe, como NFCe, mas não creio que possa ser esse problema, pois o erro ocorre só em um cliente que tem uma Bematech 4100. 

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Sim, essa variável recebe  o valor correto. Tanto é que a primeira vez a impressão é feita da mesma forma, ou seja, com as mesmas rotinas. Além disso, em outros usuários que utilizam o mesmo sistema, não ocorre o erro.

Está parecendo algum problema de incompatibilidade com essa impressora ou algum estouro de pilha nessa máquina, sei lá!

 

De qualquer forma, agradeço a ajuda.

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

Olá Valdir, apanhei muito e a única forma que encontrei pra resolver foi calcular o hash do qrcode na mão mesmo. Sei que não é a forma correta, mas da pra usar como saída até que volte a funcionar normalmente. No início, eu calculava dessa forma que você esta usando, mas depois de uma atualização do componente, parou de funcionar. Pra resolver temporariamente, voltei a usar o "modo primitivo", mas quebra um galho.

*Note que dentro da unit acbrDanfceFortesFr.pas, ao invés de deixar ele calcular o hash usando o procedimento do componente, eu usei esta rotina de calculo do qrcode antes de chamar o procedimento de impressão pra que seje gerado um arquivo bitmap contendo o qrcode em forma de uma foto (imagem). Acredito que o problema esteja em "NotaUtil.GetUrlQrCode". Se precisar, chama no Skype.

qrcode.txt

ACBrDANFCeFortesFr.pas

Editado por EDSON FERNANDES

Conectiva Soft - Automação Comercial - Visite nosso site: www.conectivasoft.com.br

Skype: [email protected]

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Obrigado Edson,

Então é algum problema no componente mesmo!!

Pior que há um tempo (logo no início da NFCe) eu tinha minha própria rotina para gerar o qrCode, da mesma forma que você tem aí. Depois que o ACBR implementou tudo, deixei minha rotina de lado, pois gosto de utilizar o máximo possível do componente para evitar de ter vários controles para várias rotinas customizadas cada vez que se atualiza os fontes do ACBR.

 

Italo, esse problema começou faz umas duas semanas. Até então estava gerando tudo normal. Será que foi alterada alguma coisa no ACBR que esteja causando isso?

Sugestão: não seria o caso de analisar/implementar as rotinas do Edson?

 

Obrigado!

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Obrigado Edson,

Então é algum problema no componente mesmo!!

Pior que há um tempo (logo no início da NFCe) eu tinha minha própria rotina para gerar o qrCode, da mesma forma que você tem aí. Depois que o ACBR implementou tudo, deixei minha rotina de lado, pois gosto de utilizar o máximo possível do componente para evitar de ter vários controles para várias rotinas customizadas cada vez que se atualiza os fontes do ACBR.

 

Italo, esse problema começou faz umas duas semanas. Até então estava gerando tudo normal. Será que foi alterada alguma coisa no ACBR que esteja causando isso?

Sugestão: não seria o caso de analisar/implementar as rotinas do Edson?

 

Obrigado!

Caro Valdir acho que estão com fontes desatualizados ou pode estar atualizado mas não foi recompilado os mesmos para substituir os bpl compilados!

pois temos diversos de nossos amigos usando e imprimindo o DANFCe e está funcionando corretamente!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia Juliomar,

 

Bem, acho que não é nem um nem outro. Pois eu atualizo os fontes semanalmente e recompilo sempre.

Eu também achei estranho ser do problema no componente, pois como mencionei, tenho vários outros usuários utilizando o mesmo sistema sem nenhum problema.

O erro ocorre apenas em um usuário. Talvez tenha alguma coisa a ver com o Windows ele então, não sei.

 

De qualquer forma agradeço o auxílio e dicas. Se descobrir a causa exata do erro, posto aqui.

 

Obrigado!

  • Curtir 1

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Consegui reproduzir o erro aqui em laboratório. Ele ocorre na execução da linha EVP_DigestUpdate( @md_ctx, MS.Memory, MS.Size ) da ACBrEAD.pas.

 

Olha só, o problema só ocorre se a tela onde a impressão é feita e retorno a ela. Parece que é alguma coisa que deveria ser destruída e que não está sendo destruída.

Os componentes não são criados dinamicamente. Tenho os componentes em um dataModule, o qual é criado e destruído na criação do form da tela onde a impressão é feita. 

Alguma sugestão?

Obrigado.

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Consegui reproduzir o erro aqui em laboratório. Ele ocorre na execução da linha EVP_DigestUpdate( @md_ctx, MS.Memory, MS.Size ) da ACBrEAD.pas.

 

Olha só, o problema só ocorre se a tela onde a impressão é feita e retorno a ela. Parece que é alguma coisa que deveria ser destruída e que não está sendo destruída.

Os componentes não são criados dinamicamente. Tenho os componentes em um dataModule, o qual é criado e destruído na criação do form da tela onde a impressão é feita. 

Alguma sugestão?

Obrigado.

Notei que essa rotina (EVP_DigestUpdate( @md_ctx, MS.Memory, MS.Size )) é chamada várias vezes. O erro acontece na chamda da linha 875 da ACBrEAD.pas.

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
  • Solution

Eureka!!!!!!!

 

Consegui descobrir. No meu dataModule eu tinha colocado um componente acbrEAD. Foi só excluir o componente (que eu não utilizava mesmo) que o problema não ocorreu mais.

Doidera, rs...mas era só isso mesmo.

 

Obrigado pela ajuda!

  • Curtir 1

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

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