Relatório com intervalo de datas
Estou tentando fazer um relatório de pacientes com intervalos de datas usando o datetimepicker. Nos foruns achei o seguinte código:
procedure Tfrmrelpaciente.SpeedButton1Click(Sender: TObject);
var
inicio, fim :string;
begin
if DateTimePicker2.Date < DateTimePicker1.Date Then
begin
Application.MessageBox('Intervalo de datas inválido, a data inicial é maior que a data final!', 'Aviso',
MB_ICONWARNING +0);
DateTimePicker2.Date := DateTimePicker1.Date;
end
else
inicio:= datetostr(datetimepicker1.Date);
fim:= datetostr(datetimepicker2.Date);
dmprincipal1.qconsultagrup.Close;
dmprincipal1.qconsultagrup.SQL.Clear;
dmprincipal1.qconsultagrup.SQL.Text:= 'SELECT COD_PAC, NOM_PAC, CPF_PAC, DT_CAD_PAC, DT_NASC_PAC FROM PACIENTE WHERE DT_CAD_PAC between :pinicial and :pfinal Order by NOM_PAC ASC';
dmprincipal1.qconsultagrup.Parameters.ParamByName('pinicial').Value := strtodate(inicio);
dmprincipal1.qconsultagrup.Parameters.ParamByName('pfinal').Value := strtodate(fim);
dmprincipal1.qconsultagrup.Open;
frmrelanual.QRelatorio.Preview
end;
No formulario QuickReport o dataset é a tabela o a Query? e os QDBRText?
Pois tanto faz ser um como outro. No formulario aparece somente um registro e recordcount acusa 5 registros.
Abraços Carlos
procedure Tfrmrelpaciente.SpeedButton1Click(Sender: TObject);
var
inicio, fim :string;
begin
if DateTimePicker2.Date < DateTimePicker1.Date Then
begin
Application.MessageBox('Intervalo de datas inválido, a data inicial é maior que a data final!', 'Aviso',
MB_ICONWARNING +0);
DateTimePicker2.Date := DateTimePicker1.Date;
end
else
inicio:= datetostr(datetimepicker1.Date);
fim:= datetostr(datetimepicker2.Date);
dmprincipal1.qconsultagrup.Close;
dmprincipal1.qconsultagrup.SQL.Clear;
dmprincipal1.qconsultagrup.SQL.Text:= 'SELECT COD_PAC, NOM_PAC, CPF_PAC, DT_CAD_PAC, DT_NASC_PAC FROM PACIENTE WHERE DT_CAD_PAC between :pinicial and :pfinal Order by NOM_PAC ASC';
dmprincipal1.qconsultagrup.Parameters.ParamByName('pinicial').Value := strtodate(inicio);
dmprincipal1.qconsultagrup.Parameters.ParamByName('pfinal').Value := strtodate(fim);
dmprincipal1.qconsultagrup.Open;
frmrelanual.QRelatorio.Preview
end;
No formulario QuickReport o dataset é a tabela o a Query? e os QDBRText?
Pois tanto faz ser um como outro. No formulario aparece somente um registro e recordcount acusa 5 registros.
Abraços Carlos
Carlos Leonel
Curtidas 0
Respostas
Evaristo Neto
26/10/2009
Verifique em qual banda vc colocou os registros
[]´s
Evaristo
[]´s
Evaristo
GOSTEI 0
Perivaldo Martins
26/10/2009
Amigo, aparentemente seu código está certo, teste usando um DBGrid para ter certeza.
Outra coisa, como o outro colega mencionou, em qual aba vc está colocando os QRDBText? QRDetail?
Boa sorte e bons códigos.
GOSTEI 0