PDA

Ver la Versión Completa : Rango de fechas


chino150
28-12-2007, 15:47:11
necesito un codigo para general un reporte en quickreport de delphi 5 por rangos de dos fechas usado los componentes TDateTimePicker.

Gracias!!!!

enecumene
28-12-2007, 16:02:50
Form1:=TForm1.Create(self);
try
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Text := 'select fecha from tabla where fecha >= :desde and fecha <= :hasta order by fecha';
Query1.parambyname('desde').value := DBTimePicker1.date;
Query1.parambyname('hasta').value := DBTimePicker2.date;
Query1.Open;
Form1.QuickRpt1.Preview;
finally
Form1.free;
end;

Saludos.

chino150
28-12-2007, 20:28:16
este es el codigo que estoy usando, como puedo hacer para que la fecha se muestre en dos componentes QrLabel llamados cutfecha3 y cutfecha4 en el reporte de quick report



procedure TfrmTest.BtnAdmClick(Sender: TObject);
begin
qrFondos.close;
qrFondos.SQL.clear;
if (CutBox.checked=false) then begin
qrFondos.sql.add('select * from Ofrendas');
qrFondos.sql.add('where fecha between '+#39+DatetoStr(Cutfecha1.date)+#39+' and '+#39+DatetoStr(Cutfecha2.date)+#39);
Case CutStatus.ItemIndex of
0:qrFondos.sql.add('and Tipo_Recibo ='+#39+'I'+#39);
1:qrFondos.sql.add('and Tipo_Recibo ='+#39+'R'+#39);
end;
qrFondos.open;
end;
if (CutBox.checked=true) then begin
qrFondos.sql.add('select * from Ofrendas');
Case CutStatus.ItemIndex of
0:qrFondos.sql.add('where Tipo_Recibo ='+#39+'I'+#39);
1:qrFondos.sql.add('where Tipo_Recibo ='+#39+'R'+#39);
end;
qrFondos.open;
end;
begin
QrAdm.preview;
end;
end;

end.

enecumene
28-12-2007, 20:36:15
procedure TfrmTest.BtnAdmClick(Sender: TObject);
begin
qrFondos.close;
qrFondos.SQL.clear;
if (CutBox.checked=false) then begin
qrFondos.sql.add('select * from Ofrendas');
qrFondos.sql.add('where fecha between '+#39+DatetoStr(Cutfecha1.date)+#39+' and '+#39+DatetoStr(Cutfecha2.date)+#39);
Case CutStatus.ItemIndex of
0:qrFondos.sql.add('and Tipo_Recibo ='+#39+'I'+#39);
1:qrFondos.sql.add('and Tipo_Recibo ='+#39+'R'+#39);
end;
qrFondos.open;
Form1.cutfecha3.Caption := Cutfecha1.date;
Form1.cutfecha4.Caption := Cutfecha2.date;
end;
if (CutBox.checked=true) then begin
qrFondos.sql.add('select * from Ofrendas');
Case CutStatus.ItemIndex of
0:qrFondos.sql.add('where Tipo_Recibo ='+#39+'I'+#39);
1:qrFondos.sql.add('where Tipo_Recibo ='+#39+'R'+#39);
end;
qrFondos.open;
Form1.cutfecha3.Caption := Cutfecha1.date;
Form1.cutfecha4.Caption := Cutfecha2.date;
end;
begin
QrAdm.preview;
end;
end;

end.
Saludos.

chino150
28-12-2007, 21:08:24
ok

ahora esta este error Incompatible types 'Sting' and 'TDate'

chino150
28-12-2007, 21:35:49
Gracias Solucione el problem
Codigo Delphi (-)

procedure TfrmTest.BtnAdmClick(Sender: TObject);
begin
qrFondos.close;
qrFondos.SQL.clear;
if (CutBox.checked=false) then begin
qrFondos.sql.add('select * from Ofrendas');
qrFondos.sql.add('where fecha between '+#39+DatetoStr(Cutfecha1.date)+#39+' and '+#39+DatetoStr(Cutfecha2.date)+#39);
Case CutStatus.ItemIndex of
0:qrFondos.sql.add('and Tipo_Recibo ='+#39+'I'+#39);
1:qrFondos.sql.add('and Tipo_Recibo ='+#39+'R'+#39);
end;
qrFondos.open;
QrAdm.cutfecha3.Caption := DatetoStr(cutfecha1.date);
QrAdm.cutfecha4.Caption := DateToStr(CutFecha2.Date);
end;
if (CutBox.checked=true) then begin
qrFondos.sql.add('select * from Ofrendas');
Case CutStatus.ItemIndex of
0:qrFondos.sql.add('where Tipo_Recibo ='+#39+'I'+#39);
1:qrFondos.sql.add('where Tipo_Recibo ='+#39+'R'+#39);
end;
qrFondos.open;
QrAdm.cutfecha3.Caption := DatetoStr(cutfecha1.date);
QrAdm.cutfecha4.Caption := DatetoStr(cutfecha2.date);
end;
begin
QrAdm.preview;
end;
end;

end.

Muchas Gracias por su ayuda!!!!:)

enecumene
28-12-2007, 21:39:22
No Hay de que Amigo Chino, estamos aqui para ayudar.

Saludos.

chino150
29-12-2007, 16:43:13
Hola!!!

Le pido excusa pero ahora el tiempo de ejecucion me sale el siquiente mensaje Type Mismatch in expression como soluciono este porblema



Gracias!!!

egostar
29-12-2007, 17:04:57
Hola!!!

Le pido excusa pero ahora el tiempo de ejecucion me sale el siquiente mensaje Type Mismatch in expression como soluciono este porblema

Gracias!!!

Seguro que este código no te muestra un error al compilarlo?


procedure TfrmTest.BtnAdmClick(Sender: TObject);
begin
qrFondos.close;
qrFondos.SQL.clear;
if (CutBox.checked=false) then begin
qrFondos.sql.add('select * from Ofrendas');
qrFondos.sql.add('where fecha between '+#39+DatetoStr(Cutfecha1.date)+#39+' and '+#39+DatetoStr(Cutfecha2.date)+#39);
Case CutStatus.ItemIndex of
0:qrFondos.sql.add('and Tipo_Recibo ='+#39+'I'+#39);
1:qrFondos.sql.add('and Tipo_Recibo ='+#39+'R'+#39);
end;
qrFondos.open;
QrAdm.cutfecha3.Caption := DatetoStr(cutfecha1.date);
QrAdm.cutfecha4.Caption := DateToStr(CutFecha2.Date);
end;
if (CutBox.checked=true) then begin
qrFondos.sql.add('select * from Ofrendas');
Case CutStatus.ItemIndex of
0:qrFondos.sql.add('where Tipo_Recibo ='+#39+'I'+#39);
1:qrFondos.sql.add('where Tipo_Recibo ='+#39+'R'+#39);
end;
qrFondos.open;
QrAdm.cutfecha3.Caption := DatetoStr(cutfecha1.date);
QrAdm.cutfecha4.Caption := DatetoStr(cutfecha2.date);
end;
//**********************************************
begin //??????
QrAdm.preview;
end; //??????
//**********************************************
end;


Salud OS

chino150
29-12-2007, 17:36:37
No Amigo


El error sale en tiempo de ejecucion

egostar
29-12-2007, 17:40:44
No Amigo


El error sale en tiempo de ejecucion

Muy bien, entonces el problema es el formato de fecha que estas usando en tu base de datos, para resolver esto deberias usar la funcion ShortDateFormat() ajustandolo a como lo requieres.


ShortDateFormat := 'dd/mm/yyyy';


Salud OS

chino150
29-12-2007, 17:53:07
como lo ago me puedo mustar el codigo completo

egostar
29-12-2007, 18:07:36
como lo ago me puedo mustar el codigo completo

Solo coloca el código que te mostré en tu procedimiento, por ejemplo:



procedure TfrmTest.BtnAdmClick(Sender: TObject);
begin
ShortDateFormat := 'dd/mm/yyyy';
//................
//...............
end;


el formato depende como lo requiera tu base de datos, asi que podía asignarse cualquier valor

'dd/mm/yyyy'
'mm/dd/yyyy'
'dd.mm.yyyy'

Salud OS

chino150
29-12-2007, 21:08:26
no commpila muestra este error Undeclared Indentifier ShortDateString


Código Delphi [-] (http://www.clubdelphi.com/foros/newreply.php?do=newreply&noquote=1&p=255060#)
procedure TfrmTest.BtnAdmClick(Sender: TObject);
begin
ShortDateString := ('dd/mm/yyyy');
qrFondos.close;
qrFondos.SQL.clear;
if (CutBox.checked=false) then begin
qrFondos.sql.add('select * from Ofrendas');
qrFondos.sql.add('where fecha between '+#39+DatetoStr(Cutfecha1.date)+#39+' and '+#39+DatetoStr(Cutfecha2.date)+#39);
Case CutStatus.ItemIndex of
0:qrFondos.sql.add('and Tipo_Recibo ='+#39+'I'+#39);
1:qrFondos.sql.add('and Tipo_Recibo ='+#39+'R'+#39);
end;
qrFondos.open;
QrAdm.cutfecha3.Caption := DatetoStr(cutfecha1.date);
QrAdm.cutfecha4.Caption := DateToStr(CutFecha2.Date);
end;
if (CutBox.checked=true) then begin
qrFondos.sql.add('select * from Ofrendas');
Case CutStatus.ItemIndex of
0:qrFondos.sql.add('where Tipo_Recibo ='+#39+'I'+#39);
1:qrFondos.sql.add('where Tipo_Recibo ='+#39+'R'+#39);
end;
qrFondos.open;
QrAdm.cutfecha3.Caption := DatetoStr(cutfecha1.date);
QrAdm.cutfecha4.Caption := DatetoStr(cutfecha2.date);
end;
begin
QrAdm.preview;
end;
end;

egostar
29-12-2007, 21:21:54
Perdon, no era ShortDateString, es ShortDateFormat.... :o

Salud OS

chino150
29-12-2007, 21:29:14
ok complilo pero coundo se realiza la el reporte sale este error


EDBEngineErrror with message Type mismatch in expression

zurdosoft
08-02-2008, 19:59:23
Tuve un problema similar con una mdb.
El formato de la base era mm/dd/yyyy y el de delphi (o sistema) dd/mm/yyyy.
Lo solucioné, no se si del todo bien, cargando una variable string con los datos como los queria la base.


Código Delphi [-] (http://www.clubdelphi.com/foros/#)
var Fecha:String;
d,m,a:word;
begin
DecodeDate(dtpFecha.Date,a,m,d);
Fecha:=IntToStr(m)+'/'+IntToStr(d)+'/'+IntToStr(a);
Sql.add('SELECT * FROM OrdenCliente WHERE FECHAESTIMADA<#'+Fecha+'# AND Estado Is Null');
end;





Puede que tenga problemas al cambiar de pc con otro formato en el sistema.

felipe88
08-02-2008, 20:17:39
Tuve un problema similar con una mdb.
El formato de la base era mm/dd/yyyy y el de delphi (o sistema) dd/mm/yyyy.
Lo solucioné, no se si del todo bien, cargando una variable string con los datos como los queria la base.


Código Delphi [-] (http://www.clubdelphi.com/foros/#)
var Fecha:String;
d,m,a:word;
begin
DecodeDate(dtpFecha.Date,a,m,d);
Fecha:=IntToStr(m)+'/'+IntToStr(d)+'/'+IntToStr(a);
Sql.add('SELECT * FROM OrdenCliente WHERE FECHAESTIMADA<#'+Fecha+'# AND Estado Is Null');
end;





Puede que tenga problemas al cambiar de pc con otro formato en el sistema.

Con quien hablas...:confused:, estas preguntando o respondiendo...
Ya viste la fecha de este hilo... es de hace 2 meses