PDA

Ver la Versión Completa : Calendario con datos en cada fecha


Tecnofacil
03-02-2016, 22:52:44
Buenas y santas. Básicamente lo que tengo es una tabla donde se cargan "Guardias" con los campos Fecha;Legajo;Nombre.
Lo que hago es mostrar todo en una grilla, (nada de otro mundo), pero se me ocurrió que podría poner un calendario con el mes correspondiente y que en cada fecha correspondiente apareciera el numero de legajo.
Algo así como una agenda de tareas pero que muestre legajo/nombre de cada operario cargado esa fecha. Cualquier idea que tengan les agradecería, no importa si sea para form o para reporte, ambos me serían útiles.

Casimiro Notevi
03-02-2016, 23:06:15
¿Y el problema cuál es?

feliz-58
12-02-2016, 15:50:29
Buenas y santas. Básicamente lo que tengo es una tabla donde se cargan "Guardias" con los campos Fecha;Legajo;Nombre.
Lo que hago es mostrar todo en una grilla, (nada de otro mundo), pero se me ocurrió que podría poner un calendario con el mes correspondiente y que en cada fecha correspondiente apareciera el numero de legajo.
Algo así como una agenda de tareas pero que muestre legajo/nombre de cada operario cargado esa fecha. Cualquier idea que tengan les agradecería, no importa si sea para form o para reporte, ambos me serían útiles.


Hace un tiempo hice un proyecto, donde fabrique un calendario a mano, y di le dabas a un dia podias ver los datos almacenados de ese dia que habias guardado anterior mente en una tabla, te adjunto una imagen

Lepe
13-02-2016, 13:07:27
Lo que buscas es un "calendario outlook".

- Hay componetes que ya lo hacen, en torry.net seguro lo encuentras.
- También lo puedes hacer tú usando el canvas del Form o un panel. Canvas.DrawLine (para pintar las líneas) y canvas.TextDraw para el texto. Aquí el mouseDown, mouseClick, etc se puede complicar, pero es lo más óptimo y eficiente, ya que solo pintas encima de un Form.
- Otra forma a camino entre las dos soluciones, es poner un TScrollBox y dentro creas tantos TFrames como días tiene el mes. (algo así como el calendario de feliz-58, pero en lugar de botones, que sea un panel, un Tframe o lo que quieras.

La ventaja de la última forma es que tú tienes el control de todo, y haciendo un cambio en el TFrame, haces el cambio para todos los días del mes. (color de días, click en el número del día, clic en el nombre del trabajador, etc.) Porque puedes poner dentro del frame, paneles, labels, etc. Eso sí, puede parpadear un poco más que el pintado o el componente de torry al cambiar de mes.


Saludos

iMia
19-02-2016, 12:16:43
Mucho más sencillo...
con un StringGrid, y pintando en onDrawCell. Puedes hacer un calendario mensual, semanal o lo que quieras. Creas una matriz con las mismas filas/columnas de un objeto complejo donde guardarás la información que quieras, ahí le cargas los registros de la tabla y al pintar la gruid muestras la info que quieras del objeto correspondiente de la matriz. Es muy rápido, y solo creas un evento que lea de la tabla y otro que pinte, y se refresca cada x tiempo que tu determines...

http://i63.tinypic.com/2hnaxcw.jpg

AgustinOrtu
19-02-2016, 17:40:34
iMia

Me gusta mucho como lo has implementado, muy profesional

Seguramente te robe alguna idea para inspirarme

Un saludo

iMia
22-02-2016, 11:37:04
Muchas gracias,
Las ideas son libres...roba las que necesites, sin problema... mientras no me robes el código... :D hahahaha
La idea inicial era utilizar un componente externo, pero poco a poco fui haciendo pruebas y me iba saliendo y me gustaba, por que yo podía controlar todo el proceso...
Es tan simple como he comentado... un StringGrid propio, una matriz de objetos con los campos que necesites, que a su vez se carga de la BD. Así la matriz sólo tiene los objetos donde hay datos, por lo que es muy rápida tanto al cargar como al pintar...