Quick Report está lento

Delphi

08/07/2008

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

Curtidas 0

Respostas

Daykas

Daykas

08/07/2008

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


GOSTEI 0
Robinhocne

Robinhocne

08/07/2008

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


GOSTEI 0
Altingon

Altingon

08/07/2008

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.


GOSTEI 0
Robinhocne

Robinhocne

08/07/2008

[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.


GOSTEI 0
Bolacha

Bolacha

08/07/2008

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


GOSTEI 0
Robinhocne

Robinhocne

08/07/2008

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;



GOSTEI 0
POSTAR