Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Na ultima linha da função PrepareReportEvento do ACBrNFeDANFEFRDM (2272), é definido o Indice do evento pra zero (DANFEClassOwner.FIndexImpressaoEventosIndividual := 0).

Ai no procedimento ImprimirEVENTOPDF, q executou a função PrepareReportEvento,

na hora de definir o nome do arquivo é chamado ( Evento.Evento[DANFEClassOwner.FIndexImpressaoEventosIndividual-1].InfEvento.id )

e causando um index out of bound. 

eu ate comparei com as versões anteriores, mas nao entendi bem. 

para corrigir isso precisei comentar a linha 2272 que zera o indice. 

 

obrigado. 

  • Consultores
Postado

tem um outro tópico onde um usuário relatou o mesmo . mas ele apontou que só ocorre quando tem um propriedade de pdf true

acho que é a questão do caminho do pdf 

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado

eu analisei melhor o código, e acho q a revisão 40745 feita pelo pandaaa no dia 06/08, onde ele remove o [for] da impressão dos eventos em PDF, Eu acho q ele não alterou o index de busca. e é isso q causa o erro. 

seria legal ver com ele se é melhor passar 0 fixo no indice dos eventos (como era feita antes), ou só remover o -1.

ERRADO

      frxPDFExport.FileName := DefinirNomeArquivo(DANFEClassOwner.PathPDF,
                                 OnlyNumber(Evento.Evento[DANFEClassOwner.FIndexImpressaoEventosIndividual-1].InfEvento.id) + '-procEventoNFe.pdf',
                                 DANFEClassOwner.NomeDocumento);
 

CERTO

      frxPDFExport.FileName := DefinirNomeArquivo(DANFEClassOwner.PathPDF,
                                 OnlyNumber(Evento.Evento[0].InfEvento.id) + '-procEventoNFe.pdf',
                                 DANFEClassOwner.NomeDocumento);
 

  • Consultores
Postado

veja se consegue acessar https://www.projetoacbr.com.br/forum/topic/85011-impressão-do-danfe-em-pdf/
 

senão veja esse propriedade e mude ela para ambos valores e teste ACBrNFeDANFEFR1.UsaSeparadorPathPDF := True;

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado

Ola Juliomar. 

Eu nao consegui acessar esse tópico q vc passou, mas testei esta propriedade, e ocorre o mesmo erro (Argument out of range), tanto estando verdadeira como falsa.

  • Consultores
Postado

houveram atualizações no svn sobre isso

baixou e testaram?

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado
40 minutos atrás, Márcio Baroni disse:

Boa tarde pessoal...

Alguma novidade desse erro? 

Fontes atualizados até a revisão 41150, mas o erro  (Argument out of range) ainda continua....

eu naõ vi mudanças no showlog. tu achou algo no fazer o update?

senão é só mesmo deixando desabilitado ACBrNFeDANFEFR1.UsaSeparadorPathPDF := True;

ou troque para usar o FPDF que já está junto para gerar pdf

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado (editado)

Boa tarde @Juliomar Marchetti

Então a propriedade "UsaSeparadorPathPDF" não faz diferença...

Problema como foi relatado nos comentários do @Danilo Yoshio  é na propriedade "FIndexImpressaoEventosIndividual" que fica com um valor inválido de "-1" no momento de acessar o array com os eventos...

Eu acho que uma possível solução é retirada da linha 2230 da unit "ACBrNFeDANFEFRDM.pas" 

Citar

DANFEClassOwner.FIndexImpressaoEventosIndividual := 0;

O uso do FPDF não é uma opção no meu caso, meu emissor usa DANFE personalizados em FastReport....

Editado por Márcio Baroni
  • Consultores
Postado
1 hora atrás, Márcio Baroni disse:

Boa tarde @Juliomar Marchetti

Então a propriedade "UsaSeparadorPathPDF" não faz diferença...

Problema como foi relatado nos comentários do @Danilo Yoshio  é na propriedade "FIndexImpressaoEventosIndividual" que fica com um valor inválido de "-1" no momento de acessar o array com os eventos...

Eu acho que uma possível solução é retirada da linha 2230 da unit "ACBrNFeDANFEFRDM.pas" 

O uso do FPDF não é uma opção no meu caso, meu emissor usa DANFE personalizados em FastReport....

sim eu entendi que o erro estour lá

mas se tu deixar essa propriedade false antes de chamar lá o evento o erro não ocorre , entendeu?

o FPDF é ótimo. pois resolve. 
Personalizar?🤔 que saiba a danfe tem um manual e uma lei a ser seguida , não é a revelia do cliente. pois se trata de um documento fiscal.

