Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-12-2006
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Poder: 20
BlackDaemon Va por buen camino
Hola Caral , jejej gracias por lo de simpatico en serio xD es que no puedo creer que este bién, aunque no me gusta mucho por que veo ejemplos de otros y lo hacen con un buen aspecto visual, yo creo que con el tiempo iré adquiriendo experiencia en eso, me gusta muchisimo delphi y espero manejarlo con el tiempo bien y poder usar como herramienta de trabajo en mi futuro.

Bueno ahora pasando al otro tema te doy muchas GRACIAS Caral por darte el tiempo de hacerme un ejemplo verdad que dan ganas de llorar
bueno lo miraré y luego te digo que tal y que cosas mas le quisiera agregar...
para ser sincero no se que mas agregarle... a ver alguien con mas experiencia quisieran que me digan que cosas mas se le puede agregar al programa... me refiero a opciones... ya tiene reporte osea la planilla, Bueno espero mas ideas para que asi mi primer programa valga la pena

bueno saludos y muchas gracias Caral y Lepe con gente como uds. si vale la pena aprender..

PD.- LEpe ya estoy leyendo La cara oculta de delphi 4
Responder Con Cita
  #2  
Antiguo 12-12-2006
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Poder: 20
BlackDaemon Va por buen camino
Bueno, me perdí un poco del foro por que he estado muy ocupado con el trabajo jiji ( sarcasmo ) Lo que pasa es que ya casi tengo lista la aplicación ahora tengo solo 2 problemas.. bueno vamos por el primero y el mas importante.

Resulta que tengo 1 tabla donde almaceno las horas, fechas de entrada y salida de cada usuario ( emleado ) .... Bueno ahora el problema es a la hora de sacar el reporte con el total de las horas y días trabajados por que el formato en el que se almacena en las tablas es este:

Time : hh/mm/ss ej: -> 08:22:47 a.m.
Date : dd/mm/aaaa ej: -> 11/12/2006

Ahora el problema es que tengo que hacer que me saque 2 reportes uno con el "total" de horas trabajadas al mes y el segundo reporte es que me saque un total de minutos/horas de retrazo desde la hora de entrada... por ej:

Hora de entrada 7:30 --> por ej. esa es la hora de entrada a la empresa ahora un empleado llega a las 7:40 y ya sería 10 minutos de retrazo que tiene al día y tengo que sacar en el reporte eso mas... osea los minutos de retrazo que tenga cada empleado al día ... así para que al 3er retrazo que tenga tendrá una sanción o algo

Bueno aqui les deja mis tablas de asistencia.db de fechas y horas.

Field Name Type zise key
--|--------------|-----|----|----|
1 | Id_asistencia | + |
2 | id_usuario | N |
3 | HoraEntrada | T |
4 | FechaEntrada | D |
5 | HoraSalida | T |
6 | FechaSalida | D |

Bueno ahora para el reporte es lo que tengo problema..


saludos y gracias de antemano
Responder Con Cita
  #3  
Antiguo 12-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
¿Cual es el horario de entrada / salida?
¿algún día de la semana cambia ese horario?
¿existe algún turno de noche de tal forma que se entre a las 23:45 y se salga de trabajar al día siguiente?

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 12-12-2006
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Poder: 20
BlackDaemon Va por buen camino
Hola Lepe a tu primera pregunta.

La hora de entrada y salida es por ej en la mañana -> entrada y al medio dia -> salida... ahora cuando entra en la tarde lo cuenta como entrada y cuando sale en la tarde lo cuanta como salida No sé si lo hice bién pero creo que si, ahora a tu segunda pregunta.. NO ningún día cambia el horario. Todos los dias es una entrada a las 8:30 y salida a las 12:30
y la tercera pregunta.. también NO.. no existe ese turno todo es en el día y se sale a las 7:00 pm

Ahora regresando a lo que yo estoy haciendo.. es esto para sacar las horas totales en el reporte
--- Lo saqué de un post de LEPE era cuestión de buscar un poco ----

Código SQL [-]
select
  sum(
    (
      3600*extract(hour from HoraSalida) +
      60*extract(minute from HoraSalida) +
      extract(second from HoraSalida)
    )
    -
    (
      3600*extract(hour from HoraEntrada) +
      60*extract(minute from HoraEntrada) +
      extract(second from HoraEntrada)
    )
  )
  as HorasTotales
from
  asistencia
where
 id_usuario = :id_usuario

Bueno ahora como dice en el otro post.. SI me da como resultado la resta de la hora de salida con la hora de entrada y me da un total de hotas trabajadas en un periodo.. podría ser de toda la mañana o tada la tarde y para convertir ese numero entero ( segundos ) en formato H M S estoy usando esto

