Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Rango de fechas (https://www.clubdelphi.com/foros/showthread.php?t=51767)

chino150 28-12-2007 15:47:11

Rango de fechas
 
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

Código Delphi [-]
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


Código 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;
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

Código 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;
     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

Cita:

Empezado por chino150 (Mensaje 255031)
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?

Código 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;

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

Cita:

Empezado por chino150 (Mensaje 255051)
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.

Código Delphi [-]
 
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

Cita:

Empezado por chino150 (Mensaje 255055)
como lo ago me puedo mustar el codigo completo

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


Código Delphi [-]
 
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 [-]
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 [-]
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

Cita:

Empezado por zurdosoft (Mensaje 264451)
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 [-]
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


La franja horaria es GMT +2. Ahora son las 00:38:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi