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)
-   -   dxGrig desplegable (https://www.clubdelphi.com/foros/showthread.php?t=85482)

gesjug 23-03-2014 11:09:46

dxGrig desplegable
 
Hola a todos:

Tengo 2 tablas, una con los datos de los cursos y otra con los datos de los alumnos de cada curso, la cual tiene un campo idcurso. Cada alumno solo puede estar apuntado a un curso.
Tengo que usar un dxGrid, de devExpress, para mostrar un listado con los cursos, de manera que a la izquierda saldrá un '+', y al hacer click se desplegara la lista de los alumnos apuntados con sus datos.

Creo un level1 para los cursos y dentro de éste, un level2 para los alumnos. En el dbtableview, le asocio en masterkeyfield, el idcurso de la tabla1 y en el detailkeyfield el idcurso de la tabla 2. Tengo las dbtableview, ordenados por el idcurso como leí en algunos sitios.

He probado con 2 consultas, una para cada tabla y también con solo una consulta usando INNER JOIN, pero nada.
Me muestra los cursos, eso bien, pero cuando le doy al '+' para desplegarlo, me muestra las cabeceras de las columnas del dbtableview2 bien, pero no me rellena ningún dado en el desplegable.

He leido la documentación del componente, la página de DevExpress y algunos hilos del foro pero sigo los pasos que a la gente le funciona y a mi nada. Seguro que es alguna chorrada que se me está pasando por alto, pero no doy con ella.
Creo que no me he dejado nada por especificar, porque ahora no tengo el código a mano, lo estoy diciendo un poco de memoria, mañana lo podré mirar bien.

Si me pudierais orientar un poco, me sería de gran ayuda.

Muchas Gracias a todos

Neftali [Germán.Estévez] 24-03-2014 10:30:07

Si generas una consulta on todos los datos (cabecera+Detalle) y lo muestras en un Grid, puedes utilizar los grupos para conseguir lo que necesitas.
El problema de este sistema es que para eso las DevExpress necesitan cargar todos los datos en memoria y dependiendo de cómo sean las tablas es poco recomendable.

gesjug 26-03-2014 07:50:29

Hola Neftalí:
La cuestión es que no quiero usar grupos, porque quiero que tenga una apariencia estilo treelist. Usaría un treelist pero me han pedido que use éste componente especificamente.

Gracias!

gesjug 26-03-2014 17:20:17

Lo que quiero básicamente en otro ejemplo, sería:

Tengo 2 tablas:
tabla Ciudades con idCiudad y NombreCiudad
tabla Pueblos con idPueblo, idCiudad y NombrePueblo

Necesito mostrar en el cxGrid los nombres de las ciudades y el id y que cuando pinches en el '+', te muestre los nombres de los pueblos de esa ciudad.

Me muestra las ciudades, pero cuando pincho en el '+', me muestra las cabeceras idPueblo y NombrePueblo pero vacío, no me muestra ningún pueblo.

Neftali [Germán.Estévez] 26-03-2014 17:30:30

Lo siento; Yo siempre que he realizado esto lo he hecho utilizando Grupos.
Tal vez deberías preguntar en la página de DevExpress.

odrack 27-03-2014 00:59:42

Hola, espero que esto te sirva.

Realizar una consulta con todos los campos que solicitas.
Asumiendo que ya tienes tu dxdbGrid ligado a tu datasource y a tu query.
Agregar las columnas que se van a mostrar en el dxdbGrid.
El dxdbGrid tiene una propiedad que se llama showGroupPanel, esta la debes colocar a TRUE. Con esta opcion te pintara un header en color gris, el cual te permitira arrastrar las columnas que desees ordenar en un tipo TREELIST.
El resultado es que te agrupara los campos según la consulta que realizaste y el campo que agregaste a tu HEADER.

Saludos.

gesjug 27-03-2014 09:01:06

Gracias por tu respuesta odrack, creo que eso es a lo que se refería neftali, pero quiero que no tenga esa cabecera, que salga ya predefinido lo que tiene que mostrar. Ciudades y al desplegarse cada ciudad, sus pueblos.
La cuestión es que parece fácil y seguro que es una bobada que se me pasa por alto, pero llevo días intentándolo y nada.
En cuando a la página de DevExpress, miré de arriba a abajo todo y hay ejemplos, los cuales seguí paso a paso pero nada, los pueblos no se me muestran.
Empiezo a desesperarme

Gracias

Neeruu 28-03-2014 16:58:12

Hola...

Te adjunto un ejemplo de lo que necesitas....

Link
El enlace es de un ejemplo propio construido para este caso....

Aclaro que con el tema de agrupar, también puedes hacerlo.... puedes mostrar el GroupPanel, armar los grupos y luego ocultas el GroupPanel... entonces no se ve la banda gris fea que agrupa los campos...

Saluda Atte Neeruu!!!:)


La franja horaria es GMT +2. Ahora son las 09:26:33.

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