Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-12-2011
juliannemiro juliannemiro is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 27
Poder: 0
juliannemiro Va por buen camino
Question Ayuda para control de asistencias en programa de preceptoria

Hola a Todos!
Es la primera vez que escribo, asique tenganme un poco de paciencia

Les cuento. Estoy armando preparando un trabajo para la facultad en el que tengo que tomar la asistencia DIARIA a los chicos de un colegio.

Tengo que trabajar con la tabla ALUMNOS (toda la informacion del alumno) y la tabla ASISTENCIAS (donde esta id_alumno, fecha, tipo_asistencia que puede ser P: presente, A: ausente, T: tarde).

Mi idea es poner una DBGrid que levante todos los alumnos. Pero lo que no se es como agregar a la derecha de cada alumno una columna por día en el que yo pueda asignarle el tipo de asistencia correspondiente. Digamos, simular una planilla donde se llevan las asistencias.

Como me suguieren hacerlo?? Hay otra forma mejor de hacerlo que no sea con DBGrid??

Desde ya, gracias por su tiempo.
Responder Con Cita
  #2  
Antiguo 08-12-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Que base da datos vas a usar ?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 08-12-2011
juliannemiro juliannemiro is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 27
Poder: 0
juliannemiro Va por buen camino
Disculpas por no aclarar, trabajo con SQL.
Responder Con Cita
  #4  
Antiguo 08-12-2011
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Cita:
Empezado por juliannemiro Ver Mensaje
Disculpas por no aclarar, trabajo con SQL.
Quiero asumir que hablas de Microsoft SQL Server..., ¿cuál versión? ¿Con qué trabajarás, ADO o ClientDataset?

Con tan pocos datos que proporcionas, la calidad de la ayuda que proporcionemos se verá afectada y mermada..., mientras más datos dispongamos, mejor será la ayuda que podamos brindarte.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #5  
Antiguo 08-12-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por juliannemiro Ver Mensaje
Disculpas por no aclarar, trabajo con SQL.
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración.
Responder Con Cita
  #6  
Antiguo 08-12-2011
juliannemiro juliannemiro is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 27
Poder: 0
juliannemiro Va por buen camino
Trabajo con SQL Server 2000 usando ADO.

Lo que yo necesito es elegir un curso, que muestre todos los alumnos. Y que me permita ir agregando por día una columna con la fecha del día, y que por cada alumno me deje ingresar la asistencia (P, A, T)

Las tablas sql con las que tengo que trabajar son las siguientes:

ALUMNOS_CURSOS contiene los datos de los alumnos que tiene cada curso (id_curso, id_alumno)
ASISTENCIAS CONTIENE el id_alumno, el id_asistencia, el id_asistencia_tipo y fecha.
ASISTENCIAS_TIPOS contiene el detalle de la asistencia (id_asistencia_tipo, la descripcion -osea Tarde, Presente, Ausetente- y cuanto el Valor de la falta. Por ejemplo Ausente equivale a 1 falta, tarde equivale a 1/2 falta.)

Diganme si van entendiendo, como verán no tengo muy claro como se tiene que hacer.
Responder Con Cita
  #7  
Antiguo 08-12-2011
juliannemiro juliannemiro is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 27
Poder: 0
juliannemiro Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Bienvenido a clubdelphi, ¿ya leiste nuestra guia de estilo?, gracias por tu colaboración.
Lo acabo de leer y me di cuenta que me faltaron los signos de exclamación(!!) al final del título.

Gracias por la info.
Responder Con Cita
  #8  
Antiguo 08-12-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Entiendo bien lo que necesitas en cuanto al trabajo, pero no entiendo cual es el problema ?.
Que es lo que realmente necesitas, tienes algun codigo implementado o estas en el diseño de la tabla ?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 08-12-2011
juliannemiro juliannemiro is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 27
Poder: 0
juliannemiro Va por buen camino
Gracias por seguir conestando.

Las tablas ya estan hechas.
Lo que no se es como hacer para que en la dbgrid me parezcan los alumnos en la primer columna y a partir de la segunda columna en adelante me aparezcan las fechas para que yo vaya completando con P, A y T y a su vez actualizando en la base de datos con los valores que voy agregando.

El formato que quiero para mi dbgrid es este y no se como lograrlo.

Alumno |1/10|2/10|3/10|
Martin | P | P | A
Roberto| A | T | P
Responder Con Cita
  #10  
