Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-04-2007
robertillo robertillo is offline
Miembro
 
Registrado: may 2006
Posts: 13
Poder: 0
robertillo Va por buen camino
Question problemas al comparar un rango de fechas con datetimepicker

hola,

Resulta que tengo dos datetimepicker para comparar un rango de fechas desde una BD (interbase) los cuales se cargan en un grid, pero tengo un problema a la hora que se cargan dichos datos en la grid, por ejemplo:

pongo 01/11/2007 (Fecha1) a 23/11/2007 (Fecha2) y a la primera me aparecen los datos pero no me aparecen los del día 1/11/2007 y el datepicker (Fecha1) me cambia a 24/11/2007. Cuando le doy de nuevo el rango si me aparece todos los datos desde el 1 hasta el 23.

Se que algo estoy haciendo mal, intuyo que puede ser la forma como resto las fechas o tendré que convertir variables a datetime?, aqui está el código que pongo en el botón que carga la grid de acuerdo a las fechas para ver si alguien me ayuda. Gracias.


Código Delphi [-]
//procedure...
//Fecha1 es datetimepciker1 y Fecha 2 es datetimepciker2
pgDatos.RowCount:= Round(Fecha2.Date-Fecha1.Date)+2;
for f:= 0 to Round(Fecha2.Date-Fecha1.Date) do
begin
Fecha1.Time:= strtoTime('00:00:00');
qRecaudacion.ParamByName('FechaInicio').AsDateTime:= Fecha1.DateTime;
Fecha1.Time:= strtoTime('23:59:59');
qRecaudacion.ParamByName('FechaFinal').AsDateTime:= Fecha1.DateTime;
qRecaudacion.ParamByName('ruta').AsString:= ComboBox1.Items[ComboBox1.ItemIndex];
qRecaudacion.Open;
//...
else
MessageDlg('No se encontró información de acuerdo con los parámetros indicados.', mtError,[mbOk], 0);
qRecaudacion.Close;
Fecha1.Date:= Fecha1.Date+1;
Responder Con Cita
  #2  
Antiguo 18-04-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por robertillo
Fecha1.Date:= Fecha1.Date+1;
El datetimepicker1 cambia por esa linea, como está dentro del for va cambiando el valor de fecha1 (datetimepicker1) conforme cambia f, que por cierto no entiendo que quieres hacer con el for, si basta usar la sentencia SQL solo una vez y te dará la informacion que quieres.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #3  
Antiguo 18-04-2007
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
coincido con egostar, se ve raro el for pero bueno, para las horas en lugar de tanta conversion te podria servir:

Código Delphi [-]
Fecha1.DateTime  := Trunc(Fecha1.DateTime);
Fecha2.DateTime := Trunc(Fecha2.DateTime) + 0.99999; //son 5 nueves
//tambien puede funcionar:
Fecha2.DateTime := Trunc(Fecha2.DateTime) + 1; 
//aqui aumenta al otro dia pero como serian las 00:00:00 no incluye ese dia

algo que me pasa con ciertos manejadores de bases de datos es que al usar like no me toma el primero o el ultimo (access no me toma el ultimo), lo mas facil es agregar o quitar un dia segun lo que falte o usar <= y >= en lugar del like
Responder Con Cita
  #4  
Antiguo 18-04-2007
robertillo robertillo is offline
Miembro
 
Registrado: may 2006
Posts: 13
Poder: 0
robertillo Va por buen camino
gracias a los dos, luis y egostar, me está sirviendo de mucho lo que me indican.

Ah, el for lo hago para poder pintar las fechas que saco de la BD en una columna del grid asi:

Código Delphi [-]
//...
if not(qRecaudacion.IsEmpty) then
        begin
        // carga los vehiculos en la primera fila de columnas
        ModificarGrid();
          pgDatos.Cells[0,f+1].Value:= qRecaudacion.FieldByName('fecha').AsString;
          pgDatos.Cells[0,f+1].TextAlignment:= taCenter;  // Centrado Horizontal
//...etc, etc
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
comparar un string con un rango de valores locorez Varios 2 09-01-2006 16:54:43
Comparar un caracter de una caja de texto con un rango chux OOP 2 25-10-2005 00:24:25
Rango de fechas roberasturias Varios 2 23-05-2005 19:02:35
Como comparar un rango de fechas Ricsato SQL 4 14-09-2004 17:41:25
Rango de fechas JODELSA Varios 8 22-05-2003 21:45:43


La franja horaria es GMT +2. Ahora son las 01:44:28.


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
Copyright 1996-2007 Club Delphi