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)
-   -   eventos entre dbgrid y lookup (https://www.clubdelphi.com/foros/showthread.php?t=51261)

jzginez 11-12-2007 01:14:31

eventos entre dbgrid y lookup
 
Hola amigos tengo dos tablas detalle devolución y productos, a través de un campo lookup que enlazo con el id del producto y me muestra la descripción de este, lo que quiero es tomar otros valores de otros campos de la tabla producto en ese momento, alguien me puede decir si esto es posible.

Espero darme a explicar en resume lo que quiero es que al usar un campo lookupfield no solo obtener el valor del campo por el que hice la liga sino también el de otros campos, por supuesto antes de hacer algún post.

Gracias

saldanaluis 12-12-2007 02:01:13

Disculpa, pero no entendí bien tu situación.
Si pudieras aclarar un poco mas la situación estoy seguro que alguien podrá ayudarte.
Saludos...

juanlaplata 12-12-2007 16:14:02

Veamos, el DBLoockUpCombox solo de mustra un campo, pero el la propiedad KeyValue tienes el ID del producto, si esta seteado KeyField = IdProducto
lo que puedes hacer es una consulta sobre la tabla productos que traiga los datos que quieras para ese ID.
O, se me acaba de ocurrir, poner DBEdits a la par de tu DBLoockUpCombox relacionados con la misma tabla (seteando los campos necesarios) , y que al elegir un registro mediante el LookUp se mostrara los demas datos.

Espero haber sido claro. Suerte.

jzginez 13-12-2007 17:46:50

Hola gracias por las respuestas pero intentare explicarme mejor a ver si así me entienden.

Tengo un pFIBDataSet (pFIBDetalleCompra) con la siguiente sentencia select:
Código SQL [-]
SELECT
    DETALLECOMPRAS.ID_COMPRA,
    DETALLECOMPRAS.ORDEN,
    DETALLECOMPRAS.CANTIDAD,
    DETALLECOMPRAS.ID_PRODUCTO,
    productos.descripcion,
    (DETALLECOMPRAS.ID_PRODUCTO||' '||productos.descripcion) descripcion2,
    DETALLECOMPRAS.PRECIO,
    DETALLECOMPRAS.TOTAL,
    DETALLECOMPRAS.ID_UNIMED
FROM
    DETALLECOMPRAS 
    left join productos on (DETALLECOMPRAS.id_producto = productos.id)
where DETALLECOMPRAS.ID_COMPRA = :ID

Esta me muestra el detalla de alguna compra sobre la que quiero hacer la devolución.

y tengo otra pFIBDataSet (pFIBDetalle) para el detalle de la devolución
Código SQL [-]
SELECT
    ID_DEVOLUCION,
    ORDEN,
    ID_PRODUCTO,
    CANTIDAD,
    PRECIO,
    TOTAL,
    ID_UNIMED
FROM
    DETALLEDEVOLUCION 
where id_devolucion = :id

En este segundo pFIBDataSet en el editor de campos agrego un campo calculado del tipo lookup con las siguentes propiedades:
Código Delphi [-]
Name:= pFIBDetalleDescripcion;
LookupDataSet:= pFIBDetalleCompra;
LookupKeyField:= ID_PRODUCTO;
KeyField:= ID_PRODUCTO
cuando pongo un dbgrid para este dataset en el campo descripción se activa un tipo bdlookupcombobox de forma automática, de este es del que intento controlar los eventos.

Espero halla quedado un poco mas claro. gracias

juanlaplata 14-12-2007 13:36:58

Si no entiendo mal (pFIBDetalle) sera el detalle de la devolucion de algunos productos de (pFIBDetalleCompra) , que en definitiva seran los productos devueltos de alguna talves (pFIBCompra) . Si es asi creo que lo mejor seria agregar en (pFIBDetalle) un campo (ID_COMPRA) relacionarlos en el detalle
Código SQL [-]
SELECT
    ID_COMPRA,                       // nueva linea
    ID_DEVOLUCION,                  
    ORDEN,
    ID_PRODUCTO,
    CANTIDAD,
    PRECIO,
    TOTAL,
    ID_UNIMED,
    DETALLECOMPRAS.*             // nueva linea
FROM
    DETALLEDEVOLUCION left join DETALLECOMPRAS on (DETALLECOMPRAS.ID_COMPRA  = DETALLEDEVOLUCION.ID_COMPRA)
WHERE id_devolucion = :id

ahi tendras los datos que deseas del detalle de compra.


La franja horaria es GMT +2. Ahora son las 07:17:23.

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