então pense em rever isso

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado

Boa tarde

Então setar a propriedade "UsaSeparadorPathPDF" antes da impressão não faz diferença, o erro acontece do mesmo jeito...

o FPDF é ótimo, eu sei, tenho plano de mudar do Fast para ele, mas na época que tentei migrar, falta alguns modelos de documentos fiscais (acho que MDF-e, CT-e - vou me atualizar denovo)

Sobre a DANFE personalizado, eu sei e concordo, existe um padrão tudo bonitinho, mas infelizmente em alguns software house é complicado...

Bom sobre o erro do tópico, a remoção da linha 2230 da unit "ACBrNFeDANFEFRDM.pas" resolveu o problema, e gostaria que fosse ajustado nos fontes do ACBr.

  • Consultores
Postado

no caso não sei lhe dizer se só removendo pois ocorrem efeitos colaterais contrário.

mas deve haver algo sendo feito 

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Membro Pro Verificado
Postado (editado)

Pessoal, este tópico já está antigo não tem nenhuma solução pra isso ainda?

Estou com o mesmo problema após a atualização do componente pra ultima versão usando fastreport.

O erro ocorre ao chamar a função ImprimirEventoPDF e debugando o código está levantando erro pois o index do evento é passado como -1 indevidamente apos o commit feito pelo Panda.

Editado por windsoft

Gilson do Carmo
WindSoft Sistemas

  • Membro Pro Verificado
Postado (editado)

Esqueci de citar no post anterior, o problema também ocorre no projeto de exemplo.
O problema ocorre independentemente da configuração: ACBrNFeDANFEFR1.UsaSeparadorPathPDF := False;

 

Editado por windsoft
Esqueci de incluir o teste feito com a propriedade citada pelo italo

Gilson do Carmo
WindSoft Sistemas

  • Membro Pro Verificado
Postado
Em 21/08/2025 at 10:49, Danilo Yoshio disse:

eu analisei melhor o código, e acho q a revisão 40745 feita pelo pandaaa no dia 06/08, onde ele remove o [for] da impressão dos eventos em PDF, Eu acho q ele não alterou o index de busca. e é isso q causa o erro. 

seria legal ver com ele se é melhor passar 0 fixo no indice dos eventos (como era feita antes), ou só remover o -1.

ERRADO

      frxPDFExport.FileName := DefinirNomeArquivo(DANFEClassOwner.PathPDF,
                                 OnlyNumber(Evento.Evento[DANFEClassOwner.FIndexImpressaoEventosIndividual-1].InfEvento.id) + '-procEventoNFe.pdf',
                                 DANFEClassOwner.NomeDocumento);
 

CERTO

      frxPDFExport.FileName := DefinirNomeArquivo(DANFEClassOwner.PathPDF,
                                 OnlyNumber(Evento.Evento[0].InfEvento.id) + '-procEventoNFe.pdf',
                                 DANFEClassOwner.NomeDocumento);
 

A correção sugerida pelo @Danilo Yoshio resolve o problema. 

Gilson do Carmo
WindSoft Sistemas

Postado
1 hora atrás, windsoft disse:

A correção sugerida pelo @Danilo Yoshio resolve o problema. 

E inclusive eu acho essa solução é melhor q a primeira q eu propus lá em cima (comentar a linha 2272).

E o q o Juliomar falou esta certo. Só comentar vai dar problemas em outros pontos.

Essa segunda alteração proposta por mim de trocar o DANFEClassOwner.FIndexImpressaoEventosIndividual-1  por 0 não afeta nada, a não ser q haja mais de um evento na nota, mas como método não esta varrendo para fazer a impressão de todos os eventos. não deve ter nenhum problema.

  • Curtir 1
  • Consultores
Postado
6 horas atrás, Marco Aurelio_17797 disse:

Fiz dessa forma e resolveu meu problema com geração dos eventos em pdf, obrigado

Bom dia a todos...

anexem por favor o .pas do programa exemplo de como recriar esse problema.

não conseguir recriar com a versão atual do componente.

 

image.png

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Membro Pro Verificado
Postado

Olá @Victor H. Gonzales - Panda, o programa exemplo que usei para recriar o problema é o padrão atualizado dos fontes.

A única mudança que fiz foi trocar o ACBRDanfe que por padrão usa Fortes se não me engano para ACBrDanfeFCFR (Fastreport)
Aí para levantar o erro, você usa a aba de eventos, e altera a linha ACBrImprimrEvento para ACbrImprimirEventoPDF, conforme exemplo abaixo:

 

