Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-05-2011
RedVenom RedVenom is offline
Miembro
 
Registrado: oct 2003
Ubicación: Tabasco, Mexico
Posts: 110
Poder: 21
RedVenom Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 24-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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:
Código Delphi [-]
begin
 if DataSet.FieldByName('Lookup').Lookup then
  with Memo1.Lines do
  begin
    Add('Nombre: '+DataSet.FieldByName('Lookup').Name);
    Add('Valor : '+DataSet.FieldByName('Lookup').AsString);
    Add('Tabla Lookup: '+DataSet.FieldByName('Lookup').LookupDataSet.Name);
    Add('Campo Lookup: '+DataSet.FieldByName('Lookup').LookupKeyFields);
    Add('Lookup result: '+DataSet.FieldByName('Lookup').LookupResultField);
    if DataSet.FieldByName('Lookup').LookupCache then
      Add('Lockup Cache: Activada')
    else
      Add('Lookup Cache: Desactivada');
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 24-05-2011
RedVenom RedVenom is offline
Miembro
 
Registrado: oct 2003
Ubicación: Tabasco, Mexico
Posts: 110
Poder: 21
RedVenom Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 24-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
No el campo no se llama LookUp
Era de esperar...

Es por eso que dije:
Cita:
Suponiendo que el campo se llame 'Lookup'
La información obtenible de ese campo está en el mensaje anterior.

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:
Código Delphi [-]
// Suponiendo que el campo Lookup corresponda a la última columna creada:
  DBGrid1.Columns[DBGrid1.Columns.Count-1].FieldName:= 'NombreDelCampoLookup';

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 24-05-2011 a las 05:14:15.
Responder Con Cita
  #5  
Antiguo 24-05-2011
RedVenom RedVenom is offline
Miembro
 
Registrado: oct 2003
Ubicación: Tabasco, Mexico
Posts: 110
Poder: 21
RedVenom Va por buen camino
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.
Responder Con Cita
  #6  
Antiguo 24-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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:
Código Delphi [-]
  DataSet1.FieldByName('Cpo_Referencia').Value;
O desde el DBGrid:
Código Delphi [-]
  DBGrid1.DataSource.DataSet1.FieldByName('Cpo_Referencia').Value;
Para el ejemplo le puse el nombre: 'Cpo_Referencia', al campo declarado como KeyFields.

Si no es eso, me doy .

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 24-05-2011 a las 11:15:18.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Saber el valor de un Dataset jocey Conexión con bases de datos 3 30-11-2007 21:37:05
Usar campo LookUp como indice en DataSet amadis Conexión con bases de datos 4 17-05-2007 04:01:57
Campo Lookup con ADO David Bazan Conexión con bases de datos 0 14-07-2006 02:40:57
Saber el campo con valor mas alto ilichhernandez Conexión con bases de datos 2 10-11-2005 02:00:44
Campo Lookup ¥0n1 SQL 1 03-12-2004 23:40:10


La franja horaria es GMT +2. Ahora son las 19:01:00.


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
Copyright 1996-2007 Club Delphi