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