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 21-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Como tomar una hora que ya paso?

Espero el titulo de hilo este correcto de no ser asi disculpenme.


Trabajo en una agencia aduanal y requiero saber como puedo hacer esto.

Las operaciones inician a las 9:00:00 am y en el trascusros de todo el dia se pagan Traficos, entonces si mi aplicacion unicia a las 9:00 am no existora nada pagado todavia, por lo cual la primera vez que inici mi programa deve de ser a las 12:00:00 pm para que me extraiga la informacion que s epago desde las 9:00:00 hasta las 12:00:00.

Entonces no se como guardar las horas de inicio en este caso las 9:00:00 por que las 12:00:00 seria cuando el programa inicie.



Si alguien me puede ayudar se lo agradesco


Saludos...
Responder Con Cita
  #2  
Antiguo 21-12-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por Luis Alberto
Como tomar una hora que ya paso?
Hay cosas que ni Delphi...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 21-12-2005
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
Cita:
Empezado por dec
Hola,
Hay cosas que ni Delphi...


No entendí el problema
¿Registras los cobros de alguna manera? es decir, ¿hay algún registro de la hora en que realizó el cobro?
__________________

Responder Con Cita
  #4  
Antiguo 21-12-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por Contraveneno
No entendí el problema
Tempus fugit, amigo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 21-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Me refiero que mi aplicacion corre alas 12:00:00 pm y lo que realiza es que un quey me extraer los datos de la bd que tenga fecha de pago hoy 21/12/2005 y que la hora de pago sea mayor a 9:00:00 am pero menor a 12:00:00 pm

si me explique
Responder Con Cita
  #6  
Antiguo 21-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
entonces como pueden darse cuanta tengo la hora final que son las 12:00:00 pm pero la de inicio como la extraigo?
Responder Con Cita
  #7  
Antiguo 21-12-2005
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 20
OSKR Va por buen camino
Si tu aplicacion inicia a las 12...........como piensas capturar u obtener la data previamente pasada? si hay restricción de horario para el inicio de tu exe puedes montar algo en background...........no se..........en el inicio de sesion o un servicio.....pero si necesita ingreso de data me qedo con el primero o volar la restricción, realmente no entiendo bien el problema ( si es q lo hay ), aqi hay algo para registrar tu exe al iniciar una sesión en caso d q otros usuarios sean los q la tengan previo a las 12:

Código:
int AgregarReg()
 
{ LONG status;
 
HKEY hKey;
 
AnsiString programa=ParamStr(0)+" /Run";
 
status = RegOpenKeyEx(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_WRITE,&hKey);
 
if(status != ERROR_SUCCESS)
 
return status;
 
RegSetValueEx(hKey,"Jefa",0,REG_SZ,programa.c_str(),programa.Length()+1);
 
RegCloseKey(hKey);
 
return ERROR_SUCCESS;
 
}
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
 
