Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-02-2007
barrauda barrauda is offline
Miembro
 
Registrado: jun 2003
Ubicación: Balcarce - Buenos Aires
Posts: 42
Poder: 0
barrauda Va por buen camino
bucle for utilizando fechas

Hola amigos! necesito realizar un bucle (puede ser for) para ejecutar un código pero dentro de un rango de fechas. Por ejemplo el código se tiene que ejecutar desde supongamos el 01-02-07 al 31-07-07. Necesito saber que tipo de datos tengo que usar y cómo realizar la consulta. A la fecha inicial la tomo de un MonthCalendar y a la fecha final tambien.
Hay un hilo donde preguntaban esto en el año 2005, pero no me quedó muy claro, por eso abro este otro.
Muchas gracias
Responder Con Cita
  #2  
Antiguo 01-02-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Tendrás que decirnos en donde están las fechas, ¿en una base de datos?.
Y también que pretende hacer dicho bucle que por lo que presumo deberá ser:

Código Delphi [-]
{Previamente se supone hemos aislado las fechas}
While not MiTabla.Eof do
begin

MiTabla.Next
end;

O activar un filtro entre dichas fechas.

O incluso una consulta.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.

Última edición por marcoszorrilla fecha: 01-02-2007 a las 16:18:41.
Responder Con Cita
  #3  
Antiguo 01-02-2007
barrauda barrauda is offline
Miembro
 
Registrado: jun 2003
Ubicación: Balcarce - Buenos Aires
Posts: 42
Poder: 0
barrauda Va por buen camino
Resuelto

Hola marcoszorrilla, muchas gracias por responder. Ya pude resolver el problema entendiendo un poco lo del hilo anterior. Pongo la solución para los que necesiten algo parecido.
Lo que yo etaba precisando era ejecutar un código (puede ser cualquiera, no es lo importante) dentro de un bucle pero que ese bucle dependa de una fecha inicial y una fecha final. Lo que yo tenía que hacer era guardar en una base de datos (PostgreSQL) el número de una semana + la fecha de esa semana, siempre salteando de un dia seleccionado al mismo día de la semana siguiente (por ejemplo si selecciono el Viernes 2 de febrero, el siguiente es 9).
La fecha inicial y la final las selecciono como dije antes de 2 monthcalendar y luego paso la seleccion del los monthcalendar a 2 edit. La complicación era realizar el for o while que recorra las fechas desde la inicial a la final. Lo resolví gracias a la ayuda del hilo mencionado pero tuve que dar vueltas porque no mencionaban los tipos de datos utilizados.
Acá les dejo el código para que lo usen los que necesitan resolver este tipo de problemas.

Código Delphi [-]
procedure TForm6.Button1Click(Sender: TObject);
var i:integer;
diainicio,diafin:double;

begin
    diainicio:=strtodate(edit1.Text);
    diafin:=strtodate(edit2.Text);
    i:=1;
    while (CompareDate(diainicio, diafin) = -1) or (CompareDate(diainicio, diafin) = 0)   do
      {Los valores del while provienen de la unidad DateUtils (agregar en las uses)
      que utilizando la función CompareDate podemos comparar datos. Hay 3 tipos de
      respuestas a la comparación: el -1 significa LessThanValue o sea que el primer
      valor es menor el que segundo; el 0 significa EqualsValue  valores iguales y el
      1 significa GreaterThanValue  que el primero es mayor que el segundo }
      begin
                ztable1.Edit;
                ztable1.Last;
                ztable1.Next;
                ztable1.Insert;
                ztable1.FieldByName('semana').Value:=diainicio;//fecha de la semana
                ztable1.FieldByName('n_semana').Value:=i;//numero de la semana
                ztable1.Post;
                ztable1.Refresh;
                diainicio := diainicio + 7;//incremento 7 días
                 i:=i+1;
      end;
     showmessage('Se Generaron con Éxito las Semanas Para las Horas');
end;
__________________
David Barraud
Licenciado en Sistemas
Responder Con Cita
  #4  
Antiguo 01-02-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
argh... ¿porque usar componentes TEdit para fechas cuando puedes usar TDateTimePicker?

__________________

Responder Con Cita
Respuesta



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
Salir de un bucle do while RoyTan Varios 2 28-08-2006 14:25:36
parar bucle Cosgaya Varios 11 11-02-2006 16:01:56
Problema en bucle CarmaZone Tablas planas 6 20-01-2006 09:51:20
bucle dentro de un bucle Cosgaya Varios 2 06-06-2005 07:05:16
Detener un bucle lfidanza Varios 5 25-06-2003 00:36:14


La franja horaria es GMT +2. Ahora son las 18:19:37.


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