Ir para conteúdo
  • Cadastre-se

dev botao

pdfs de DACTEs em lote -exceção “SIGSEGV'


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

Recommended Posts

Olá, pessoal,

Sou iniciante no Lazarus e, principalmente, no ACBr e comecei a dar os primeiros passos.

Modifiquei o exemplo ACBrCTE_Exemplo para que ele gerasse pdfs dos DACTE em lote, modificando o OpenDialog para aceitar múltiplas seleções de CTEs.

Em princípio, estava tudo funcionando regularmente, porém, observei que se o número de xmls selecionados for próximo a 5.000, o programa aborta a execução após algum tempo, gerando pdfs apenas de parte dos arquivos xml selecionados, exibindo a seguinte mensagem de erro (mensagem exibida pelo Lazarus): “Projeto XXXXXX elevou classe exceção 'External: SIGSEGV'. No endereço yyyyyyyyy”.

Acredito que seja algum problema de overflow, ou de endereçamento. Tentei me embrenhar pelo componente ACBrCTe e, naturalmente, sem saber nem por onde começar, não tive capacidade para tentar descobrir o que poderia estar causando o problema.

Preciso corrigir o programa para que eu consiga gerar pdfs de DACTEs  em lote, de qualquer quantidade de CTEs que eu venha a selecionar, mesmo que a quantidade seja muito grande. 

Alguém poderia me ajudar a corrigir este erro e resolver este problema? 
 

Muito obrigado 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Vai depender da configuração do micro também, memoria, disco etc.

mas porque tanto dacte? nenhum caminhão vai conseguir carregar tanto assim

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

Olá, amigo,

A aplicação é para auditoria, por isso a necessidade de gerar, em lote, tantos documentos.

O problema ocorre em qualquer computador, independentemente dos recursos de memória e capacidade de processamento.

Comentei a rotina de geração de pdfs:

ACBrCTe1.Conhecimentos.ImprimirPDF;

e inseri:

ShowMessage(inttostr(ACBrCTe1.Conhecimentos.Count);

Isso demonstrou que o problema se encontra no método ImprimirPDF, pois o programa passou a rodar sem interrupções e o ShowMessage me retornou o valor de todos os arquivos que selecionei.

Provacelmente é algum bug do componente. Deve ter faltado algum “free” em algum ponto da rotina “ImprimirPDF”.

Deve ser algo simples de resolver, só não sei onde, exatamente, devo mexer.

Se puder me dar alguma luz, agradeço imensamente.

Forte abraço, 

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Boa tarde,

Já pensou na possibilidade de gerar PDF de lotes de 500 CT-e por vez em vez de 5000 de uma única vez?

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Moderadores
Em 14/07/2020 at 12:15, slukather disse:

Olá, amigo,

A aplicação é para auditoria, por isso a necessidade de gerar, em lote, tantos documentos.

O problema ocorre em qualquer computador, independentemente dos recursos de memória e capacidade de processamento.

Comentei a rotina de geração de pdfs:

ACBrCTe1.Conhecimentos.ImprimirPDF;

e inseri:

ShowMessage(inttostr(ACBrCTe1.Conhecimentos.Count);

Isso demonstrou que o problema se encontra no método ImprimirPDF, pois o programa passou a rodar sem interrupções e o ShowMessage me retornou o valor de todos os arquivos que selecionei.

Provacelmente é algum bug do componente. Deve ter faltado algum “free” em algum ponto da rotina “ImprimirPDF”.

Deve ser algo simples de resolver, só não sei onde, exatamente, devo mexer.

Se puder me dar alguma luz, agradeço imensamente.

Forte abraço, 

No caso é depurar e passar passo a passo e ver o que está sobrando de componentes ou algo assim.

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

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