{ int Par=ParamCount();
 
if( Par!=1)
 
{ exit(0);
 
}
 
if( ParamStr(1).UpperCase()=="/REG")
 
{ AgregarReg();
 
exit(0);
 
}
 
if( ParamStr(1).UpperCase()!="/RUN")
 
exit(0);
//.........
 
Detesto cuando el codigo qeda mal tabulado despues del pegado
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
  #8  
Antiguo 22-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Retomando dicho problema vuelvo a plantearlo:

Tengo una aplicacion que va iniciar en un servidor y dicha aplicacion me extrae datos de una BD con un query dicho query trae la condicion de extrar los datos dependiendo del dia y la hora de pago mismas que son pasadas por parametros

Select *from facturas
where
(fecha:='fecha que paso por parametro')
and (hora>='Hora inicial')
and (hora<=Hora final')



Entonces como pueden darse cuenta tengo la fecha, la hora final pero como obtener la hora inicial para que se puede cumplir la condicion del query

Espero ahora si me haya explicado bien

La verdad me urge, espero me ayuden


Saludos
Responder Con Cita
  #9  
Antiguo 22-12-2005
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
la hora inicial, ¿sería la hora del primer pago del día en cuestión?
__________________

Responder Con Cita
  #10  
Antiguo 22-12-2005
Avatar de Paoti
Paoti Paoti is offline
Miembro
 
Registrado: may 2003
Ubicación: Monterrey. N.L., México
Posts: 612
Poder: 21
Paoti Va por buen camino
función Min() en SQL

si es cómo dice ContraVeneno.


puedes hacer eso

Código SQL [-]
Select *from facturas
where
(fecha:='fecha que paso por parametro')
and (
hora>= SELECT MIN('HORA INICIAL') FROM FACTURAS F2 WHERE F2.FECHA = 'FECHA QUE PASO COMO PARAMETRO'
)
and (hora<=Hora final')


La clave es:

Código SQL [-]
 
SELECT MIN('HORA INICIAL') 
FROM FACTURAS F2 
WHERE F2.FECHA = 'FECHA QUE PASO COMO PARAMETRO'

Obtienes le primer registro (porque es la hora inicial) y ese dato lo usas como
el primer filtro en tu campo de hora inicial.



¿Sí era eso?



NaCl-U2.



Féliz Navidad
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás...

análisis de información
análisis y diseño de sistemas

Paoti Rios Reséndiz

Última edición por Paoti fecha: 22-12-2005 a las 21:43:13.
Responder Con Cita
  #11  
Antiguo 22-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Fijate si la aplicacion inicia a las 9 yo quiero reportar lo que se haya pagado desde las 9 am a las 12:00pm me explico, entonces si la aplicacion inicia las 9 guardar esa hora y hasta que sean las 12 pm reportar eso despues quiero reportar lo de las 12 hasta las 5:00pm entonces la inicial es 12 y la final 5 y despues las 5 seria la inicial y la final las 8:00 pm y asi sucesivamente
Responder Con Cita
  #12  
Antiguo 22-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
pero ademas se puede dar el caso que no haya nada de pago 9:00 am ya 12:00 pm si no apartir de las 12:00 a 5:00 en ese lapso si hubo pago me explico?
Responder Con Cita
  #13  
Antiguo 23-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Me gustaria saber si alguien me puede informar como utlizar bien el componente de Timer.
Responder Con Cita
  #14  
Antiguo 23-12-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 23
vtdeleon Va por buen camino
Bueno, el Timer no tiene mucha ciencia que digamos. Solo tiene un Evento, en el cual pones el codigo que deseas que se ejecute cada cierto tiempo, especificado por ti en milisegundo en la propiedad Interval. Una propiedad que (quizas) utilizaras a menudo sea el Enable para activar y desactivar a tu criterio.


Saludos
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #15  
Antiguo 23-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Mira pregunte sobre el Timer por lo siguiente.

Mi aplicacion va inicar a las 9:00 am y no se volvera a detener a menos que el servidor tenga que a pagarse...

Bueno entonces si quiero que el proceso que manejo en el query se inicie a partir de las 12:00 pm como primera vez, realiza el proceso y termina la aplicacion sigue ahi no se apaga, despues que sean las 15:00 pm quiero que vuelva a inicar dicha aplicacion y realiza el proceso de igual manera termina y sigue vigente hasta las 18:00 se inicia el otro proceso entonces quiero que el proceso inicie cada intervalo de 3:00 horas. me podrias decir con algun ejemplo como platearia esto.


De ante mano gracias
Responder Con Cita
  #16  
Antiguo 26-12-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

No estoy entendiendo un coño. Como no entendo y veo que quieren leer uan data dentro d eun rango de fecha es logico tener un dos campos en la data uno fecha de creacion y otro fecha de modificacion(cosa que tengo en todas mis tablas para realizar aauditorio) y de esta manera se octien lo deseado.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #17  
Antiguo 26-12-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Iba a decir que estaba totalmente de acuerdo con la primera frase de rastafarey, hasta que leí la frase del millón:

Cita:
Empezado por Luis Alberto
quiero que el proceso inicie cada intervalo de 3:00 horas. me podrias decir con algun ejemplo como platearia esto.
Ahhhhh hombre empecemos por ahí. Si hubieras dicho esto desde un principio, no se habría formado el pollo con la famosa "hora de inicio".

Colocamos un Objeto TTimer en la ventana, como ya dijo vtdeleon, despues en su propiedad Interval colocamos 180000 (que es el resultado de: 3 horas * 60 minutos * 1000 segundos), ya que el tiempo se le da en milisegundos.

Al iniciar el programa, se guarda en un archivo la hora actual, que será la hora de inicio para las consultas. Si en este momento ha de hacerse los reportes... pues se llama a la función que se encarga de eso, si no debe hacerse, pues se pone el Timer Activo y ... a esperar 3 horas.

En su evento Ontimer ponemos algo así:

- Leer del archivo la hora de inicio, y guardarla en una variable.
- Grabar en el archivo la hora actual, (que sirve de hora de inicio, la próxima vez que se ejecute este evento, recuerda, se ejecutará cada 3 horas)
- Hacer los reportes o lo que sea.
- Se acabó.

Al hacer los "reportes o lo que sea", simplemente será ver si la consulta que se abre tiene resultados, es decir:
Código Delphi [-]
  if not Query1.IsEmpty then
  begin
    // significa que hay resultado, es decir hay pagos entre el rango de horas, por 
   //tanto, hacemos lo que se deba hacer....
  end
  else 
    // no hacemos nada, porque no hay pagos.


saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 26-12-2005 a las 23:01:11.
Responder Con Cita
  #18  
Antiguo 29-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Gracias

Gracias por su colaboracion, ya pude realizar lo que necesitaba muchas gracias a todos por su paciencia..


Saludos...
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


La franja horaria es GMT +2. Ahora son las 20:48:16.


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