Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.17;
Скачать: CL | DM;

Вниз

Фильтрация <B>FIBDataSet</B>   Найти похожие ветки 

 
ANDR   (2003-01-30 19:31) [0]

Добрый вечер. Просветите, возможно-ли используя локальную
фильтрацию в FIBDataSet задать условие фильтрации, получить
отфильтрованный датасет, а затем задать еще одно условие, но
чтобы фильтровались только записи отобранные по первому условию.


 
Andriano ©   (2003-01-31 07:56) [1]

С помощью события OnFilterRecord можно состряпать фильтр ЛЮБОЙ сложности.

Говоришь:
filtered:=false;
filtered:=true;
И FIBDataSet перефильтруется.


 
ANDR   (2003-01-31 09:56) [2]

Спасибо, это понятно, вопрос в другом.
При OnFilterRecord условие фильтра применяется для каждой
записи датасета. Возможно-ли вызывать OnFilterRecord только
для тех записей котщрые вернуло предыдущ OnFilterRecord.
Например.

ДИНАМО МОСКВА
СПАРТАК МОСКВА
ДИНАМО КИЕВ

ФИЛЬТР-ДИ ДИНАМО МОСКВА
ДИНАМО КИЕВ

ФИЛЬТР-МО ДИНАМО МОСКВА
СПАРТАК МОСКВА

А надо после "МО" получить только: ДИНАМО МОСКВА


 
Asgard   (2003-01-31 12:45) [3]

Для такого случая есть предложение каждый раз перестраивать select в соответствии с историей изменения фильтра.


 
ShuraGrp ©   (2003-01-31 13:05) [4]

А условие Filter не подходит. Работает С версии 4.6


 
KDS ©   (2003-01-31 15:05) [5]

ТипаДатаСет.Filter:="(УсловиеФильтрации№1)and(УсловиеФильтрации№2)";
И все дела тут


 
ANDR   (2003-01-31 17:43) [6]

Правду говорят что надо учиться задавать вопросы.

Asgard (31.01.03 12:45)
> Для такого случая есть предложение каждый раз перестраивать
> select в соответствии с историей изменения фильтра.

Понятно, но не хочется нагружать сервер.

Пример от фонаря и наверное все подумали что там два столбца?

В реальной базе список клиентов.

**************************************
* ClNAME *
**************************************
ЗАВОД МЕТАЛЛОКОНСТРУКЦИЙ
ЧП МЕТАЛЛСЕРВИС
ЗАВОД ФЕРРОСПЛАВОВ
ООО МЕТАЛЛИСТ
ЗАВОД ТРУБОЛИТ
и т.д.

ТипаДатаСет.Filter:= ИМХО работает частичным совпадением только
от начала строки

OnFilterRecord с Accept:=pos( ) бысто выбирает любую подстроку,но вызывается для каждой записи, а желается
от лени ввести в Edit "ЗАВ" и получить:

ЗАВОД МЕТАЛЛОКОНСТРУКЦИЙ
ЗАВОД ФЕРРОСПЛАВОВ
ЗАВОД ТРУБОЛИТ что и получаем

потом ввести "МЕТ" и получить

ЗАВОД МЕТАЛЛОКОНСТРУКЦИЙ

а получаем

ЗАВОД МЕТАЛЛОКОНСТРУКЦИЙ
ЧП МЕТАЛЛСЕРВИС
ООО МЕТАЛЛИСТ

Может как-то настраивается или пусть авторы фибов напрягаются
массив в pos() передавать. Уплочено-ж.








Страницы: 1 вся ветка

Текущий архив: 2003.02.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
3-52733
Чайник
2003-01-30 10:40
2003.02.17
DBEdit и поле даты


1-52982
Cherepovets
2003-02-10 12:06
2003.02.17
Преобразование из TXT в DB или в DBF


1-53006
ltexcimer
2003-02-10 13:55
2003.02.17
сколько строк в исходнике.


3-52809
Solod
2003-01-28 04:29
2003.02.17
Если не использовать BDE для работы с dbf, то что тогда?


14-53213
Труп Васи Доброго
2003-01-31 08:54
2003.02.17
Как пользоваться Delphi?