![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
фильтрация в dbf [D5, Paradox]
lety © (2002-07-26 22:19:00)Задается условие для фильтрации TTable в обработке onFilterRecord. Дальше Filtered:=true;
А дальше условие для фильтрации меняется.
Для парадоксовских таблиц я делала Table1.Refresh или
Table1.Filtered:=false;
Table1.Filtered:=true;
а для dbf (FoxPro 2.5) новая фильтрация уже не делается. Т.е. ее можно отменить, а если сделать Table1.Filtered:=true; то ни одной записи уже не показывается.
Работает только если закрыть-открыть таблицу.
Что можно сделать?
LOM153 (2002-07-27 18:20:00) [1]А вот может кто подскажет оптимальный выход для фильтрации по LookUp полям в dbf? Обычный фильтр тут не спасает, пришлось создать функцию,которая по значению поля находит значение LookUp поля (причем по новой!-при фильтрации значение лукапаов неопределимо:((() - сравнивает с нужным и возвращает ответ,который уже и используется для Accept. Но как все это долго работает! Тем паче когда у меня таблица со многими такими полями, да еще и связи 3-4 порядка.....
LOM153 (2002-07-27 18:11:00) [2]Сталкивался я с этим:) Оптимальный выход - ставить пару строк:
Table1.Filter:=nil;
Table1.Filter:=XXXXXXX; // -нужный тебе фильтр
А иначе оно ищет по ОТФИЛЬТРОВАННЫМ записям, что тоже иногда полезно:)))))
Anatoly Podgoretsky (2002-07-27 12:30:00) [3]Вообще то, что то у тебя не то, что то недоговариваешь, может привести более подробный код, Refresh должен работать, дополнительно желательно сделать .First, сообственно достаточно только его или любого перемещения, может у тебя кроме onFilterRecord используется еще и .Filter
В принципе ты можешь для каждого вызова onFilterRecord применять новое правило, только спровоцируй вызов, это перемещение по таблице. А вот для .Filter могут быть особенности. Есть еще одна вещь, настройки BDE может кешируется, попробуй поставить Local Share = true
Во всяком случае за 7 лет работы я не встретил никаких проблем с onFilterRecord
NNH (2002-07-27 11:55:00) [4]А разве трудно написать: закрыть таблицу, присвоить фильтр, открыть таблицу?
Может и коряво, но если работает, то какая разница?