![]() |
saber el valor de un campo lookup de un dataset
Tengo un problemita, tengo un dataset en el que cree un campo LookUp y el cual agregue a un DBGrid ahora deseo saber cuando cambian el valor del campo lookup osea en un LookUpComboBox lo obtendria con LookUpComboBox.KeyValue en el caso del campo LookUp como puedo obtener el valor del LookUpKeyFields.
Espero Poder haberme expresado correctamente. Gracias de antemano por su orientacion. |
Hola RedVenom.
No sé si estoy entendiendo bién lo que buscas obtener, por lo que te pongo un código de ejemplo donde se obtienen diferentes valores del campo Lookup que has creado en el DataSet. Suponiendo que el campo se llame 'Lookup' sería:
Saludos. |
No el campo no se llama LookUp desde el editor de campos del DataSet cree un campo tipo LookUp y quier extraer el valor en el DBGrid Como si se tratara de un DBLookUpComboBox.
|
Hola.
Cita:
Es por eso que dije: Cita:
En cuanto a la aparición del valor en el DBGrid, cuando creas el campo lookup aparece automáticamente. Pero no es así, si como comentas arriba, creaste los campos con el editor de columnas. En ese caso, desde el editor de columnas, sólo tenés que poner 'NombreDelCampoLookup' a la propiedad FieldName de la colúmna que agregaste para ese campo. (También podés elegirlo haciendo click como si fuese un ComboBox) O por código, por ejemplo:
Saludos. |
Disculpen, creo que no me estoy dando a entender, ahi va de nuevo tengo un dataset1 y en ese dataset1 cree un campo calculado de tipo LookUp que alimenta sus propiedades LookUpKeyFields y LookUpResultField desde el dataset2 y luego el campo calculado que cree lo muestro a traves de un DBGrid y efectivamente el campo em lo muestra como un ComboBox hasta ahi todo bien el problema que tengo es que cuando en el DBGrid desplieguen el ComboBox y pongan o cambien el valor yo quiero obtener el valor real que se va a guardar en el campo no el que se muestra ya que ese es para que el usuario sepa lo que esta agregand a la base de datos, entonces en el caso de un DBLookUpComboBox lo obtengo con KeyValue pero en este caso con el campo calculado que esta en el DBGrid no se como obtenerlo.
Espero haberme explicado mejor. |
Hola RedVenom.
Lo que buscas obtener... ¿ Es el valor por el cuál están relacionadas las propiedades KeyFields y LookupKeyFields ? Si es así sencillamente sería: O desde el DBGrid: Para el ejemplo le puse el nombre: 'Cpo_Referencia', al campo declarado como KeyFields. Si no es eso, me doy :(. Saludos. |
De hecho asi es de ese modo puedo obtener el dato pero seria hasta de despues de hacer el Post antes el cambio que yo realize no se ve reflejado en la base de datos solo lo muestra el dbgrid solo lo vere hasta que afecte la base de datos y no deseo afectar la base de datos hasta antes de saber el valor. por eso hacia mencion al DBLookUpComboBox porque con ese se el valor sin afectar mi base de datos, pero no lo utilizo porque no aplica ya que son varios registros por eso pongo DBGrid.
|
Hola RedVenom.
Cita:
Saludos. |
Lo hago a traves de un campo calculado del dataset, solo creo el campo en el dataset y solo aparece en el DBGrid, no utilizo la propiedad PickList del DBGrid.
|
Hola.
Abrí el Field Editor y poné este código de ejemplo en el evento OnChange del campo Lookup que creaste: Podés usar el ejemplo tranquilo ya que aborta toda operación. 'DataSet2CampoLookup' es el nombre del campo calculado, 'DBGrid2' está referenciando a 'DataSet2' y 'CampoRefDataSet1' es el campo que está declarado en la propiedad KeyFields del campo calculado del 'DataSet2' y corresponde al 'DataSet1'. Toda esta parafernalia sobre los nombres es necesaria por que desconozco cuales usaste. ;) Saludos. |
No pude ejecutar tu codigo como que le hace falta algo en el showmessage
|
La franja horaria es GMT +2. Ahora son las 10:10:44. |
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