Quick Report está lento

08/07/2008

0

Bom dia pessoal, estou com problema em um cliente meu!

Quando ele imprimi um relatorio, e ai em seguida quando vai pedir o outro relatorio, ele começa a ficar lento...
o computador do meu cliente não é tão lento e nem tão rapido, mas na hora que pede para imprimir ele demora de 3 a 4 minutos só para gerar o relatorio, mas quando testo em caso ele não fica lento, mas isso acotence só de vez em quando.

Esse relatorio é feito em tempo de execução.

Ex.:

<<< Antes de criar o relatorio em faço a sql>>>

  Aplication.CreateForm (TRelatorio, Relatorio);
  Relatorio.Preview;
  FreeandNil(Relatorio);


Por favor fico aguardando resposta!


Robinhocne

Robinhocne

Responder

Posts

08/07/2008

Daykas

Prezado amigo! na sua casa e no seu cliente as condições são as mesmas, digo: em um lugar é local e no outro é via rede, etc..
Qual a configuração do micro do seu cliente e qual a impressora que ele usa? o sistema operacional tb.
manda ai


Responder

08/07/2008

Robinhocne

o sistema operacional é o mesmo, mas o problema é na hora de vizualizar, pois a impressora está em rede que está instalada em um pc que tem o windows 98, mas é só na hora de vizualizar


Responder

08/07/2008

Altingon

Tente adicionar a impressora a uma porta lpt
Iniciar -> executar-> Command entre e digite digite: net use lpt1(ou outro numero) \\usuario\nomedaimpressora

Veja se resolve.


Responder

08/07/2008

Robinhocne

[b:877a346e1b]mas o problema não é na hora de imprimir[/b:877a346e1b]
o problema e quando vou vizualizar, pois para imprimir ele imprimi rapido.


Responder

09/07/2008

Bolacha

Cara provavelmente é alguma rotina no beforeprint do relatorio ou de alguma banda.


Responder

09/07/2008

Robinhocne

esse é o codigo fonte:

  Application.CreateForm(TRHonorario,RHonorario);

  DmDados.TbConfigura.Open;
  RHonorario.QrEmpresa.Caption:=DmDados.TbConfiguraEMPRESA.AsString;
  if FileExists(DmDados.TbConfiguraLOGO.AsString) then
  begin
     RHonorario.QrLogo.Picture.LoadFromFile(DmDados.TbConfiguraLOGO.AsString);
  end;
  DmDados.TbConfigura.Close;


  RHonorario.QrTitulo.Caption :=´Relatório de Honorários - ´+ComboBox1.Text;
  RHonorario.QrPeriodo.Caption:=´Periodo: ´+Dt_Inicial.Text
                              +  ´ a ´+Dt_Final.Text+´ - ´+ComboBox2.Text;

  RHonorario.QrDespesa.Caption:=´Despesa: ´+eDespesa.Text
                             +  ´ - ´+PDespesa.Caption;
  RHonorario.QrCredor.Caption:=´Credor: ´+ECredor.Text
                             +  ´ - ´+PCredor.Caption;



  TbRelReceber.Close;

  // sql.. e filtros
  TbRelReceber.SelectSQL.Clear;
  TbRelReceber.SelectSQL.Add(´SELECT CODI_REC||´+#39+´/´+39+ ´||PARC_REC AS DOCUMENTO, HIST_REC, EMIS_REC,VALO_REC, DTPG_REC, DESC_REC, (PAGO_REC+AMOR_REC) AS PAGO,´);
  TbRelReceber.SelectSQL.Add(´JURO_REC,VENC_REC,(VALO_REC+JURO_REC) as TOTAL,´);
  TbRelReceber.SelectSQL.Add(´CRED_REC, PESSOAS.NOME_PES, DESP_REC, DESC_DES, ´);
  TbRelReceber.SelectSQL.Add(´(CASE WHEN DTPG_REC IS NULL THEN´);
  TbRelReceber.SelectSQL.Add(´CASE WHEN CURRENT_DATE>VENC_REC THEN (CURRENT_DATE-VENC_REC)´);
  TbRelReceber.SelectSQL.Add(´ELSE 0 END ELSE´);
  TbRelReceber.SelectSQL.Add(´CASE WHEN VENC_REC>DTPG_REC THEN  (VENC_REC-DTPG_REC)´);
  TbRelReceber.SelectSQL.Add(´ELSE 0 END END) AS "ATRASO"´);
  TbRelReceber.SelectSQL.Add(´FROM HONORARIO INNER JOIN PESSOAS ON CODI_PES = CRED_REC´);
  TbRelReceber.SelectSQL.Add(´INNER JOIN DESPESAS ON CODI_DES = DESP_REC´);


  // filtro da data
  If ComboBox2.ItemIndex = 0 then
  begin
     TbRelReceber.SelectSQL.Add(´where emis_rec BETWEEN :PDATA1 AND :PDATA2´);
  end
  else
  begin
     TbRelReceber.SelectSQL.Add(´where venc_rec BETWEEN :PDATA1 AND :PDATA2´);
  end;
  // tipo de conta
  If ComboBox1.ItemIndex = 0 then
  begin
     TbRelReceber.SelectSQL.Add(´and dtpg_rec is null´);
  end
  else if ComboBox1.ItemIndex = 1 then
  begin
     TbRelReceber.SelectSQL.Add(´and dtpg_rec is not null´);
  end;

  // filtro cliente
  if eDespesa.Value>0 then
  begin
     TbRelReceber.SelectSQL.Add(´and desp_rec = ´+eDespesa.Text);
  end;

  if ECredor.Value>0 then
  begin
     TbRelReceber.SelectSQL.Add(´and cred_rec = ´+ECredor.Text);
  end;
  TbRelReceber.SelectSQL.Add(´ORDER BY CRED_REC,1´);

  TbRelReceber.ParamByName(´PDATA1´).AsDate:=Dt_Inicial.Date;
  TbRelReceber.ParamByName(´PDATA2´).AsDate:=Dt_Final.Date;

  TbRelReceber.Open;
  RHonorario.Preview;
  FreeAndNil(RHonorario);
  TbRelReceber.Close;
  ActiveControl:=ComboBox1;



Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar