Ejemplo marcación asistencia personal

¿Cómo estas? Disculpa el molestar nuevamente, es que ahora estoy tratando de realizar un formulario de marcación de asistencia de mi personal y se me ha dificultado muchísimo trabajar con los tipo de datos date() y time(). Tendrías algún ejemplo de como se realiza la marcación de entrada y salida teniendo en cuenta el horario definido del personal.

1 Respuesta

Respuesta
1
Explícame qué tipo de inconvenientes tienes con las tipos de datos Date y DateTime para que así pueda ayudarte con la solución del problema.
Resulta que tengo una tabla de asistencia con los siguientes campos, asi_fecha tipo dato Date(), sucur_cod (Num), entrada_m, salida_m, entrada_t, salida_t, entrada_n, salida_n a partir de entrada_m definidos todos como tipo de datos time() y otra tabla de horarios con los siguientes campos sucur_cod, cod_turno, hora_desde, hora_hasta, hora_dia partir de hora_desde definidos todos como tipo de datos time(), lo que yo quisiera es tomar el horario del personal y comparar si ya tiene asistencia registrada en la fecha y en alguna de las horas ya sea mañana, tarde o noche y de acuerdo a eso tirar la hora de marcación que trae el sistema operativo en un text pero que me lo tire solo hh:mm:ss no quiero que incluya la fecha, por que luego debo hacer un calculo para saber cuantos minutos de retraso tiene si es que su horario fue por ejemplo definido de 10:00 a 12:00 y el personal realizo su marcación a las 10:20 allí ya tendría un retraso de 20min. Y por ultimo como hago para guardar los resultados finales en mi tabla de asistencia ya que tengo definido como time() mis campos.
Hay que tener en cuenta varios puntos:
1. Para trabajar con fechas no hay dificultad puesto que con estos tipos de datos se trabaja igual que con los número en cuanto a sumar y restar se trata ejemplo:
a = Date(2010,10,01)
b = Date(2010,10,15)
?b - a && Muestra 15
2. No existen los tipos de datos time solamente datetime, si vas a trabajar con el tipo de datos datetime, debes usar la función datetime() para almacenar valores válidos en campos de tipo datetime.
3. En lugar de trabajar con tipos de datos datetime, te recomiendo trabajar con campos de tipo carácter y con longitud de 8 para almacenar valores devueltos por la función time() los cuales son mucho más fácil de trabajar y en el caso tuyo si es viable por lo que requieres y es mucho más viable calcular diferencias de tiempo como para retrasos que es algo que mencionaste.
Si te parece conveniente lo del tercer punto puedes avisarme para darte una posible solución.
Tomando la tercera opción, ¿yo modificaría en mi tabla el tipo de dato en mi base de datos a tipo carácter verdad? Y como hago para tomar la hora del sistema y tirar en un text y que me parasca por ejemplo 17:¿10 hs en ese formato?
Efectivamente colocas los campos de tipo carácter y en cuanto a lo del cuadro de texto se hace así:
Thisform.Text1.Value = Substr(Time(), 1, 5) muestra hh:mm
Pero de todas formas te recomiendo utilizar todos los valores devueltos por la función Time(), es decir, hh:mm:ss desde cualquier punto de vista es mejor.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas