![]() |
Problema campo Lookup
Hola, foreros del club Delphi, vereis estoy utilizando un DBGrid editable con un campo LookUp.
El DBGrid tiene por campos: FECHA, ARTICULO,DESCRIPCION, CANTIDAD, PRECIO, TIPOIVA que toma de uan tabla dataset lfact que corresponde a una tabla lfactura, que corresponde a las líneas de una factura. En dicho dbgrid podemos intriducir manualmente datos ó artículos correspondientes a una tabla artículo ó que no corresponden a ninguna tabla. Aquí viene cuando interviene el campo lookup, que se refiere al campo DESCRIPCION del DBGrid y se conecta con el campo descripcion de la tabla artículo. He conseguido que se despliegue el combo con la descripcion de los artículos, de la siguiente manera: Código:
pero lo que me falta es que una vez seleccionada una descripcion de la tabla artículo, es que rellene en los campos del dbgrid lo siguiente: en articulo -> que rellene el codigo de artículo de la tabla artículo. en precio -> el precio del artículo de la tabla artículo. en tipoiva-> el iva del artículo de la tabla artículo. y se situe en la casilla cantidad del dbgrid. Espero su ayuda y le doy las gracias de antemano |
Hola.
El "relleno" de los datos del Grid puedes programarlo en el evento OnCloseUp del Combo. Puedes definir un procedimiento que te devuelva esos datos (mediante una consulta) y asignarselos al DataSet asociado al grid. |
Gracias por tu ayuda, lo que obtienes con el campo LookUp es un combo en un DbGrid pero no tiene evento OnCloseUp. Igual estoy equivocada, si es así corrijeme, porque por lo menos yo no le veo por ningún lado.
De todas formas muchas gracias, compañero. |
Hola, tienes razón, el TDBGrid no permite "enlazar" controles externos a las celdas...
pensé que habías enlazado un TDBComboBox a la celda del grid... Investigando un poco en la VCL, he visto que si añades los campos del dataset en el grid como COLUMNS, (haciendo doble click en esa propiedad y pulsando botón derecho del ratón, selecciona "All Fields") y al campo lookup le pones en su propiedad ButtonStyle = esEllipsis, el evento del grid OnEditButtonClick si funciona. En este evento es donde puedes programar la carga de los datos. Esto es porque el DBGrid crea un DBGridInplaceEdit para los campos lookup que tenga enlazados. Extraído de la VCL : TDBGridInplaceEdit adds support for a button on the in-place editor, which can be used to drop down a table-based lookup list, a stringlist-based pick list, or (if button style is esEllipsis) fire the grid event OnEditButtonClick. Salu2. |
Mil gracias lo pruebo y te cuento.
|
Perfecto eso es justo lo que necesitaba.
Graciassssssssssssssssss. |
La franja horaria es GMT +2. Ahora son las 13:01:18. |
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