Código Delphi [-]
var  T, H, M, S: Integer;
Time: TTime;
begin
  T := Query1['HorasTrabajadas'];
  H := T div 3600;
  M := (T mod 3600) div 60;
  S := (T mod 3600) mod 60;
  Time := EncodeTime(H, M, S, 0);
end;

Pero ahora mi duda es que ese HorasTrabajadas tiene que estar si o si en una columna ?
creo que no, pero queria hacer que se almacene eso mas en una columna de mi tabla

Field Name Type zise key
--|--------------|-----|----|----|
1 | Id_asistencia | + |
2 | id_usuario | N |
3 | HoraEntrada | T |
4 | FechaEntrada | D |
5 | HoraSalida | T |
6 | FechaSalida | D |
7 | HorasTrabajadas |T|

Bueno espero respuestas

saludos y espero haber sido claro si no pregunten y yo con gusto les doy mas datos

gracias por adelantado
Responder Con Cita
  #5  
Antiguo 13-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Ya veo que andas a pasos agigantados, me he quedado gratamente impresionado.

Las horas trabajadas no creo que pueda guardarlas en un formato Time, ya que si trabaja 24 horas, el formato Time cambia a cero la hora automáticamente (es lógico, solo acepta valores de 0-23 horas)

Quizás fuera mejor dejarlo como un campo que se cree al vuelo dada 2 fechas, no sé si te gustará... ya me dirás.

Para tu consulta:
Sería armar un procedimiento almacenado (store procedure), con dos parámetros de fechas, así puedes saber las horas trabajadas. El procedimiento almacenado sería de selección, de tal forma que devuelva los datos del trabajador más una columna añadida (posiblemente de texto para facilitar las cosas) donde se indique esas horas trabajadas o incluso los minutos que ha llegado tarde cada día.

(Los cálculos que haces en delphi, también los podrás hacer dentro del procedimiento almacenado)

Si quieres añadir el campo horas trabajadas, lo mejor sería un trigger (disparador) en el afterUpdate de la tabla, de esa forma siempre que se guarde algún valor, la base de datos intentaría hacer el cálculo automáticamente.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 14-12-2006
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Poder: 20
BlackDaemon Va por buen camino
Hola Lepe jejej lo que pasa es que yo cuando me propongo algo siempre estoy sobre eso y pues asi uno avanza muy rápido mas con la ayuda de uds y de un amigo ( garcez ) xD
Bueno pero ahora si que no te entendí mucho lo que me dijiste.
Vamos por partes...
En eso de las horas trabajadas tienes toda la razón que no se podría guardar las horas trabajadas en formato TIME por el motivo que me dices, ahora seria de agurdarlo en un campo Numérico ??? O Alphanumérico ?? o guardaria el tiempo en segundos ?? y al momento de hacer el reporte lo transformo al formato H/M/S ??
Bueno solo eso faltaría para completar mi aplicación es que me de un reporte completo y hacer lo que mi jefe me pide y mas aún si es mi primer trabajo y será mi primer sueldo este 16 y lo que quiero es que no me pague por nada.. bueno aunque ya programé su página web xDD
Pero quería terminar esta aplicación hasta el 16 por que luego pienso viajarme unas semanas al campo de vacaciones pues ya salí de la escuela
bueno al final terminé hablando de mi vida personal como si álguien le interesaría

saludos y suerte
Responder Con Cita
  #7  
Antiguo 14-12-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola BlackDaemon
He seguido de cerca tu progreso y me parece, que dentro de poco te pido consejos.
Para hacer lo que quieres, yo, haria que se interpretaran las horas como un simple float, donde los segundos fueran los decimales, ahunque creo que en verdad los segundos no deberian importar.
Una vez hecho esto, haria una simple resta de los datos y los pasaria a la tabla empleados, donde se cambie continuamente el dato.
Bueno son unas idea nada mas.
Vas muy bien, ni me meto, por que lepe te esta ayudando mas.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consejo para impresion lbidi Impresión 2 02-08-2006 03:58:22
Consejo aplicación Internet (Backups) Gabriel Firebird e Interbase 2 26-12-2005 15:36:59
Consejo para manejar tablas Paradox Coco_jac Varios 8 17-11-2005 17:27:17
Consejo para Acelerar Procesos manuelpr Varios 2 08-03-2005 09:02:22
Consejo para desarrollar en linux Casimiro Noteví Varios 2 05-01-2005 10:41:51


La franja horaria es GMT +2. Ahora son las 05:21:48.


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