RE:Programa REloj checador..AYUDA!!!
****
Reloj checador de entradas y salidas de personal
Formulario de entrada de datos
Semana número: 01
Del: 02/01/2006 Al: 07/01/2006
Fecha de hoy: 04/01/2006
Empleado-HoraDeEntrad-HoraDeSalid-HorasTrabajad-HorasAcumEnEstaSem
Alberto........08:00:00...........16:00:00.........08:00:00.............24:00:00
Roberto......08:10:00...........16:20:00.........08:10:00.............24:30:00
Fiorella.......07:55:00...........16:00:00.........08:05:00.............24:10:00
****
ahora procedemos a calcular las horas trabajadas en esa semana
por cada item, por ejemplo para alberto
luego de calcular las horas trabajadas de ese dia,
ordenamos el archivo que contiene los detalles, osea donde estan los campos semana y horas trabajadas, ambos en formato caracter;
sea el nombre del campo: horas_trabajadas
filtramos la semana en cuestion y hacemos una suma en segundos del total tiempo trabajado hasta el momento en esa semana:
set key to txtSemana
nHorasAcumEnEstaSemEnSeg=0
scan
nHorasAcumEnEstaSemEnSeg=nHorasAcumEnEstaSemEnSeg+ ;
TransformarASegundos(horas_trabajadas)
endscan
txtHorasAcumuladasEnEstaSemana=hhmmss(nHorasAcumEnEstaSemEnSeg+ ;
TransformarASegundos(txtHorasTrabajadas))
****
TransformarASegundos() y hhmmss() son funciones que ya previamente hayas preparado.
txtHorasTrabajadas y txtHorasAcumuladasEnEstaSemana son obviamente campos del objeto grid que por cierto imagino que usas a menos que guardes los datos de alguna otra forma.
personalmente usaria dos archivos para guardar la informacion
en uno guardo los campos: semana, el rango de fechas que conforma esa semana, la fecha de hoy osea, fecha en que se registran los ingresos y salidas de los trabajadores y un campo donde se guarda el total horas trabajadas de los que trabajaron en esa fecha.
en el otro archivo guardaria los detalles y un campo clave como la semana para mantener una relacion, pueden quizas haber mas campos claves, eso depende de como estes trabajando los datos.
en este segundo archivo guardo los siguientes campos: la semana, la fecha en que se trabajo, el empleado, la hora de entrada, la hora de salida, las horas trabajadas y.............. agregaria un ultimo campo... las horas acumuladas en esa semana... en este ultimo campo iria guardando un acumulado diario pero por semana, de esa manera no tendria que estar sumando cada vez que presente el formulario, solo tomo el dato y lo muestro y si ingreso el nuevo dia y las nuevas horas trabajadas, lo actualizo, osea acumulo y luego lo guardo.
en fin existen mil y un casos de hacer las cosas.
saludos.