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)
-   -   Consultar otra tabla desde un Dbgrdid y traerse los datos al Dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=31420)

alejandroalba 07-05-2006 19:57:08

Consultar otra tabla desde un Dbgrdid y traerse los datos al Dbgrid
 
Hola, soy nuevo, estoy haciendo un programa en donde en un DBGrid, se me despliegan los datos de una Tabla Paradox, la tabla se llama pedidos,db (Cantidad, Clave, Descripción). Lo que necesito hacer es que cuando el cursos este en la columna de Clave, si se sabe la clave del producto pues se teclea y deben salir los datos del producto que se consulto que estan en otra tabla (Productos.db). Ya que esta tabla (pedidos.db) solo se utiliza para capturar la cantidad, clave y precio de los productos

En caso de que no se sepa la clave del producto, en la misma celda oprimir la tecla de funciuon F2 ó F3 y que se despliegue un nuevo formlario donde se pueda acceder al nombre de los productos ya sea con un Dbgrid y de alli poder buscarlos, encontrarlo y traerlo de regreso al dbgrid de la tabla pedidos.db

No se si me di a explicar y la verdad ya ví un monton de manuales y no encontrado respuesta a esto.

Por favor que alguin me pueda guiar.

roman 08-05-2006 05:43:47

Hola y bienvenido al club.

Se me ocurren dos cosas para lo que quieres hacer.

Para fijar ideas vamos a suponer que tu grid está conectado a una componente tblPedidos y que tienes otra componente tblProductos conectada a la tabla de productos.

Primera opción - Agregar un campo calculado

a. Abres el editor de campos de tblPedidos (menú contextual de la componente)

b. Agregas un nuevo campo (menú contextual del editor de campos)

c. Pones las propiedades del nuevo campo como sigue:

Name - nombre del campo
Puedes poner cualqiera que desees, por ejemplo, producto

Componente - No pongas nada, se llena solo.

Type - String

Size - la longitud máxima del nombre del producto

Field type - Lookup

DataSet - tblProductos

Result field - campo en tabla productos que tenga el nombre del producto (o cualquiera de sus campos que te permita identificarlo visualmente)

Key fields, Lookup keys - en estos pones los campos de cada tabla que establecen la relación. En tu caso sería clave.

Al hacer esto, en el grid aparecerá el campo productoque será un combobox del cual se puede escoger directamente el producto deseado. Si además dejas la columna correspondiente a la clave del producto entonces el usuario puede o bien escribirla directamente o bien abrir el combo y seleccionar uno.

Segunda opción - Diseñar una ventana especializada

a. Abres el editor de columnas del grid (menú contextual de la componente)

b. Agregas todos los campos (menú contextual del editor de columnas)

c. Seleccionas la columna clave y en su propiedad ButtonStyle escoges cbsEllipsis. Esto hará que al entrar a editar una celda de dicha columna, aparezca el típico botoncito de tres puntos (como el que aparece en algunas propiedades del inspector de objetos)

En el evento OnEditButtonClick del DBGrid programas lo que haya que hacer. Ese evento se genera cada vez que se oprime el botón de tres puntitos. Entonces puedes aquí crea y/o abrir el formulario con la lsta de productos y según el que se escoja, asignarlo al registro actual.


La segunda opción va más acorde a lo que describes pero en la mayoría de los casos te será más que suficiente la primera opción, además de ser mucho más sencilla.

// Saludos

alejandroalba 08-05-2006 18:30:42

Gracias por contestarme,lo voy a checar.


La franja horaria es GMT +2. Ahora son las 01:38:10.

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