Ir para conteúdo
  • Cadastre-se

dev botao

FastReport Thread ajustes


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

Recommended Posts

Bom dia Pessoal

Segue em anexo as correções para o boleto usando fastreport funcionar como thread, trabalho com datasnap e intraweb e estava tendo vários problemas, com as correções que fiz em anexo consigo resolver os problemas e já está em produção.

Inclui atualização no demo do boleto que havia um erro e uma alteração para funcionar em fastreport basta documentar a linha do arquivo report.inc que está no diretório.

Grato

Boleto.zip

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

Favor anexar um pdf demonstrando as alterações.

Att,

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

Em 19/04/2016 at 17:13, Fenix disse:

fiz umas alterações para ficar mais parecido com o do DANFe

Aqui você não fazia referência ao layout de impressão?

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Link para o comentário
Compartilhar em outros sites

  • Moderadores
Em 25/04/2016 at 17:33, Juliana Tamizou disse:

Boa tarde.

Aqui você não fazia referência ao layout de impressão?

Att.

Juliana Gostaria que verificasse e subir no svn?

  • 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

  • Administradores

Boa tarde.

6 minutos atrás, Juliomar Marchetti disse:

Juliana Gostaria que verificasse e subir no svn?

Gostaria sim :)

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Link para o comentário
Compartilhar em outros sites

  • Moderadores
Em 19/04/2016 at 17:13, Fenix disse:

Boa tarde,

Por favor, considerar o anexo abaixo para analise, fiz umas alterações para ficar mais parecido com o do DANFe e removi o madexcept do projeto do demo que havia esquecido.

Grato

Boleto_v2.zip

Qual o motivo de criar localmente em uma função os diversos fields e depois apontar eles a seus fields?

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

Juliomar, boa tarde!

Essa parte já estava, eu também não entendi!

Vi que no código tem uma observação para ser mais rápido, sinceramente nunca fiz esse teste para ver se em um loop dessa forma fica mais rápido.

Citar

  // Otimizar este loop tirando o FieldByName() (por Toninho Nunes)

 

Abraços

Link para o comentário
Compartilhar em outros sites

  • Moderadores
24 minutos atrás, Fenix disse:

Bom dia Juliomar

Conseguiu analisar?

Ainda não voltei a mexer! mas há muita coisa ali que não será modificada!

aplicarei o que corresponde a thread!

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

Juliomar,

Internamento estava sendo criado e matado o datamodule em cada processo isso gera erro, todo processo que alterei foi para evitar o erro quando executado em multi-thread, se reparar na versão que existe para NFe não é criado o data module em cada processo.

Referente ao Demo, também vai ajudar aos usuários que só usam o fastreport.

Comecei a mexer no forte para trabalhar com thread mas precisaria alterar o componente, pois quando trabalhamos com ISAPI, não pode verificar as impressoras instaladas e mesmo que for para gerar somente o pdf o Forte faz isso por padrão e já causa erro no ISAPI (Intraweb) de imediato.

 

Abraços

Link para o comentário
Compartilhar em outros sites

  • 5 semanas depois ...
Em 04/05/2016 at 12:13, Fenix disse:

Juliomar,

Internamento estava sendo criado e matado o datamodule em cada processo isso gera erro, todo processo que alterei foi para evitar o erro quando executado em multi-thread, se reparar na versão que existe para NFe não é criado o data module em cada processo.

Referente ao Demo, também vai ajudar aos usuários que só usam o fastreport.

Comecei a mexer no forte para trabalhar com thread mas precisaria alterar o componente, pois quando trabalhamos com ISAPI, não pode verificar as impressoras instaladas e mesmo que for para gerar somente o pdf o Forte faz isso por padrão e já causa erro no ISAPI (Intraweb) de imediato.

 

Abraços

Venho aqui reforçar o problema do Data Module, estou passando pelo mesmo problema ao gerar mais de 800 boletos. A memória não suporta e causa erro.

Vou ter que utilizar a classe do caro colega aqui deste tópico antes de resolverem colocar a correção.

Fica aqui mais um relato.

OBS: Lembrando que isso é ao Gerar PDF.

Att.

 

 

erro.png

Editado por Henrique Paraiba
Link para o comentário
Compartilhar em outros sites

Tive muitos problemas como esse, inclusive travava meu datasnap ou ficava imprimindo o ultimo boleto que ocorreu o erro, só fechando a aplicação e abrindo novamente para resolver.

Eu criei uma classe separada da oficial, infelizmente depois de um mês aguardando desisti.

Eu gosto de contribuir com o projeto para tentar retribuir o que ele me ajudou, mas não posso correr risco de atualizar meu repositório e perder minhas implementações e estou tendo que criar componentes paralelos.

 

Editado por Fenix
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Conforme falei vai ser aplicado em partes !

se quiser averiguar dai só pego o código e faço merge senão é aguardar até sobrar tempo pra teste

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

  • 2 semanas depois ...

Olá Julionar,

Baixei a sua atualização, por favor, se possível inclua o ajuste que fiz na sua atualização, adicionei duas propriedades que também já estão ativas no fast do acbrnfe:

IncorporarBackgroundPdf;

IncorporarFontesPdf.

 

Isso ajuda o pdf abrir corretamente em visualizadores de pdf diferente do acrobat reader ou SO que não possuem a fonte, deixei como default false para não interferir no padrão atual e fica como um novo recurso para quem precisar.

 

Abraços

ACBrBoletoFCFR.pas

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...

Pessoal estou tendo um problema ao gerar vários Pdfs sem ser em moto thread.

Observem que gero eles dentro de um loop, limpo a lista dos boletos, crio o boleto e mando gerar. A questão é que não está gerando todos os boletos. Como se a geração não acompanhasse o loop. De 750 boletos, apenas 735 são gerados.

Alguma sugestão para esse tipo de procedimento?

OBS: Se eu colocar um sleep após cada Gerar PDF como na imagem abaixo para fazer o loop aguardar eu consigo gerar, mas não gostaria que fosse assim, gostaria que acompanhasse a execução normalmente, o tempo do slepp está para 1 segundo a cada boleto gerado.

acbrBoleto.jpg

Link para o comentário
Compartilhar em outros sites

Bom dia Henrique,

Por que, não está usando em modo thread?

Esse erro que está acontecendo contigo é do fastreport, a maior chance que tem para consegui rodar essa rotina é através de thread.

Você está conseguindo através do sleep pois é o tempo que o fastreport deve está levando para gerar cada um e corre o risco de ter um erro e todos saírem iguais a partir deste erro, isto era o que estava ocorrendo comigo.

Abraços

Editado por Fenix
Link para o comentário
Compartilhar em outros sites

Henrique,

Complicado essa questão de gerar arquivo em massa.

Não gerou nenhum exception?

Como fica o consumo da memoria da sua aplicação quando está gerando esses boletos?

Estou falando isso, por que, tive problema de consumo de memoria.

Abraços 

Link para o comentário
Compartilhar em outros sites

Fenix,

Não gera nenhuma exception, apenas não consegue acompanhar a geração dos arquivos.

Consumo de memóriia está normal.

:/

Essa geração dos Boletos com Sleep demora cerca de 25 minutos para os 750 boletos, se fosse em execução normal cai pra 12 minutos :/

Já olhei as propriedades do fastreport e não achei nada que resolva isso.

:/

Link para o comentário
Compartilhar em outros sites

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