Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Recuperar valores de TSMBDFilterComboBox (https://www.clubdelphi.com/foros/showthread.php?t=72343)

jlrdz 11-02-2011 16:14:52

Recuperar valores de TSMBDFilterComboBox
 
Un saludo primero que nada, estoy utilizando el componente TSMBDFilterComboBox, este componente tiene la propiedad FieldDisplay (campo de la base de datos que se va a mostrar), FieldValue(campo de la base de datos que tomará como valor) y la propiedad DataSource(ya seleccionado) entre otras más pero estás me imagino son las principales.

Cuando se carga el formulario el TSMBDFilterComboBox se llena bien, no hay problema con eso, mi problema está en que no sé como obtener el valor del item seleccionado para que en el evento onChange pueda yo hacer una consulta a la base de datos con dicho valor, estaba intentando lo siguiente en un showmessage(); para saber que en realidad me estaba recuperando el valor:

Código Delphi [-]

//esto me muestra en el showmessage() el Field Name de la base de datos  
fcbGrupo.FieldValue;
//esto me muetra el valor de FieldDisplay
fcbGrupo.Items.ValueFromIndex[cmbfgrupo.ItemIndex];

En el componente el valor que debe tomar FieldValue es el campo "id" de la base de datos y en FielDisplay el campo "descripcion". Lo que quiero es recuperar el valor de FieldValue de cada item.

Quiero tenerlo como si fuera un Select en html que tiene un valor y un texto a mostrar.

BlueSteel 11-02-2011 17:26:07

Hola

con que base estas trabajando,,, utilizas Querys?

yo uso Ado para conectarme al SQL Server y TDBLookupComboBox que si bien no es el mismo componente es uno similar

para lo que utilizo el siguiente codigo para realizar el filtro

Código Delphi [-]
     Datos.AQ_Ingreso.Close;
     Datos.AQ_Ingreso.SQL.Clear;
     Datos.AQ_Ingreso.SQL.Add('Select * From Vista_Ingreso');
     Datos.AQ_Ingreso.SQL.Add('Where Eve_Id=:v01');
     Datos.AQ_Ingreso.SQL.Add('And Ctl_Id=:v02');
     Datos.AQ_Ingreso.SQL.Add('Order By Ing_Fecha');
     Datos.AQ_Ingreso.Parameters[0].Value := vEve.KeyValue;
     Datos.AQ_Ingreso.Parameters[1].Value := vCtl.KeyValue;
     Datos.AQ_Ingreso.Open;

Donde vEve y cCtl son componentes de tipo TDBLookupComboBox, Datos el formulario tipo DataModule, AQ_Ingreso, el Query en donde realizo el Filtro...

Salu2:p:cool:

jlrdz 11-02-2011 17:38:05

Estoy utilizando MySql con MyDac y sus componentes para la conexion TMyconnection TMyquery, con eso no tengo problemas, si no utilizé el TDBLookupComboBox fue porque yo de la base de datos recupero el id y la descripcion y si uso TDBLookupComboBox puedo mostrar lo de campo descripcion pero el los del campo id son los que quiero recuperar como valor, con el componente TSMBDFilterComboBox en las opciones tiene FielDisplay y FieldValue y ahi es donde escojo para FieldDisplay el campo descripcion y para FieldValue el campo id lo que no sé es como recuperar el valor de id del item seleccionado.

BlueSteel 11-02-2011 19:53:23

Cita:

Empezado por jlrdz (Mensaje 390716)
si no utilizé el TDBLookupComboBox fue porque yo de la base de datos recupero el id y la descripcion y si uso TDBLookupComboBox puedo mostrar lo de campo descripcion pero el los del campo id son los que quiero recuperar como valor

que raro, yo utilizo el TDBLookupComboBox y puedo mostrar 2 campos a la vez, solo tengo que hacer esto

Supongamos que tengo un TDBLookupComboBox que se llama vTip

en la propiedades :

ListField: Ubi_Detalle; Tem_Valor // Le asigno 2 campos, solo se deben separar por punto y coma
KeyField: Tem_Id // Este campo será el que se asigna al KeyValue
ListSource: Datos.DS_ValorUbicacion // DataSource al cual se conecta


Cita:

con el componente TSMBDFilterComboBox en las opciones tiene FielDisplay y FieldValue y ahi es donde escojo para FieldDisplay el campo descripcion y para FieldValue el campo id lo que no sé es como recuperar el valor de id del item seleccionado.

prueba con el KeyValue

Código Delphi [-]
Datos.AQ_Ingreso.Parameters[0].Value := vTip.KeyValue;
Salu2:p:cool:

jlrdz 11-02-2011 20:39:09

Ok ya me ha funcionado, muchas gracias por su ayuda.

Saludos! ;)


La franja horaria es GMT +2. Ahora son las 14:22:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi