Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Dbgrid Y Campos Lookup (https://www.clubdelphi.com/foros/showthread.php?t=16473)

nax 29-11-2004 19:50:08

Dbgrid Y Campos Lookup
 
Un saludo foro. Tengo un problemilla y apreciaría cualquier ayuda al respecto. Tengo un DBGrid enlazado a una tabla con campos tipo Lookup, el problema es que el Grid no muestra en las celdas los campos, sino que tengo que dar click en una celda y se despliega un combo mostrando el valor correspondiente al registro. Es muy molesto esto para un usuario del sistema, lo que deseo es que el grid muestre todos los registros sin necesidad de que el usuario tenga que estar yendo a una celda a para desplegar el combo y ver los campos. De antemano muchas gracias :)

Cabanyaler 30-11-2004 10:47:01

Cita:

Tengo un DBGrid enlazado a una tabla con campos tipo Lookup
:eek: No entiendo, ¿serán Tedits donde visualizas una a una las tuplas? o... ¿Un grid donde visualizas conjuntas de ellas?.

¿Podrías ser mas preciso?.

Aún así entiendo que es un DBGrid asociado a un TDataset donde visualizas un conjunto de tuplas, teniendo este Grid algunas columnas donde se muestran atributos multivaluados, es decir, con varios valores al mismo tiempo, lo cual rompe, si no recuerdo mal, la primera forma normal de las bbdd. ¿no?.
Si es eso tal como lo he entendido, deberías plantearte de nuevo el diseño de la BBDD, o en su defecto visualizar tantas tuplas repetidas con los mismos datos exceptuando los multivaluados en el mismo Grid. Pero esta última solución me parece inclasificable desde el punto de vista del diseño. ;)

Suerte.

nax 30-11-2004 19:19:59

Qué tal! Gracias por contestar a mi duda. Seré más preciso. Tengo una tabla Cursos y otra tabla de Estudiantes. Para enlazar adecuadamente ambas elaboro una tercer tabla (C-E) la cual contiene las claves de Cursos y Estudiantes. Lo que deseo es que por cada Curso se muestren los Estudiantes que lo toman. Lo que hago es hacer la tabla C-E como detalle de Cursos, y dado que un curso "posee" un conjunto de Estudiantes, se podría pensar en trabajar a los Estudiantes como detalles de C-E, pero lo usual es que las altas de Estudiantes se realicen sobre una tabla sin restricciones, además de que un estudiante puede tomar varios Cursos. Esto apunta a que no se trata de una relación Maestro/detalle (C-E/Estudiantes, respectivamente), sino una relación de referencia. En pocas palabras, tengo algo como:

Cursos y C-E = Maestro/detalles

C-E y Estudiantes = Relación de referencia

Ahora, dado que la tabla C-E contiene claves, creo campos de búsqueda para obtener los datos de los Estudiantes representados por el Código, y enlazo mi DBGrid a dicha tabla (C-E), y finalmente tengo el problema mencionado anteriormente... uuufffffff :confused:

Cabanyaler 01-12-2004 08:26:55

... :confused: ; vamos a ver, lo tuyo es un claro ejemplo práctico de lo que es una relación muchos a muchos. Dos tablas relacionadas y en medio una tabla de relación con las claves primarias de las dos anteriores formando la clave de esta tercera como combinación de las mismas.
A partir de aquí, es lo estandar, es decir, al evento (AfterScroll) de cualquiera de las dos tablas debe producirse el movimiento sobre la tabla relación y esta proporcinar las claves de la otra tabla, siendo los datos representados en cualquier tipo de controles de edición de los mismos,(DBGrigs, TEDits, etc...).
Puedes encontrar ejemplos en el propio cd de Delphi, o seguro (aunque no lo he buscado) en Web.
Suerte.


La franja horaria es GMT +2. Ahora son las 15:42:55.

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