PDA

Ver la Versión Completa : Recuperar valores de TSMBDFilterComboBox


jlrdz
11-02-2011, 16:14:52
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:



//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


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
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


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

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! ;)