Club Delphi  
    Paypal   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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-06-2004
Avatar de Sotrono
Sotrono Sotrono is offline
Miembro
 
Registrado: abr 2004
Ubicación: Buenos Aires - Argentina
Posts: 396
Poder: 23
Sotrono Va por buen camino
En vez de sumar las horas trabajadas te conviene usar un Timer que aumente cada un segundo una variable en 1.
Cuando el empleado ingresa, activas el timer, en el receso lo paras, luego lo activas cuando entra, y lo paras vuando sale.
De esta forma te queda almacenado en la variable la cantidad de segundos que trabajo.

En el evento OnTimer del Timer pones:

seg:= seg+1; //Con esto se almacena la cantidad de segundo trabajados

Para que te queden la cantidad de horas, minutos y segundos pones en el mismo evento:

if seg>=60 then
begin
min:=min+1;
seg:=0;
end;
if min>=60 then
begin
hor:=hor+1;
min:=0;
end;


Para expresar la cantidad de horas trabajadas(usando TTable):

Table1.FieldByName('Total').AsString:= IntToStr(hor)+':'+IntToStr(min)+':'+IntToStr(seg);

Nunca use TQuery el codigo es para un TTable. Te queda a vos traducirlo.

Espero que te sirva...
Responder Con Cita
  #2  
Antiguo 04-06-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Sotrono
En vez de sumar las horas trabajadas te conviene usar un Timer que aumente cada un segundo una variable en 1.
Esta es buena idea sobre todo por aquello de que el empleado pueda alterar la hora de la pc. Lo único es que sólo funcionará si el "checador" está en cada máquina. Si por el contrario se trata de una sola pc en la que los empleados registran su entrada y salida entonces tendrá que pensarse otro mecanismo.

// Saludos
Responder Con Cita
  #3  
Antiguo 05-06-2004
rober rober is offline
Miembro
 
Registrado: may 2004
Posts: 20
Poder: 0
rober Va por buen camino
ok muchas gracias

saludos
gracias lo intentare
Responder Con Cita
  #4  
Antiguo 05-06-2004
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 24
Mick Va por buen camino
El uso de un timer es muy impreciso , y muchisimo mas si se usa del modo que se ha sugerido, segun en que se esté usando el ordenador puedes tener un error desde un 5% hasta infinito. No es de recibo que un programa que controla a un empleado afirme que ha trabajado 3 horas cuando en realidad ha trabajado 4.

Lo mas sencillo es llamar a GetTickCount cuando se entra (da el tiempo que lleva encendido el equipo en milisegundos), volver a llamarlo cuando se sale y restar los dos valores.

Al Entrar:

Inicio:= GetTickCount

Al Salir

Fin:= GetTickCount;

TiempoTotalEnMilisegundos:= TiempoTotalEnMilisegundos + (Fin - Inicio);

Saludos
Responder Con Cita
  #5  
Antiguo 08-06-2004
AbcXxx AbcXxx is offline
Miembro
 
Registrado: jun 2003
Posts: 50
Poder: 24
AbcXxx Va por buen camino
Cita:
Originalmente publicado por Mick
Lo mas sencillo es llamar a GetTickCount cuando se entra (da el tiempo que lleva encendido el equipo en milisegundos), volver a llamarlo cuando se sale y restar los dos valores.
Esto seria correcto siempre y cuando no se reinicie el ordenador.
Responder Con Cita
  #6  
Antiguo 08-06-2004
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 24
Mick Va por buen camino
Que se reinicie el ordenador es algo que afecta a cualquier sistema que utilices sea gettickcount o la hora o lo que se te ocurra.
Si se reinicia el ordenador el programa que controla el tiempo se cerrará con lo que se sumara al tiempo total el tiempo que estuviese el programa en ejecucion, y este tiempo total se guardará en algun sistema permanente como una base de datos, etc.
Cuando el ordenador vuelva a arrancar y el programa de control vuelva a ejecutarse se volverá a contar un nuevo período de uso.

Saludos
Responder Con Cita
  #7  
Antiguo 09-06-2004
rober rober is offline
Miembro
 
Registrado: may 2004
Posts: 20
Poder: 0
rober Va por buen camino
gracias

Muchas gracias a todos

ya lo logre, nadamas me faltan hacer algunos arreglos y listo
pero si surgen ideas nuevas por favor pongalas.

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 22:30:08.


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