Fórum relatórios por período de data #395026
03/02/2011
0
1º) dbloocapcombobox eu escolho uma unidade
2º) Depois escolho um período de data
Caso eu queira só uma data por exemplo, 31/01/2011 à 31/01/2011, só aparecem 5 registros (que são os primeiros) num total de 9.
Mas se eu escolher de 30/01/2011 à 01/02/2011, os 9 registro do dia 31 aparecerem, os registros do dia 30 também aparecem, mas os registros do dia 01/02 acontece a mesma coisa, não aparecem todos os registros.
procedure Tfrm_EscolhaUnidade.BitBtn1Click(Sender: TObject);
var
Sql, Email, Uf : String;
begin // 1
sql:=ADOQuery_relatoriounidade.AsString; // pego o valor do DBLoockupCombobox
dm.QRY_Email.Close;
dm.QRY_Email.SQL.Clear;
dm.QRY_Email.SQL.Add('SELECT * FROM Email WHERE unidade = '+QuotedStr(sql)+'ORDER BY unidade');
dm.QRY_Email.Open;
Email:=dm.QRY_Emailemail.AsString;
unidade:=DM.QRY_Emailunidade.AsString;
Uf:=DM.QRY_Emailuf.AsString;
if Uf='' then
Begin
dm.QRY_relatorio.Close;
dm.QRY_relatorio.SQL.Clear;
dm.QRY_relatorio.SQL.Add('SELECT * FROM telemedicina WHERE para = :Email' );
dm.QRY_relatorio.SQL.Add(' and data BETWEEN :_dta_ini and :_dta_fim');
dm.QRY_relatorio.SQL.Add(' ORDER BY data');
dm.QRY_relatorio.Parameters.ParamByName('Email').Value := Email;
end
else
Begin
Uf := 'S';
dm.QRY_relatorio.Close;
dm.QRY_relatorio.SQL.Clear;
dm.QRY_relatorio.SQL.Add('SELECT * FROM telemedicina WHERE data >= :_dta_ini and data <= :_dta_fim');
dm.QRY_relatorio.SQL.Add('and UF = :_UF');
dm.QRY_relatorio.SQL.Add(' ORDER BY data');
dm.QRY_relatorio.Parameters.ParamByName('_UF').Value := Uf;
end;
dm.QRY_relatorio.Parameters.ParamByName('_dta_ini').Value := DTP_data1.DateTime;
dm.QRY_relatorio.Parameters.ParamByName('_dta_fim').Value := DTP_data2.DateTime;
dm.QRY_relatorio.Open;
if dm.QRY_relatorio.IsEmpty then
begin
ShowMessage('Não Existe Movimentação para esta Unidade');
exit;
end
else
QR_rel_paciente.QRLabel7.Caption:=unidade;
QR_rel_paciente.QRLabel11.Caption:=unidade;
QR_rel_paciente.Preview;
end; // begin
No query está assim:
SELECT * FROM telemedicina WHERE para = :Email AND data >= :dta_ini AND data <= :dta_fim AND UF=:Uf
Na propriedade do paramentro de dta_ini e dta_fim, está assim: ftDateTime...
Marcos Barbosa
Curtir tópico
+ 0Posts
03/02/2011
Emerson Nascimento
Gostei + 0
03/02/2011
Marcos Barbosa
Bem eu faço uma importação do outlook e uso esse mesmo componente, lá ñ preciso usar parametro e consegui fazendo dessa forma:
StrFiltro:='[ReceivedTime] >= ' + QuotedStr(FormatDateTime('dd/MM/yyyy, hh:MM', DtPDtaMsg.DateTime))
+ 'AND [ReceivedTime] <= ' + QuotedStr(FormatDateTime('dd/MM/yyyy, hh:MM', DtPDtaMsg1.DateTime));
Na importação tá funcionando, mas para o relatório não.
Gostei + 0
16/05/2013
José
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)