Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como cortar filtrado (https://www.clubdelphi.com/foros/showthread.php?t=5631)

miguelb 27-11-2003 21:40:57

Como cortar filtrado
 
Hola,
como puedo hacer para que al aplicar un filtro sobre una tabla al tener determinada condicion se termine el recorrido de los registros.
Ejemplo,
tengo una tabla de clientes, pro diferentes ordenamientos
quiero filtrar que solo me tome los de un determinado cobrador
lo posiciono con el filtro en false, activo el filtro y comienza a
recorrer y a tomar en el filtro,
pero sigue tomando los registros siguientes al cobrador que
estoy filtrando,
Lo que quiero es posicionarlo en un cobrador, que comience a
recorrer (a filtrar) y cuando yo detecto que cambio el cobrador,.
cortarlo y que no siga barriendo.

Se puede?
gracias
Miguel b

Ruben_Cu 27-11-2003 23:30:15

Hola miguelb, ¿que componentes usas? ¿que criterio de filtro pasas?,¿contra que BD filtras? Si haces un filtro para que te retornen los registros asociados a un cobrador no tiene por que devolverte otros.
Algo anda mal en lo que haces. Con algo mas de información quizas fuera posible ayudarte.
Saludos

miguelb 28-11-2003 14:09:24

Ruben, estoy utilizando tablas paradox, filtro un ttable, y le aplico un filtro por ejemplo cobrador=2.
No es que me devuelve registros que son de otroso cobradores,
siempre me devuelve los del cobrador=2,
lo que me hace es seguir recorriendo registros despues de que
se terminaron los registros del cobrador 2, sigue con los del 3,
sigue con los del 4, etc. Los lee a todos hasta el final, y los va descartando.

Gracias
Miguel

__cadetill 28-11-2003 14:59:58

esto pasa porque seguramente estás utilizando el evento OnFilterRecord

En lugar de esto, ya que es una condición sencilla, utiliza la propiedad Filter

Código:

tabla.Filtered := false;
tabla.Filter := 'cobrador=2';
tabla.Filtered := true;

(aunque internamente quizás haga lo mismo, no se)

Sino, siempre tienes la posibilidad de lanzar un SQL con la cláusula where que desees

Código:

select *
from tabla
where cobrador=2


Ruben_Cu 28-11-2003 17:02:57

Hola, revisa lo que te dice cadetill y si puedes pasa el código de filtro a ver que pasa, con las dos variantes que te propone no debes tener el problema que planteas.
Saludos


La franja horaria es GMT +2. Ahora son las 18:45:31.

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