Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

  • Membros Pro
Postado

Ao gerar um relatorio com mais de 200 notas fiscais (sim, o cliente imprime tudo de uma vez para enviar ao contador) fica absurdamente lento.

Identifiquei que o problema é um bug conhecido do fast report neste ponto:

function TACBrNFSeDANFSeFR.PrepareReport(NFSe: TNFSe): Boolean;

.

.

.

      for I := 0 to TACBrNFSe(ACBrNFSe).NotasFiscais.Count - 1 do
      begin

        CarregaDados(TACBrNFSe(ACBrNFSe).NotasFiscais.Items.NFSe);

        if (I > 0) then
          Result := frxReport.PrepareReport(false)
        else
          Result := frxReport.PrepareReport

      end;

Onde o PrepareReport(false) acrescenta um novo relatorio a cada NFs-e (usando o recurso de multi-relatorios). Mas depois de uma certa quantidade fica muito lento.

Fiz algumas alterações nos fontes para tornar isto mais rapido. Qual o procedimento para submeter a alteração à eventual incorporação definitiva?

Abraços

 

 

 

  • Consultores
Postado

Anexe aqui os fontes que avaliamos e subimos!

 

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 !!

  • Membros Pro
Postado

O que eu fiz foi usar uma dica conhecida que resolve este problema de degradação do FastReport em multiplos relatorios.

Ao invés de um PrepareReport(FALSE) que vai acumulando os relatórios (e degradando) usa-se um segundo frxReport chamando o PreviewPages.AddFrom(frxReport).

Isto foi feito em uma unit separada em anexo. A única coisa que tive que alterar no código original foi tornar o método CarrgaDados protected.

Abraços

UPolyAcbrDANFSE.pas

  • Consultores
Postado

Estranho essa unit não faz parte do ACBr!

 

 

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 !!

  • Membros Pro
Postado

Como eu disse, criei uma unit separada para resolver o problema. Isto foi feito para isolar a alteração do ACBr original. A unica lteração no codigo original foi tornar o método CarrgaDados protected (na unit ACBrNFSeDANFSeFR.pas)

Abraços

  • 4 anos depois...
  • Membros Pro
Postado (editado)

Sei que este post é antigo mas o problema persiste. Eu mantive minha versao da unit durante este tempo mas agora tive que fazer uma atualização geral e o problema retornou. A unit que eu havia enviado anteriormente era uma sobrescrição da classe TACBrNFSeDANFSeFR para evitar alteraçoes no codigo original do Acbr. 

Desta vez entao estou enviando as mudanças feitas na unit original para avaliação dos Srs.

A ideia central (que torna o processo bem mais rápido) é:

frxReport.PreviewPages.AddFrom(frxReportTemp);

na linha 315

Abraços

 

 

 

ACBrNFSeDANFSeFR.pas

Editado por MagoSchmidt
  • Consultores
Postado

Está na lista para ser avaliado

 

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 !!

  • 1 ano depois...
  • Membros Pro
Postado

Vi que voces aceitaram minha colaboração. Muito obrigado!

Identifiquei o mesmo problema na ACBrNFeDANFEFRDM.pas, a original processou por 12hs e nao terminou a geraçao de 3000 NF's

Segue a versao corrigida que fez o trabalho em 50mins

Abraços

 

ACBrNFeDANFEFRDM.pas

  • Curtir 1
  • Consultores
Postado
22 horas atrás, MagoSchmidt disse:

Vi que voces aceitaram minha colaboração. Muito obrigado!

Identifiquei o mesmo problema na ACBrNFeDANFEFRDM.pas, a original processou por 12hs e nao terminou a geraçao de 3000 NF's

Segue a versao corrigida que fez o trabalho em 50mins

Abraços

 

ACBrNFeDANFEFRDM.pas 96 kB · 1 download

antes de alterar tu atualizou o svn??

antes de alterar e enviar?

 

 

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
Em 14/02/2022 at 13:17, MagoSchmidt disse:

Vi que voces aceitaram minha colaboração. Muito obrigado!

Identifiquei o mesmo problema na ACBrNFeDANFEFRDM.pas, a original processou por 12hs e nao terminou a geraçao de 3000 NF's

Segue a versao corrigida que fez o trabalho em 50mins

Abraços

 

ACBrNFeDANFEFRDM.pas 96 kB · 2 downloads

Olá tudo bem?

Infelizmente seu arquivo está muito desatualizado. Não temos como analisar sem saber em qual revisão está.

Por favor, atualize para a última revisão do SVN e anexe novamente para que possamos dar prosseguimento.

  • Curtir 3

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Este tópico foi criado há 1585 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...