Ir para conteúdo
  • Cadastre-se

dev botao

1/2 Off - Form com RLReport Demorando para Carregar


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

Recommended Posts

  • Membros Pro
Postado

Bom dia,

Sei que este canal não é bem para dúvidas sobre o Fortes Report. Mas, como já tentei , mas como já tentei tudo que podia e o Acbr tem muito a ver com o FR, talvez alguem possa me dar alguma dica para o problema q estou enfrentando.

É assim: qualquer aplicação onde tenho um componente RLReport, ao tentar carregar o form que abriga esse RLReport, ocorre uma demora exagerada. Chega a dar 10 segundos...
Isso ocorre tanto no projeto (ao executar um shift+F12), como depois, na aplicação em runtime.

Só ocorre na primeira chamada de um form naquele computador após ele ter sido reiniciado.
Se eu tiver duas aplicações, naquela que acionar primeiro um form que abrigue um RLReport, vai ocorrer a demora. Dali em diante, seja na mesma aplicação, seja em outra aplicação, o problema não ocorre mais até que se reinicie o micro de novo.

Fiz um debug e ocorre exatamente no form.create. Se eu tirar o componente rlreport do form, o problema não acontece, ou seja, ao que parece, o Delphi precisa construir algo ao carregar a primeira vez  o form com um rlreport naquela máquina.

Delphi 10.3.3. 

Fortes Report CE atualizado.

Obrigado.

Valdir Dill

Rio de Janeiro - RJ

 

 

  • Consultores
Postado
1 hora atrás, valdirdill disse:

Bom dia,

Sei que este canal não é bem para dúvidas sobre o Fortes Report. Mas, como já tentei , mas como já tentei tudo que podia e o Acbr tem muito a ver com o FR, talvez alguem possa me dar alguma dica para o problema q estou enfrentando.

É assim: qualquer aplicação onde tenho um componente RLReport, ao tentar carregar o form que abriga esse RLReport, ocorre uma demora exagerada. Chega a dar 10 segundos...
Isso ocorre tanto no projeto (ao executar um shift+F12), como depois, na aplicação em runtime.

Só ocorre na primeira chamada de um form naquele computador após ele ter sido reiniciado.
Se eu tiver duas aplicações, naquela que acionar primeiro um form que abrigue um RLReport, vai ocorrer a demora. Dali em diante, seja na mesma aplicação, seja em outra aplicação, o problema não ocorre mais até que se reinicie o micro de novo.

Fiz um debug e ocorre exatamente no form.create. Se eu tirar o componente rlreport do form, o problema não acontece, ou seja, ao que parece, o Delphi precisa construir algo ao carregar a primeira vez  o form com um rlreport naquela máquina.

Delphi 10.3.3. 

Fortes Report CE atualizado.

Obrigado.

Bom dia Valdir.

O Fortes tem algum código de inicialização mesmo. Mas é difícil saber exatamente o que está causando a lentidão sem ter um código pra reproduzir.

Sugiro você tentar montar o código mais simples possível que reproduza o problema. Por exemplo, se criar uma nova aplicação, apenas com esse componente no form isso acontece?

Há a mesma lentidão se executar como administrador? Existe antivírus ou alguma aplicação de proteção bancária na máquina?

Depois teste a mesma aplicação em outra máquina. É bom que você verificar se não é alguma característica da máquina que está afetando a lentidão. Por exemplo, talvez existam muitas impressoras alistadas... (só um exemplo...).

Mas o mais assertivo, seria debugar o código do Fortes pra verificar onde a lentidão está.

 

[]'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.
  • Membros Pro
Postado
29 minutos atrás, EMBarbosa disse:

Bom dia Valdir.

O Fortes tem algum código de inicialização mesmo. Mas é difícil saber exatamente o que está causando a lentidão sem ter um código pra reproduzir.

Sugiro você tentar montar o código mais simples possível que reproduza o problema. Por exemplo, se criar uma nova aplicação, apenas com esse componente no form isso acontece?

Há a mesma lentidão se executar como administrador? Existe antivírus ou alguma aplicação de proteção bancária na máquina?

Depois teste a mesma aplicação em outra máquina. É bom que você verificar se não é alguma característica da máquina que está afetando a lentidão. Por exemplo, talvez existam muitas impressoras alistadas... (só um exemplo...).

Mas o mais assertivo, seria debugar o código do Fortes pra verificar onde a lentidão está.

 

Bom dia @EMBarbosaobrigado pelas dicas.

