Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по фильтрации [D7, Paradox]


Страницы:   1 2

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 := <условие>;

Пиши что в голову прийдет :)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо