![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по фильтрации [D7, Paradox]
Tugodym © (2004-05-07 12:36:00)Есть два условия для фильтра:
1) Table1.Filter:='Fam ='''+Edit1.text+'*''and konec<'+ quotedstr(datetostr(date));
2) Table1.Filter:='Fam ='''+Edit1.text+'*''or kolich=0';
которые по отдельности работают нормально, подскажите как эти два условия обьедениять в одно через OR.
HSolo (2004-05-07 15:40:00) [21]>Так я и делал,но выдает ошибку
Для начала посмотрите, какое условие фильтра формируется на самом деле.
А чем Вам так уж абсолютно не подходит совет от Мунька © (07.05.04 15:17) [6] ? Решение навскидку: заведите глобальную переменную, пусть кнопки устанавливают ее значение, а в OnFilterRecord выбирается условие в зависимости от ее значения:\
Accept := ((MyVar=1) and условие1) or ((MyVar=2) and условие2)...
Tugodym (2004-05-07 15:31:00) [22]Мунька © (07.05.04 15:17) [6]
Этот метод мне абсолютно неподходит, так как в программе используются около 20 разных условий фильтрации, который назначены разным кнопкам... Может вы все таки мне поможите правильно записать то что имеется. Зарание спасибо...
Мунька (2004-05-07 15:17:00) [23]Вам же ответили, использовать событие OnFilterRecord в котором в переменную Accept записать выражение, дающее булев результат, в котором задействованы Ваши поля
Accept := (DataSet.FieldValues["Fam"] = Edit1.text)And(DataSet.FieldValues["konec"]< quotedstr(datetostr(date)).....)OR
(Ваше значение второго фильтра в терминах DataSet.FieldValues ).
Тогда
1. Вам не надо будет использовать строку фильтра как таковую, то есть не надо Table1.Filter := " "
2. Достаточно вызвать
Table1.Filtered := true;
Tugodym (2004-05-07 15:15:00) [24]HSolo © (07.05.04 15:12) [4]
Так я и делал,но выдает ошибку, видать все таки где то в синтаксисе она есть немогу понять...
HSolo (2004-05-07 15:12:00) [25]Table1.Filter := '(' + <условие1> + ') or (' + <условие2> + ')';
Tugodym (2004-05-07 14:57:00) [26]Есть два условия для фильтра:
1) Table1.Filter:='Fam ='''+Edit1.text+'*''and konec<'+ quotedstr(datetostr(date));
2) Table1.Filter:='Fam ='''+Edit1.text+'*''or kolich=0';
которые по отдельности работают нормально, подскажите как эти два условия обьедениять в одно через OR
Мунька (2004-05-07 12:48:00) [27]Я вот думаю, что все-таки лучше, фильтрация, или запрос с условием...я все чаще останавливаюсь на запросе с условием. Или я неправа?
Соловьев (2004-05-07 12:38:00) [28]OnFilterRecord:
Accept := <условие>;
Пиши что в голову прийдет :)