PDA

Ver la Versión Completa : Busqueda en ClientDataSet que ha sido previamente filtrado


d3nz1g
08-10-2013, 18:30:03
Saludos,

Tengo una duda y pensé que talvez alguien habia tenido que lidiar con este problema antes que yo, les comento:

Resulta que tengo un ClientDataSet al cual le aplico un filter mediante su propiedad filter para, valga la redundacia, filtrar algunos registros de acuerdo a los requerimientos del usuario. El problema que tengo es que no se como buscar dentro de los registros filtrados sin modificar el filtro original, les pongo un ejemplo rapido

Tengo cargado en el CDS:

Nombre Valor
A 100
B 200
C 300

Aplico filtro:

CDS.Filter := 'Valor >= 200';

Luego me queda:

Nombre Valor
B 200
C 300

Ahora quiero buscar el registro C sobre los registros que pasaron el primer filtro, la única solucion que se me ocurre es modificando el filtro original temporalmente:

CDS.Filtro := 'Valor > 200 AND Nombre = C';
CDS.FindFirst;

Existirá alguna solucion alterna que no implique modificar el filtro para buscar? Intente con el Locate pero no me funciono cuando tenia el filtro activado.. Deberia haberme servido?

Les agradezco de antemano cualquier ayuda que me puedan brindar..

jhonny
08-10-2013, 21:28:10
Podrías usar el evento OnFilterRecord del ClientDataSet.