Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Bom dia!

Estou trabalhando na otimização de um processo de envio de DACTe por e-mail, nesse processo notei uma lentidão na execução da procedure "TACBrCTeDACTEFR.ImprimirDACTEPDF" apos uma análise vi que o laço FOR esta sendo executado sem necessidade. Quando carrego o componente com mais de um CT-e ele constrói o PDF com mais de uma DACTe, perfeito, porem com o laço ele faz o processo repetidamente de acordo com a quantidade de CT-e carregados. Segue o código citado e em anexo a UNIT corrigida.

 

Unit ACBrCTeDACTEFR

procedure TACBrCTeDACTEFR.ImprimirDACTEPDF(ACTE: TCTe);
begin
    ...
	
	try
	  frxPDFExport.ShowDialog := False;

	  for i := 0 to TACBrCTe(ACBrCTe).Conhecimentos.Count - 1 do // O LAÇO FOR FOI REMOVIDO
	  begin
		frxPDFExport.FileName := IncludeTrailingPathDelimiter(PathPDF) + OnlyNumber(CTE.infCTe.Id) + '-cte.pdf';

		if not DirectoryExists(ExtractFileDir(frxPDFExport.FileName)) then
		   ForceDirectories(ExtractFileDir(frxPDFExport.FileName));
		frxReport.Export(frxPDFExport);
	  end;
	finally
	  frxPDFExport.ShowDialog := OldShowDialog;
	end;
	
	...
end;

Grato e aguardando retorno.

ACBrCTeDACTEFR.pas

Editado por José S. Simione
Link para o comentário
Compartilhar em outros sites

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