procedure TfrmACBrNFe.btnImprimirEventoClick(Sender: TObject);
begin
  OpenDialog1.Title := 'Selecione a NFe';
  OpenDialog1.DefaultExt := '*-nfe.XML';
  OpenDialog1.Filter := 'Arquivos NFe (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*';

  OpenDialog1.InitialDir := ACBrNFe1.Configuracoes.Arquivos.PathSalvar;

  if OpenDialog1.Execute then
  begin
    ACBrNFe1.NotasFiscais.Clear;
    ACBrNFe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName);
  end;

  OpenDialog1.Title := 'Selecione o Evento';
  OpenDialog1.DefaultExt := '*.XML';
  OpenDialog1.Filter := 'Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*';

  OpenDialog1.InitialDir := ACBrNFe1.Configuracoes.Arquivos.PathSalvar;

  if OpenDialog1.Execute then
  begin
    ACBrNFe1.EventoNFe.Evento.Clear;
    ACBrNFe1.EventoNFe.LerXML(OpenDialog1.FileName);
    // ACBrNFe1.ImprimirEvento;
    ACBrNFe1.ImprimirEventoPDF;
  end;
end;

 

Gilson do Carmo
WindSoft Sistemas

  • Consultores
Postado
2 horas atrás, windsoft disse:

Olá @Victor H. Gonzales - Panda, o programa exemplo que usei para recriar o problema é o padrão atualizado dos fontes.

A única mudança que fiz foi trocar o ACBRDanfe que por padrão usa Fortes se não me engano para ACBrDanfeFCFR (Fastreport)
Aí para levantar o erro, você usa a aba de eventos, e altera a linha ACBrImprimrEvento para ACbrImprimirEventoPDF, conforme exemplo abaixo:

 

procedure TfrmACBrNFe.btnImprimirEventoClick(Sender: TObject);
begin
  OpenDialog1.Title := 'Selecione a NFe';
  OpenDialog1.DefaultExt := '*-nfe.XML';
  OpenDialog1.Filter := 'Arquivos NFe (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*';

  OpenDialog1.InitialDir := ACBrNFe1.Configuracoes.Arquivos.PathSalvar;

  if OpenDialog1.Execute then
  begin
    ACBrNFe1.NotasFiscais.Clear;
    ACBrNFe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName);
  end;

  OpenDialog1.Title := 'Selecione o Evento';
  OpenDialog1.DefaultExt := '*.XML';
  OpenDialog1.Filter := 'Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*';

  OpenDialog1.InitialDir := ACBrNFe1.Configuracoes.Arquivos.PathSalvar;

  if OpenDialog1.Execute then
  begin
    ACBrNFe1.EventoNFe.Evento.Clear;
    ACBrNFe1.EventoNFe.LerXML(OpenDialog1.FileName);
    // ACBrNFe1.ImprimirEvento;
    ACBrNFe1.ImprimirEventoPDF;
  end;
end;

 

faça um revert no seu código, update, install.

faça os testes novamente, verifica se o problema se mantem por favor

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Membro Pro Verificado
Postado (editado)

No meu caso nao apresentou o erro, mas agora ele nao encontra o arquivo PDF. Provavelmente esta salvando em uma pasta diferente.

Editado por windsoft

Gilson do Carmo
WindSoft Sistemas

  • Consultores
Postado
1 hora atrás, windsoft disse:

No meu caso nao apresentou o erro, mas agora ele nao encontra o arquivo PDF. Provavelmente esta salvando em uma pasta diferente.

voce não está com a propriedade de use separador ativa?

 

ou que arquivo não encontrou

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Membro Pro Verificado
Postado
13 minutos atrás, Victor H. Gonzales - Panda disse:

voce não está com a propriedade de use separador ativa?

 

ou que arquivo não encontrou

Eu revisei novamente o código, para funcionar agora eu tive que informar explicitamente a pasta para os arquivos PDF antes de salvar. 
Provavelmente o evento está sendo salvo em outra pasta quando você não especifica a pasta que deseja salvar. 
O problema está resolvido então aparentemente. 

Gilson do Carmo
WindSoft Sistemas

  • Consultores
Postado
6 minutos atrás, windsoft disse:

Eu revisei novamente o código, para funcionar agora eu tive que informar explicitamente a pasta para os arquivos PDF antes de salvar. 
Provavelmente o evento está sendo salvo em outra pasta quando você não especifica a pasta que deseja salvar. 
O problema está resolvido então aparentemente. 

geralmente se voce não parametriza nada, ele cria automatico uma pasta \pdf

  • Obrigado 1
Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

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

The popup will be closed in 10 segundos...