ZeusAutomacao / DFe.NET

Biblioteca para Geração de NFe(2.0, 3.10 e 4.0) e NFCe(3.10 e 4.0) e consumo dos serviços necessários à sua manutenção, conforme descritos em http://www.nfe.fazenda.gov.br/portal/principal.aspx
GNU Lesser General Public License v2.1
746 stars 473 forks source link

Erro no FastReport ao tentar visualizar MDFe #1541

Closed ElaineZago closed 1 month ago

ElaineZago commented 1 month ago

Ao tentar visualizar uma MDFe através do Zeus, estoura uma exception de "Referência de objeto não definida para uma instância de um objeto", no arquivo DamdfeFrMDFe, no método Visualizar(bool modal = true).

Segue abaixo o erro retonornado System.NullReferenceException HResult=0x80004003 Message=Referência de objeto não definida para uma instância de um objeto. Source=FastReport StackTrace: at FastReport.Code.AssemblyDescriptor.InvokeEvent(String name, Object[] parms) at FastReport.Report.InvokeEvent(String name, Object[] parms) at FastReport.Base.InvokeEvent(String name, Object param) at FastReport.ReportComponentBase.OnBeforePrint(EventArgs e) at FastReport.BandBase.SaveState() at FastReport.Engine.ReportEngine.ShowBandToPreparedPages(BandBase band, Boolean getData) at FastReport.Engine.ReportEngine.ShowBand(BandBase band, Boolean getData) at FastReport.Engine.ReportEngine.StartFirstPage() at FastReport.Engine.ReportEngine.RunReportPage(ReportPage page) at FastReport.Engine.ReportEngine.RunReportPages() at FastReport.Engine.ReportEngine.RunReportPages(ReportPage page) at FastReport.Engine.ReportEngine.Run(Boolean runDialogs, Boolean append, Boolean resetDataState, ReportPage page) at FastReport.Report.Prepare(Boolean append) at FastReport.Report.Show(Boolean modal) at MDFe.Damdfe.Fast.DamdfeFrMDFe.Visualizar(Boolean modal) in D:\Fontes\DFe.NET\MDFe.Damdfe.Fast\DamdfeFrMDFe.cs:line 94

Imagem do erro image

AgnaldoSilva0 commented 1 month ago

Boa tarde @ElaineZago Obrigado por reportar,

Para uma solução rápida, você pode corrigi-lo localmente para sanar o problema alterando o arquivo MDFeRetrato.frx Você vai localizar a seguinte linha de código: DataDocumentoCancelado.Visible = ((Boolean)Report.GetParameterValue("DocumentoCancelado")) || ((Boolean)Report.GetParameterValue("DocumentoEncerrado"));

Altere o nome DocumentoCancelado para DoocumentoCancelado. OBS: Após a alteração, recompilar o projeto para que as alterações do frx possam ser aplicadas.

Explicação do motivo da exceção: O problema surgiu devido a uma correção unilateral do nome "DoocumentoCancelado" para "DocumentoCancelado", onde no código se manteve o nome "DoocumentoCancelado", lançando assim a exceção.

Por enquanto, a solução que mencionei acima irá te ajudar a continuar executando a aplicação. Porém, a solução que correta e que buscamos implementar será fazer a correção no código para manter o nome correto "DocumentoCancelado". Caso tenha sugestões ou queira contribuir, fique à vontade para abrir um PR. 😄

AgnaldoSilva0 commented 1 month ago

Bom dia,

Corrigido no PR: #1548