Antiguo 08-12-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Mas o menos capto, aunque no se de que van los numeros 1/10, 2/10, 3/10.
Otra cosa que no entiendo es como se genera la ausencia o falta, es total o por clase osea curso ?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #11  
Antiguo 08-12-2011
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Cita:
Empezado por juliannemiro Ver Mensaje
...Diganme si van entendiendo, como verán no tengo muy claro como se tiene que hacer.
Por eso, hay que poner atención en clase...

Simple, imagínate qué es lo que tú harías, trasládalo a un diagrama o a un esquema y listo, asunto iniciado.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #12  
Antiguo 08-12-2011
juliannemiro juliannemiro is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 27
Poder: 0
juliannemiro Va por buen camino
1/10 sería la fecha. 1 de octubre. La fecha también debería darla de alta en mi programa.

La grilla muestra todos los alumnos de un Curso. Cada alumno tiene su presentismo.

Lo que busco es que se grabe la asistencia con los valores que yo completo en la dbgrid. Cada día tiene una asistencia por cada alumno del curso.
Responder Con Cita
  #13  
Antiguo 08-12-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Ya lo entiendo bien.
Como pretendes hacerlo no se puede con un dbgrid, para eso seria el stringrid ya que el dbgrid no muestra los datos como los quieres.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #14  
Antiguo 08-12-2011
juliannemiro juliannemiro is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 27
Poder: 0
juliannemiro Va por buen camino
Que mala noticia me has dado! Con una StrGrid ni siquiera se como asignarle los alumnos a la primera columna.
Tendré que buscar otra forma de realizarlo entonces.

igualmente gracias.
Responder Con Cita
  #15  
Antiguo 09-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Julián.

Es claro que se trata de una simple relación Master/Detail.

El problema, según veo, es que deseas tener una columna por cada día en el DBGrid. Y como ya te ha dicho mi amigo Caral, no se puede lograr con una tabla que tenga la siguiente estructura:
Código SQL [-]
CREATE TABLE ASISTENCIAS(
  FECHA DATE NOT NULL,
  ASISTENCIA CHAR(1),
  ALUMNO_ID INTEGER NOT NULL
);

Una forma que se me ocurre podría funcionarte, aunque seguramente tengas que reformular muchas cosas, es declarar la tabla ASISTENCIAS de este modo:
Código SQL [-]
CREATE TABLE ASISTENCIAS (
    MES INTEGER NOT NULL,
    ALUMNO_ID INTEGER NOT NULL,
    D01 CHAR(1), D02 CHAR(1), D03 CHAR(1), D04 CHAR(1), D05 CHAR(1),
    ...
    D29 CHAR(1), D30 CHAR(1), D31 CHAR(1)
);
Donde MES corresponde al més que se trate, ALUMNO_ID referencia aL ID de ALUMNOS y D01-D31 corresponden a los días del mes donde se le asignará el tipo de asistencia ('A','P','T').
Una vez entablada la relación master/detail entre los DataSets que referencian a la tabla ALUMNOS y ASISTENCIAS, podrías por ejemplo usar un TDBLookupComboBox para seleccionar el alumno, un TSpinEdit para el mes y un TDBGrid para visualizar/modificar las asistencias. Como supongo que las asistencias serán tomádas durante un lápso (trimestre, semestre o año) tendrías que borrar el contenido de la tabla al finalizar el perído e iniciar uno nuevo.

No es ni por mucho una manera elegante ni eficiente, pero te permite tener en un TDBGrid los días del més como si se tratase de una planilla de asistencias.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 09-12-2011 a las 00:12:20.
Responder Con Cita
  #16  
Antiguo 09-12-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Ademas de lo que dice mi maestro y amigo ecfisa se me ocurre que se podría hacer una tabla temporal en donde se coloque la informacion que se desee y luego presentarla en el dbgrid.
Aunque sigo insistiendo que es mas sencillo con un strgrig, puede ser mas trabajo de momento, pero el resultado sera mejor.
Si no sabes usar un dbgrid y tienes que aprender a usarlo que mas da aprender a usar un strgrid ?.
Saludos
__________________
Siempre Novato
Responder Con Cita
Respuesta



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
Necesito ayuda para un programa que usa FOR madrid_cr7 Varios 3 18-04-2011 08:55:47
Programa en Delphi Ayuda!!!!para locos de la programacion!!! gCrazy Varios 4 08-02-2009 15:07:49
Programa de Asistencias de Empleados (1) Caral Varios 20 23-03-2008 21:09:04
Ayuda, programa muy básico para encontrar areas Ale89 Varios 12 16-03-2008 16:27:04
Programa para generar ayuda en chm o uso alternativo de pdf Nasca Varios 6 11-09-2007 14:00:29


La franja horaria es GMT +2. Ahora son las 18:03:39.


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
Copyright 1996-2007 Club Delphi