Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemas Con Maestro Detalle (https://www.clubdelphi.com/foros/showthread.php?t=57393)

nikotina 13-06-2008 11:39:59

Problemas Con Maestro Detalle
 
Hola gente. Mi problema es sencillo y facil de resolver(creo). Pero el tema es que no se como.:( y aqui va mi problema:

tengo en un mismo form 2 dbgrids. uno con la cabecera de pedidos y otro con detalle de cada pedido. La idea es que cuando el usuario descienda con el cursor (con el evento OnKeyDown del dataset)en el dbgrid 1, en el dbgrid dos me muestre el detalle de cada pedido.
El problema en concreto es que sí lo hace. pero simpre en la segunda tabla me muestra el detalle del pedido anterior. Por ejemplo, cuando estoy en el encabezado del pedido 2 me muestra el detalle del pedido 1, y así a medida que voy bajando o subiendo en la tabla 1.

Espero haberme hecho entender bien y que me puedan ayudar.

Desde ya muchas gracias a todos

Walterdf 13-06-2008 12:45:03

Hola nikotina,

Sería bueno que nos cuentes un poco como estás mostrando el detalle a medida que te vas moviendo por las cabeceras, que tipo de tablas estás usando y demás para poder ayudarte.
De todas formas te adelanto que lo mas común en esto (en mi opinión), al tener dos tablas (cabecera y detalle), es "atarlas" a través de algún campo llave común a ambas tablas, que en tu caso puede ser el número de pedido. Esto produce que al moverte a través del MasterSource (tabla cabecera) automáticamente la tabla detalle cambie según el valor de ese campo en común.
Espero te sirva.
Un abrazo.

Caro 13-06-2008 13:15:14

Hola nikotina, como lo estas haciendo, porque si haces una relación maestro detalle entre tus dos dataSet no tendrías ese problema, en este hilo explico como se hace una relación maestro detalle http://www.clubdelphi.com/foros/show...aestro+detalle

Saluditos

nikotina 13-06-2008 13:18:59

Hola Walter
 
Gracias Walter por aportar.
en las dos tablas tengo como campo comun id_pedido y en el evento onkeydown del dbgrid1 capturo el capo id_pedido del query1 y filtro el query2 mediante un Query2.fieldbyname('id_pedido').Asinteger:= Query1.fieldvalue['id_pedido']. Filtro que se refleja en el dbgrid2.
Pero el tema es que lo realiza bien en el evento OnClick del dbgrid1. Pero en el evento onkeyDown muestra el detalle del pedido anterior. Como que la consulta la realiza despues.


Un saludo

Caro 13-06-2008 13:26:17

Hola de nuevo nikotina, has probado usar el evento onKeyUp en vez del onKeyDown del dbgrid. Pero yo creo que sería mejor que hagas una relación maestro detalle como te explico arriba.

Saluditos

Walterdf 13-06-2008 13:48:44

Hola nuevamente

Deberías considerar la recomendación de Caro en su hilo, me parece mas apropiada, pero si no queres cambiar el procedimiento que ya tenes te recomiendo (al igual que Caro) que pruebes con el evento OnKeyUp.
El evento OnKeyDown te está tomando el valor del id_pedido en el momento que la tecla baja y en ese instante está sobre el pedido anterior y es el que te muestra. (no soy experto, razono que funciona así).
Espero te sea de ayuda.
Un abrazo.

nikotina 13-06-2008 15:48:26

Ok. Ese debe ser el problema. Lo voy a implementar en el evento OnKeyUp a ver si funciona.

De todas maneras muchas gracias a todos por colaborar.


La franja horaria es GMT +2. Ahora son las 11:30:08.

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