Ver Mensaje Individual
  #2  
Antiguo 08-05-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita