Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda con DateTimePicker (https://www.clubdelphi.com/foros/showthread.php?t=70201)

Luis Felix 06-10-2010 16:55:51

Ayuda con DateTimePicker
 
Hola, de nuevo muchas gracias por su ayuda y atencion a este post, tengo una plicacion que desarrolle con la Version 5 de Delphi, ahora estoy trabajando con la version 7, realmente no recuerdo si en la version 5 realmente trabajo, creo que si (ya tengo tiempo que no desarrollava), pero ahora con la version 7 no funciona el filtrado, la idea es filtrar una tabla de acuerdo con un rango de fechas, pero las variables no toman las fechas del DateTimePicker, aqui la parte a la cual hago mencion, para ver si me pudieran ayudar, de antemano gracias.

Declaracion de variables:

var
Form34: TForm34;
Finicial:Tdatetime;
Ffinal:Tdatetime;
Central, Cadena1, Cadena2, Cadena3:String;
Apuntador:Integer;
A1,B1,C1,D1,x,y,RegEmp,UltimoReg:Integer;
NumReg,NumEmp,a,b,c,d,e,f,g,cb1,cb2,cb3,cb4,cb5,cb6:String;
Year,Mes,Dia:word;
TemRPE:String;



Codigo:

Table6.filtered:=false;
Finicial:=DateTimePicker1.date;
Ffinal:=DateTimePicker2.date;
DecodeDate (Finicial, Year, Mes, Dia);
if (Mes<10)then
cadena1:= IntToStr(Dia)+'/0'+IntToStr(Mes)+'/'+IntToStr(Year)
else
cadena1:= IntToStr(Dia)+'/'+IntToStr(Mes)+'/'+IntToStr(Year);
DecodeDate (Ffinal, Year, Mes, Dia);
if (Mes<10)then
cadena2:= IntToStr(Dia)+'/0'+IntToStr(Mes)+'/'+IntToStr(Year)
else
cadena2:= IntToStr(Dia)+'/'+IntToStr(Mes)+'/'+IntToStr(Year);
Table6.Filter:=('Fecha_Captura>='+''''+cadena1+''''+
'and Fecha_Captura<='+''''+cadena2+'''');
Table6.Filtered:=True;

Luis F. Orjuela 06-10-2010 17:05:42

Lo primero que se debe tener en cuenta es lo siguiente:

Tus variables Finicial y Ffinal son del tipo Tdatetime, este tipo de variable almacena tanto la fecha como la hora.

Por otro lado se debe saber de qué tipo es tu campo de la tabla "Fecha_Captura", es decir, de qué tipo de dato lo definiste, para así poder identificar en dónde está el error.

Por cierto, cuando vayas a escribir fragmentos de código, utiliza las etiquetas
Código Delphi [-]
 ..... tu código......

Para así poder interpretar mejor el problema.

Cordialmente

Luis Felix 06-10-2010 17:59:47

Gracias Luis, el campo Fecha_Captura esta definido como Date "D" en la tabla.

Luis Felix 08-10-2010 22:32:05

Ayuda........

ecfisa 08-10-2010 23:12:42

Hola Luis.

Aunque hace mucho que no uso paradox, probé tu código con la tabla employee.db de DBDEMOS,
reemplazando el campo 'Fecha_Captura' lógicamente... y realiza perfectamente el filtrado.
Sólo saque el encomillado, que por lo menos a mí me marea, usando QuotedStr en su lugar.

Te pongo el código de prueba:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Finicial:Tdatetime;
  Ffinal:Tdatetime;
  Cadena1, Cadena2:String;
  Year,Mes,Dia:word;
begin
  Table1.filtered:= False;
  Finicial:= DateTimePicker1.date;
  Ffinal:= DateTimePicker2.date;
  DecodeDate(Finicial, Year, Mes, Dia);
  if (Mes<10)then
     cadena1:= IntToStr(Dia)+'/0'+IntToStr(Mes)+'/'+IntToStr(Year)
  else
    cadena1:= IntToStr(Dia)+'/'+IntToStr(Mes)+'/'+IntToStr(Year);
  DecodeDate (Ffinal, Year, Mes, Dia);
  if (Mes<10)then
   cadena2:= IntToStr(Dia)+'/0'+IntToStr(Mes)+'/'+IntToStr(Year)
  else
    cadena2:= IntToStr(Dia)+'/'+IntToStr(Mes)+'/'+IntToStr(Year);
  Table1.Filter:=('HireDate>='+QuotedStr(cadena1)+
    'and HireDate<='+QuotedStr(cadena2));
  Table1.Filtered:=True;
end;

Saludos. :)

Edito: Prueba en Delphi 7.


La franja horaria es GMT +2. Ahora son las 23:56:54.

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