Jump to content

Promoção de Natal SAC Mensal

Contrate e ganhe 1 Kit agenda + Caneta
Saiba mais

LANÇAMENTO
Curso Completo - Dominando o ACBrMonitor

Conheça o Curso

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

Leandro Araújo

Access Violation no preview/impressão da Carta de Correção após exibir DANFE (FastReport).

Recommended Posts

Boa tarde.

Gostaria de relatar um problema que ocorreu com nosso sistema emissor, com relação ao preview/impressão da Carta de Correção da NF-e.
O que acontece é que após exibir um DANFE e depois tentar exibir o preview de uma Carta de Correção ocorre um Access Violation, nesse caso testei apenas usando a engine FastReport.

Percebi que o erro ocorre nos métodos "PrepareReport" e "frxReportBeforePrint" da unit "Fontes\ACBrDFe\ACBrNFe\DANFE\NFe\Fast\ACBrNFeDANFEFRDM.pas".

Ao que parece o objeto NFe (FNFe) que é usado dentro deles está assigned mas suas propriedades estão nil, ele passa na verificação do Assigned(), mas ao acessar as propriedades elas estão nil.

Se carregar uma NF-e no componente ACBrNFe e emitir um DANFE ele fica com referências apontadas internamente no DANFE associado ao ACBrNFe, então mesmo se der um ACBrNFe.NotasFiscais.Clear e carregar somente o XML do evento de CCe o erro ocorre.

O que eu fiz foi apenas passar nil para as variáveis FNFe e FEvento ao final de cada método "ImprimirDANFE", "ImprimirDANFEResumido", "ImprimirDANFEPDF", "ImprimirEVENTO", "ImprimirEVENTOPDF", "ImprimirINUTILIZACAO", "ImprimirINUTILIZACAOPDF", para assim não apontar para uma referência inválida e a verificação funcionar corretamente em "PrepareReport" e "frxReportBeforePrint".

// Está em "ImprimirDANFE", "ImprimirDANFEResumido", "ImprimirDANFEPDF", "ImprimirEVENTO", "ImprimirEVENTOPDF", "ImprimirINUTILIZACAO", "ImprimirINUTILIZACAOPDF":

{ DONE -oLeandro :
  (03/09/2019) - Alteração para não causar AccessViolation após:
  1 - Imprimir um DANFE;
  2 - Imprimir um Evento (Carta de Correção);

  AccessViolation ocorre nos métodos:
  * PrepareReport
  * frxReportBeforePrint
  Provável motivo: Objeto NFe (FNFe) está assigned mas suas propriedades estão nil.
 }
  FNFe := nil;
  FEvento := nil;

Segue o arquivo ACBrNFeDANFEFRDM.pas em anexo, as alterações estão marcadas com um "DONE -oLeandro :" , se a alteração proceder e for útil, peço aos administradores que adicionem a alteração no svn.

Muito obrigado.

ACBrNFeDANFEFRDM.pas

Edited by Leandro Araújo
  • Like 1

Leandro Araújo
Millenium Software
Fone: (66) 3419-4011
E-mail: [email protected]
Skype: leandromille

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...