Fórum Lentidão para gerar relatório #289571
26/07/2005
0
Boa tarde pessoal,
estou fazendo um programa aqui mas a chamada do relatório está mto lenta.. eis meu código:
If cktodosonibus.Checked then
begin
DM.GeraRelatorio.close;
DM.GeraRelatorio.SQL.Clear;
DM.GeraRelatorio.SQL.ADD(´SELECT * FROM ONIBUS ORDER BY PLACA,MODELO´);
DM.GeraRelatorio.Open;
end
else If ckonibus.Checked then
begin
DM.GeraRelatorio.close;
DM.GeraRelatorio.SQL.Clear;
DM.GeraRelatorio.SQL.ADD(´SELECT * FROM ONIBUS WHERE CODIGOONIBUS =:COD ORDER BY PLACA,MODELO´);
DM.GeraRelatorio.Params[0].AsInteger:= DM.OnibusCodigoOnibus.Value;
DM.GeraRelatorio.Open;
end
else
Application.MessageBox(´Você deve selecionar algum filtro!´,´Informação´,mb_ok+mb_iconinformation);
If DM.GeraRelatorio.RecordCount > 0 then
begin
[b:3af5c553a2] Application.CreateForm(TFrmRelGeracao,FrmRelGeracao);[/b:3af5c553a2]// FrmRelGeracao.QGeraOnibus.Prepare;
FrmRelGeracao.QGeraOnibus.Preview;
end
else
Application.MessageBox(´Não existem dados para esta consulta!´,´Informação´,mb_ok+mb_iconinformation);
end;
ele demora tipo uns 2 minutos pra abrir o formulário do relatório..
sendo que so tem dois registros..
fiz passo a passo.. ele executa rapidamente a sql.. o que demora mais é a criação do formulário.. que está em negrito..
vcs sabem o que posso fazer para resolver isso..
valeu
Eric
estou fazendo um programa aqui mas a chamada do relatório está mto lenta.. eis meu código:
If cktodosonibus.Checked then
begin
DM.GeraRelatorio.close;
DM.GeraRelatorio.SQL.Clear;
DM.GeraRelatorio.SQL.ADD(´SELECT * FROM ONIBUS ORDER BY PLACA,MODELO´);
DM.GeraRelatorio.Open;
end
else If ckonibus.Checked then
begin
DM.GeraRelatorio.close;
DM.GeraRelatorio.SQL.Clear;
DM.GeraRelatorio.SQL.ADD(´SELECT * FROM ONIBUS WHERE CODIGOONIBUS =:COD ORDER BY PLACA,MODELO´);
DM.GeraRelatorio.Params[0].AsInteger:= DM.OnibusCodigoOnibus.Value;
DM.GeraRelatorio.Open;
end
else
Application.MessageBox(´Você deve selecionar algum filtro!´,´Informação´,mb_ok+mb_iconinformation);
If DM.GeraRelatorio.RecordCount > 0 then
begin
[b:3af5c553a2] Application.CreateForm(TFrmRelGeracao,FrmRelGeracao);[/b:3af5c553a2]// FrmRelGeracao.QGeraOnibus.Prepare;
FrmRelGeracao.QGeraOnibus.Preview;
end
else
Application.MessageBox(´Não existem dados para esta consulta!´,´Informação´,mb_ok+mb_iconinformation);
end;
ele demora tipo uns 2 minutos pra abrir o formulário do relatório..
sendo que so tem dois registros..
fiz passo a passo.. ele executa rapidamente a sql.. o que demora mais é a criação do formulário.. que está em negrito..
vcs sabem o que posso fazer para resolver isso..
valeu
Eric
Eric.miranda
Curtir tópico
+ 0
Responder
Posts
26/07/2005
Rjun
O que tem no seu form? Apenas o relatório do QuickReport? Dei uma organizada no seu código. Parece que o pessoal aqui adora deixar uma query aberta.
DM.GeraRelatorio.SQL.Clear; if cktodosonibus.Checked then DM.GeraRelatorio.SQL.ADD(´SELECT * FROM ONIBUS ORDER BY PLACA,MODELO´); else if ckonibus.Checked then begin DM.GeraRelatorio.SQL.ADD(´SELECT * FROM ONIBUS WHERE CODIGOONIBUS = :COD ORDER BY PLACA, MODELO´); DM.GeraRelatorio.Params[0].AsInteger := DM.OnibusCodigoOnibus.Value; else begin Application.MessageBox(´Você deve selecionar algum filtro!´,´Informação´, mb_ok + mb_iconinformation); Exit; end; DM.GeraRelatorio.Open; try if DM.GeraRelatorio.RecordCount > 0 then begin Application.CreateForm(TFrmRelGeracao,FrmRelGeracao);// FrmRelGeracao.QGeraOnibus.Prepare; FrmRelGeracao.QGeraOnibus.Preview; end else Application.MessageBox(´Não existem dados para esta consulta!´,´Informação´,mb_ok+mb_iconinformation); finally DM.GeraRelatorio.Close; end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)