![]() |
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 :)
|
Cita:
¿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. |
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: |
... :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 00:26:32. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi