Hola foro, estoy utilizando un componente de infopower para realizar un búsqueda incremental en un TsimpleDataSet (DbExpress) ligado a un DBGrid. Como estoy utilizando una forma para varios catálogos intento actualizar la conexión de este componente (DataSource) en tiempo de ejecución, asignando el campo en la propiedad "SearchField" para que el usuario elija a través de un combobox el campo por el cual desea buscar. Para una tabla me lo hace bien pero cuando intento acceder a otro catálogo no hace la búsqueda. Tengo el mismo componente de conexión para las otras consultas y asigno tanto el datasource como los campos en tiempo de ejecución al DBGrid, pero como lo comento para las otra tablas no lo hace. Estoy utilizando "querys" y no tablas para obtener los datos de los catálogos.
Esta es la sentencia que utilizo para asignar el nombre del campo por el cual buscará el componente
InSeBusqueda.SearchField := FConsulta.TsLsListaCampos.Strings[FConsulta.DBCmboCampos.ItemIndex];
Alguien ha utilizado este componente y tendrás una idea de que puede estar fallando. Aexo el código completo para ver si estoy cometiendo algún error...., agradezco mucho su apoyo.
En este código si realiza las búsquedas correctamente:
Código Delphi
[-] FConsulta := TFConsulta.Create(Self);
FConsulta.Caption := 'Consulta de Clientes';
FConsulta.DBCmboCampos.Items.Clear;
FConsulta.TsLsListaCampos.Clear;
FConsulta.DBCmboCampos.Items.Add('RAZON SOCIAL');
FConsulta.TsLsListaCampos.Add('NOMCLIENTE');
FConsulta.DBCmboCampos.Items.Add('RFC');
FConsulta.TsLsListaCampos.Add('RFC');
FConsulta.DBCmboCampos.Items.Add('CVE. CLIENTE');
FConsulta.TsLsListaCampos.Add('IDCLIEN01');
FConsulta.wwDBGrid1.DataSource := DMODULO.DSCliente;
FConsulta.DbNCatalogo.DataSource := DMODULO.DSCliente;
FConsulta.DBCmboCampos.ItemIndex := 0;
FConsulta.InSeBusqueda.SearchField := FConsulta.TsLsListaCampos.Strings[FConsulta.DBCmboCampos.ItemIndex];
FConsulta.wwDBGrid1.Selected.Clear;
FConsulta.wwDBGrid1.Selected.Add('IDCLIEN01'+#9+'8'+#9+'Clave');
FConsulta.wwDBGrid1.Selected.Add('NOMCLIENTE'+#9+'35'+#9+'Razón Social');
FConsulta.wwDBGrid1.Selected.Add('RFC'+#9+'18'+#9+'RFC');
FConsulta.wwDBGrid1.Selected.Add('EMAIL1'+#9+'30'+#9+'Correo Elect.');
FConsulta.wwDBGrid1.ApplySelected;
DMODULO.SmDstLstMClien.Active := True;
DMODULO.SmDstLstMClien.DataSet.Active := True;
FConsulta.ShowModal;
En esta otra definición para otro catálogo ya no realiza ninguna búsqueda.
Código Delphi
[-] FConsulta := TFConsulta.Create(Self);
FConsulta.Caption := 'Consulta de Pedidos';
FConsulta.DBCmboCampos.Items.Clear;
FConsulta.TsLsListaCampos.Clear;
FConsulta.DBCmboCampos.Items.Add('CVE PEDIDO');
FConsulta.TsLsListaCampos.Add('IDASIDOC');
FConsulta.DBCmboCampos.Items.Add('RAZON SOCIAL');
FConsulta.TsLsListaCampos.Add('NOMCLIENTE');
FConsulta.DBCmboCampos.Items.Add('RFC');
FConsulta.TsLsListaCampos.Add('RFC');
FConsulta.DBCmboCampos.ItemIndex := 0;
FConsulta.wwDBGrid1.DataSource := DMODULO.DsHDocCons;
FConsulta.DbNCatalogo.DataSource := DMODULO.DsHDocCons;
FConsulta.wwKeyCombo1.DataSource := DMODULO.DsHDocCons;
FConsulta.InSeBusqueda.SearchField := FConsulta.TsLsListaCampos.Strings[FConsulta.DBCmboCampos.ItemIndex];
FConsulta.wwDBGrid1.Selected.Clear;
FConsulta.wwDBGrid1.Selected.Add('IDASIDOC'+#9+'10'+#9+'Cve. Pedido');
FConsulta.wwDBGrid1.Selected.Add('FECHA'+#9+'10'+#9+'Fec. Pedido');
FConsulta.wwDBGrid1.Selected.Add(CLIENTE1'+#9+'35'+#9+'Cliente');
FConsulta.wwDBGrid1.Selected.Add('RFC'+#9+'30'+#9+'RFC');
FConsulta.wwDBGrid1.ApplySelected;
DMODULO.SmDstHDocCons.Active := True;
DMODULO.SmDstHDocCons.DataSet.Active := True;
Alguna sugerencia, agradezco su apoyo.