Já tentei todas elas (executei como adm, desabilitei antivírus, defender, não tem programa de banco instalado, ...) Em relação a uma aplicação, fiz uma somente com a criação do componente em runtime, sem chamar form e dá o mesmo problema. No comando do TRLReport.create acontece a demora. Vide print anexo. 

Quando tento debugar, dá o erro anexo. Tem alguma sugestão para esse erro?

Obrigado.

FortesDebug.png

Valdir Dill

Rio de Janeiro - RJ

 

 

  • Fundadores
Postado

Me parece ser a carga de alguma DLL...

Tente rodar o programa em uma V.M. "crua", para ver qual poderia ser (ele acusaria erro pela falta da DLL)

Agora, valdirdill disse:

Quando tento debugar, dá o erro anexo. Tem alguma sugestão para esse erro?

Basta informar para a IDE, nessa mesma janela, onde estão os fontes do FastReport...

  • Curtir 2
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Membros Pro
Postado
1 hora atrás, Daniel Simoes disse:

Me parece ser a carga de alguma DLL...

Tente rodar o programa em uma V.M. "crua", para ver qual poderia ser (ele acusaria erro pela falta da DLL)

Basta informar para a IDE, nessa mesma janela, onde estão os fontes do FastReport...

 

Consegui debugar no FR.

Ao que parece tem mesmo a ver com a (as) impressora, conforme o @EMBarbosasuspeitou.

Debuguei e verifiquei que o problema ocorre na rotina dc := Printer.Handle da RLPrinters do Fortes. Essa rotina aciona a procedure TPrinter.SetState(Value: TPrinterState) da vcl.Printers (unit do Delphi).

Tenho apenas 5 impressoras instaladas no Windows. Em teste, a causa, não poderia ser pela quantidade.

Mas vou cavar mais para tentar ver se encontro a causa.

Obrigado.

  • Curtir 2

Valdir Dill

Rio de Janeiro - RJ

 

 

  • Membros Pro
  • Solution
Postado
8 minutos atrás, Juliomar Marchetti disse:

duvida o fortes foi atualizado? pois recente foi feito melhorias nele

Sim, FR CE atualizadíssimo.

Boa tarde,

Acho que achei a causa do problema. Ao que tudo indica, é alguma coisa na minha impressora padrão (uma HP Laser 1022), alguma coisa no driver eu acho. 

O problema ocorre quando passa na rotina DC := CreateHandleFunc(PChar(Driver), PChar(Device), PChar(Port), FDevMode) da vcl.Printes.pas.

Excluí essa impressora do Windows e aí não ocorreu mais o problema.

Obrigado.

  • Curtir 1

Valdir Dill

Rio de Janeiro - RJ

 

 

  • Consultores
Postado
2 horas atrás, valdirdill disse:

Ao que parece tem mesmo a ver com a (as) impressora, conforme o @EMBarbosasuspeitou.

Debuguei e verifiquei que o problema ocorre na rotina dc := Printer.Handle da RLPrinters do Fortes. Essa rotina aciona a procedure TPrinter.SetState(Value: TPrinterState) da vcl.Printers (unit do Delphi).

46 minutos atrás, valdirdill disse:

Acho que achei a causa do problema. Ao que tudo indica, é alguma coisa na minha impressora padrão (uma HP Laser 1022), alguma coisa no driver eu acho. 

O problema ocorre quando passa na rotina DC := CreateHandleFunc(PChar(Driver), PChar(Device), PChar(Port), FDevMode) da vcl.Printes.pas.

Excluí essa impressora do Windows e aí não ocorreu mais o problema.

Que legal que conseguiu Valdir. Vai ser isso mesmo.

É provável que o Windows esteja consultando o driver pra alguma coisa e ele está demorando pra responder...

Mas fiquei feliz que com um pouco de paciência você conseguiu descobrir onde o problema estava. A boa notícia é que provavelmente isso não vai afetar seu programa em outras máquinas, porque elas não devem ter essa impressora.

 

  • Curtir 1

[]'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.
  • Membros Pro
Postado
2 minutos atrás, EMBarbosa disse:

Que legal que conseguiu Valdir. Vai ser isso mesmo.

É provável que o Windows esteja consultando o driver pra alguma coisa e ele está demorando pra responder...

Mas fiquei feliz que com um pouco de paciência você conseguiu descobrir onde o problema estava. A boa notícia é que provavelmente isso não vai afetar seu programa em outras máquinas, porque elas não devem ter essa impressora.

 

Show de bola!

Obrigado a todos pelas dicas!

Valdir Dill

Rio de Janeiro - RJ

 

 

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