Duda existencial
Hola gente del foro, tengo un problema que necesito resolver y no se me ocurre como, como soy nuevo en Delphi quizas no sea tan complicado pero a mi se me escapa. Les voy a agradecer cualquier idea que me puedan tirar para solucionarlo.
Estoy haciendo un programa que sirve basicamente para dar turnos en un consultorio. Actualmente tengo en una ventana un calendario en donde al ir haciendo clic sobre las fechas y seleccionando previamente el medico me muestra en una tabla que turnos hay tomados. El problema esta en que ahora me piden que no aparezcan solamente los que estan tomados sino todos los que hay en el dia para que puedan ver a simple vista cuales quedan sin tomar. Es decir ahora figura la hora y el nombre del paciente pero si esta tomado el turno, sino el horario libre no se muestra. Como puedo hacer!!! Mil gracias!!! |
duda existencial
no dás información de que base de datos utilizas (paradox,interbase,firebird..), pero se me ocurre que la solución podría pasar por crear un algoritme que calcule las horas 'libres'. Partiendo de la base de que tienes un horario de trabajo, por ejemplo para simplificar de 9 a 14 horas, podrías crear un algoritmo que 'calculara' las horas libres simplemente comprobando los periodos 'libres' antes y después de las horas ocupadas. Simplemente tendrias que chequear que dicho periodo entre una consulta y otra fuese de un periodo mínimo que podría ser por ejemplo de 30 minutos.
Espero haberte ayudado, saludos... |
Gracias Levanteelx por tu respuesta. Uso tabalas Paradox. La duda es como haría eso. Necesitaría que me quede de la sgte manera
8 hs ---- Libre 8:30 hs ----- Nombre del paciente 9 hs ----- Libre . . . . Hasta ahora lo que me muestra es solamente por ejemplo el turno de las 8:30 que esta asignado pero no los otros. |
No se como tienes organizadas las tablas, pero podrías rellenar todos los turnos para un día y mostrarlos.
Cuando alguien quiere un turno, en vez de insertar un registro, modificas el que corresponda con el día, la hora y el medico. Para que la tabla no crezca muchísimo, puedes generar a principio de año todos los días y turnos para el año y a medida que va pasando el tiempo, puedes ir borrando los turnos que quedaron vacíos del útlimo mes. |
Duda existencial
como bien dice el compañero duidisola, no defines como tienes organizada la base de datos, pero bueno, me he creado un pequeño proyecto con una base de datos para simular como se podría hacer:
Parto de la base de que tenemos una base de datos a la que aquí llamo tconsultas, con dos campos que forman la tabla principal, dia + Hora, que definen las consultas confirmadas. Este es el código, por supuesto es bastante mejorable , pero bueno , funcionar ,funciona.. Código:
Espero te pueda aportar un poco de luz este código a tu problema, saludos... |
Muchisimas pero muchisimas gracias a todos. Voy a probar esto que me dicen y les cuento.
|
La franja horaria es GMT +2. Ahora son las 14:01:43. |
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