Como gerar relatório com intervalo de datas

Delphi

01/04/2003

Minha dúvida é o seguinte: Estou fazendo um programa de tele-mensagens, gostaria de gerar um relatório das mensagens enviadas e das mensagens pendentes. Tenho um form que contem 2 maskedit, um para a data inicial e outro para a data final, onde a pessoa vai colocar de quando até quando ela vai kerer consultar, tenho um botão, contendo o seguinte código:

procedure TForm_ConRelEnv.Button2Click(Sender: TObject);
begin
Data1:=StrToDate(DtInicial.Text);
Data2:=StrToDate(DtFinal.Text);

QR_Aniver1.Close;
QR_Aniver1.SQL.Clear;
QR_Aniver1.SQL.Text:= ´Select * from Aniver1 WHERE CONF BETWEEN :DtInicial AND :DtFinal order by NASC´;
QR_Aniver1.ParamByName(´DtInicial´).Value:=Data1;
QR_Aniver1.ParamByName(´DtFinal´).Value:=Data2;
QR_Aniver1.Open;
end;

Campo CONF=data do envio

1ª Dúvida= gostaria de acrescentar um critério (and TD=1), só q está dando erro. TD=1(se sexo for masc) TD=0(se sexo fem).
2ª Dúvida= não estou sabendo fazer o relatório. Coloquei um quick report, com uma query e um DataSource, juntamente com Title, ColumnHeader, Details, PageFooter Band.

Como fazer para quando clicar em gerar arquivo(Button) o relatório abra com o resultado da consulta feita na procedure acima.

Agradeço muito quem puder me ajudar, eu só posso contar com vcs, pois estou programando só com ajuda de vcs. Brigadão.

Abc, Vivian


Viviankb

Viviankb

Curtidas 0

Respostas

Emersonmychel

Emersonmychel

01/04/2003

Oi Vivian,

A sua instrução está fora de orde, experimente assim:

QR_Aniver1.SQL.Add(´Select * from Aniver1´);
Qr_Aniver1.SQL.Add(´Where Conf Between :DtInicial and :DtFinal´);
QR_Aniver1.SQL.Add(´and TD = 1´);
QR_Aniver1.SQL.Add(´Order by Nasc´);
QR_aniver1.ParamByName(´DtInicial´).value:=Data1;
QR_Aniver1.ParamByName(´DtFinal´).Value:=Data2;
QR_Aniver1.Open;

Quanto ao Relatório voce não vai prescisar de um DataSource, pois o QReport é ligado pela propriedade DataSet, A mesma instrução que voce escreveu para a consulta deve ser usada para executar o relatório, voce pode repetir no outro botão ou utilizar a Query anterior para o relatório.

Espero te-la ajuado. Qualquer duvida mande um e-mail.

Emerson Mychel :)
ememychel@ig.com.br


GOSTEI 0
POSTAR