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)
-   -   Mostar datos de tabla en un grid y al hacer click en una celda desplegar otra tabla (https://www.clubdelphi.com/foros/showthread.php?t=69623)

zheen 29-08-2010 06:24:56

Mostrar 2 tablas anidadas en un DBGrid (Drill Down)
 
Buenas...
Pues tengo 2 tablas:
Usuario (idUsuario, Nombre, Apellido, ......) Con los siguientes datos:
  • (1,Jorge, Perez,...)
  • (2,Elena, Casanova, ....)
Venta (idVenta, idUsuario, fecha, Total$sus, ....) con los datos:
  • (1,1,23/08/2010, 500, ....)
  • (2,1, 25/08/2010, 300,....)
  • (3, 2, 25/08/2010, 400,....)
Ahora lo que quiero es que en un DBGrid me muestre las 2 tablas al estilo drill down, algo asi:

idusuario | Nombre | Apellido ......
1 | Jorge | Perez .....
idVenta | idUsuario | fecha | Total$sus ...........
1 | 1 |23/08/2010 | 500
2 | 1 |25/08/2010 | 300
2 | Elena | Casanova
idVenta | idUsuario | fecha | Total$sus ...........
3 | 2 |25/08/2010 | 400
Mas o menos que en la primera fila, es decir del primer usuario, aparezca una cruz (+) con la que se pueda expandir los datos de la venta realizada por un usuario, y Menos(-) para contraer....

Saludos...

zheen 29-08-2010 16:27:56

Mostrar 2 tablas anidadas en un DBGrid (Drill Down)
 
Nadie sabe como??

zheen 29-08-2010 16:29:55

Mostar datos de tabla en un grid y al hacer click en una celda desplegar otra tabla
 
Buenas... necesito su ayuda urgentemente.
Pues tengo 2 tablas:
Usuario (idUsuario, Nombre, Apellido, ......) Con los siguientes datos:
  • (1,Jorge, Perez,...)
  • (2,Elena, Casanova, ....)
Venta (idVenta, idUsuario, fecha, Total$sus, ....) con los datos:
  • (1,1,23/08/2010, 500, ....)
  • (2,1, 25/08/2010, 300,....)
  • (3, 2, 25/08/2010, 400,....)
Ahora lo que necesito es que en un Grid(dbgrid, o cualquier otro grid) me muestre, algo asi:

idusuario | Nombre | Apellido ......
1 | Jorge | Perez .....
idVenta | idUsuario | fecha | Total$sus ...........
1 | 1 |23/08/2010 | 500
2 | 1 |25/08/2010 | 300
2 | Elena | Casanova
idVenta | idUsuario | fecha | Total$sus ...........
3 | 2 |25/08/2010 | 400
O sea, al hacer click en cualquier fila de la tabla usuario me despligue los datos de la segunda tabla, es decir, las ventas que realizo ese usuario.

Es posible hacer eso...?

Saludos...

Caral 29-08-2010 22:34:03

Hola
Me da la impresion de que lo que quieres es que se muestre la informacion de la segunda tabla en otro dbgrid ya que asi se ve en tu ejemplo.
De ser asi esto se hace normalmente con algo que se llama master detail, osea, se ligan las tablas a los dbgrid.
Hacerlos es algo muy sencillo y mas viendo como tienes ligados los datos en las tablas.
Me gustaria saber que Base de datos usas, tal vez me sea mas sencillo hacer un ejemplo que explicarlo.
Saludos

Caral 29-08-2010 23:13:42

Hola
Aqui te hice un ejemplo muy sencillo con Access.
Saludos
PD: Si no es lo que necesitas dilo.:)

Caral 29-08-2010 23:34:56

Hola
Creo que es la misma pregunta.
Continua AQUI.
Saludos
PD: Muchos saben la respuesta, hay que ser paciente.:p:cool:

Casimiro Notevi 30-08-2010 00:26:37

Hola, zheen, bienvenido a clubdelphi, te recomiendo la lectura de nuestra guía de estilo, muchas gracias.

zheen 30-08-2010 06:46:02

Gracias por responde... pero por desgracia no es lo que necesito... :(
La base de datos que utilizo es MySQL. En ralidad lo que quiero es q la otra tabla se muestre en el mismo dbgrid, mas o menos como un drill down, que vi en algunos softwares comerciales... te adjunto una imagen de lo que necesito hacer, es una imagen de aacess q encontre por ahi...(aun no tengo los permisos para poner imagenes pero te dejo la url , asi q por delante aumentale http ://)

nxtgenug.net/images/Access2007DrillDown.jpg


te agradeceria mucho si me das una mano...

Saludos..

defcon1_es 30-08-2010 12:37:20

Lo mismo que muestras en la imagen lo puedes conseguir con los componentes InfoPower (de pago) de la empresa Woll2Woll.

zheen 30-08-2010 17:53:42

ufa... de pago?.. no hay forma de realizar este trabajo con componentes nativos de delphi?. trabajo con delphi y c++ builder 2009.

Saludos

Caral 30-08-2010 18:56:13

Hola
Aqui tienes un ejemplo usando dbgrid.
Es un truco pero es lo mas que este novato puede hacer.
Por lo menos hace algo parecido que el de la foto, solo que a lo novato.
Saludos
PD: Lo que quedaria seria usar un stringrid, pero ya se complica para novatos.:)

zheen 30-08-2010 20:27:08

Muchisimas gracias
 
Muchisimas gracias... trabajare sobre ello....
Saludos.

Caral 30-08-2010 20:41:48

Hola
La verdad no me gusta que se repita el idusuario.
Me gusta mas asi:
Saludos
PD: Ademas de darle cierta separacion para que se distinga la informacion.:D

Neftali [Germán.Estévez] 06-09-2010 14:27:39

Cita:

Empezado por zheen (Mensaje 374974)
ufa... de pago?.. no hay forma de realizar este trabajo con componentes nativos de delphi?. trabajo con delphi y c++ builder 2009.

Que yo sepa los que hay que lo hacen son todos de pago (y no baratos precisamente); Si quieres algo con componentes nativos, la solución de Caral es sencilla y buena para comenzar.

No es la misma que la que te ofrece Access, por ejemplo, pues en este caso quedan datos ocultos, pero creo que a partir de ahí puedes generar una solución buena.

Jab 06-09-2010 17:46:33

Lo que intentas hacer en un dbgrid no lo puedes aplicar directamente, lo que sí puedes hacer, siendo una tabla maestro-detalle y enlazadas tal y como te han comentado, es, usar una dbgrid y a un lado otro dbgrid, de tal manera que cuando pulses en un registro y quede seleccionado de la tabla maestro, en el otro dbgrid te aparezca el detalle.

Otra opción es que uses un dbgrid propio modificando el original, lo puedes aplicar encapsulando el dbgrid original y añadiéndo un componente nuevo, llámalo dbgridzheen por ejemplo, en ella puedes generar los eventos nuevos que requieras y el objeto dbgrid inserto en un propio registro con el [+], cuyo evento onclick te permita la aparición de ese objeto heredado.

Son ideas.
Otra opción es usar otros objetos o bien ventanas que no sean modales donde te aparezca la info del detalle (de la otra tabla) durante el tiempo que ese registro está siendo seleccionado... como si fuera un Hint de ayuda típico.

zheen 06-09-2010 20:43:47

Muchas a gracias a todos(as)
 
Pues por falta de tiempo no pude profundizar este tema, lo que hice fue trabajar en base a lo que propuso caral, asi q gracias a ti Caral y a todos, por colaborar...

Saludos..


La franja horaria es GMT +2. Ahora son las 01:32:26.

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