PDA

Ver la Versión Completa : dbgrid relacionado a una consulta?!


LizdR
22-05-2008, 04:51:19
Hola, disculpen otra vez, ahora mi duda es sobre dónde debe estar enlazado mi bdgrid, el caso es este:
Tengo varias tablas identificadas por un código, por ejemplo, pedidos, entradas y salidas, todas relacionadas a un almacen que contiene articulos(articulo es otra tabla),hice una relacion master-detail para ingresar por separado los datos del pedido o entrada o salida con sus respectivos detalles; el problema es que para realizar la union entre tablas (pedido-detalle pedido) empleo códigos, pero deseo que en los dbgrids que empleo para el detalle en vez del código del artículo me aparesca su descripción.
Opté por enlazarlo a una consulta que obtiene estos valores, y que la ejecuto en todo momento, pero al momento de eliminar un registro de detalle, como los dbedits del detalle que empleo estan relacionados a la tabla y no a la consulta, no se elimina el registro deseado sino el que está en ese momento apuntado en la tabla y está en los dbedit, espero que puedan entender lo que quiero decir y puedan ayudarme, desde ya muchas gracias por su aporte intelectual.

juanlaplata
22-05-2008, 13:17:06
Se me ocurren dos opciones, la mas rapida en tu caso es cerrar y abrir la consulta para que al volver a ejecutar el codigo sql ya no traiga el registro eliminado.
La otra opcion es: en la tabla articulos crear campos de loockup. por ejemplo,

Tabla Articulos [id_articulo, id_marca, descripcion, ....]

Tabla Marcas [id_marca, Descripcion, .....]

Creamos para la tabla Articulos un nuevo campo Marca, el cual toma de esta tabla el id_marca, para relacionarlo con la tabla Marcas mediante el mismo campo (en este caso el mismo nombre) y que el resultado de dicha relacion sea el campo descripcion de la tabla Marcas.
Asi podrian existir varios campo mas, por ejm. Modelo, Rubro, etc, etc.
Por ultimo el DBGrid lo relacionas a la Tabla Articulos que ya contiene todos los datos necesarios.

Puedes buscar mas sobre campo Loockup, son de gran utilidad, y no usas para nada las consultas auxiliares.

LizdR
24-05-2008, 22:06:08
Hola Juan, gracias por tu ayuda, sabes, busqué sobre el lookup en la ayuda de delphi y existen muchas formas de aplicarlo, lo que me dices es que lo aplique a una columna y luego la busque?, el caso es que ya tengo desarrollado todo mi programa empleando las consultas, y no se si en verdad me facilitaría mucho lo que me dices o es que ni modo tendré que seguir con lo que ya estaba haciendo.:confused:

juanlaplata
26-05-2008, 13:12:49
deseo que en los dbgrids que empleo para el detalle en vez del
código del artículo me aparesca su descripciónme referia a esta parte de tu inquietud. En la tabla detalle generas un nuevo campo Lookup con los codigos (del articulo) de ambas tablas (maestro, detalle) y que el resultado del campo sea la descripcion del mismo.

LizdR
29-05-2008, 19:33:28
Hola nuevamente Juan, te cuento que estuve intentando comprender lo que me sugeriste, es que nunca antes había manejado ni creado nuevos campos y cuando lo hice, esa era la solución, en verdad, muchas gracias :).