PDA

Ver la Versión Completa : Falla búsqueda incremental con twwIncrementalSeach


to_to
17-07-2013, 07:12:48
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:

FConsulta := TFConsulta.Create(Self);
FConsulta.Caption := 'Consulta de Clientes';

FConsulta.DBCmboCampos.Items.Clear;
FConsulta.TsLsListaCampos.Clear; {limpio lista de campos}

FConsulta.DBCmboCampos.Items.Add('RAZON SOCIAL'); {como donde ve el usuario los campos}
FConsulta.TsLsListaCampos.Add('NOMCLIENTE'); {stringlist donde recupero el nombre correcto del campo}
FConsulta.DBCmboCampos.Items.Add('RFC');
FConsulta.TsLsListaCampos.Add('RFC');
FConsulta.DBCmboCampos.Items.Add('CVE. CLIENTE');
FConsulta.TsLsListaCampos.Add('IDCLIEN01');

FConsulta.wwDBGrid1.DataSource := DMODULO.DSCliente; {asigno el datasource de la tabla que dese consultar}
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.

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.