Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2008, 15:19   #1
Miha87
Пользователь
 
Регистрация: 15.10.2008
Сообщений: 10
По умолчанию Фильтрация по нескольким полям в OnChenge

Подскажите мне пожалусто как можно фильтровать таблицу по нескольким полям одновременно.
Т.Е. фильтрация у меня происходит в обычном Table, по событию OnChenge любого на форме Edit`a.
Например:
Набираю в поле Name Имя клиента, он мне отфильтровал всё по имени, после набираю в поле Naimenovanie наименование товара, он мне должет отфильтровать из набора прошлой выборки уже по названию товара.

Каким образом такое реализовать?
Через обычный Table или через Query?

Буду признателен!!!
Miha87 вне форума Ответить с цитированием
Старый 10.11.2008, 15:24   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Составной фильтр для TTable - обычная строка, например:
'field1='+QuotedStr(Edit1.Text)+' and field2='+QuotedStr(Edit2.Text)
mihali4 вне форума Ответить с цитированием
Старый 10.11.2008, 15:59   #3
Miha87
Пользователь
 
Регистрация: 15.10.2008
Сообщений: 10
По умолчанию

вот это вот
'field1='+QuotedStr(Edit1.Text)+' and field2='+QuotedStr(Edit2.Text)
должно содержатся в каждой процедуре OnChange всех Edit`ов?
И что это за функция QuotedStr, что она делает?
Переводчик переводит коряво, смысла в переводе я ненашёл.

Раньше я в каждом OnChange просто накапливал в одну переменную текст этих полей, и потом фильтровал по этой переменной.
Но это соответственно неработало правельно.
Miha87 вне форума Ответить с цитированием
Старый 10.11.2008, 17:12   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Делаете ОДИН обработчик для Edit1, а остальным назначаете его же...
QuotedStr заключает выражение в кавычки (вдруг у вас в эдите больше одного слова?)
mihali4 вне форума Ответить с цитированием
Старый 10.11.2008, 18:06   #5
Miha87
Пользователь
 
Регистрация: 15.10.2008
Сообщений: 10
По умолчанию

Дело в том что когда я ввожу в первый Edit, у меня вообще ничего непоказывает т.к. фильтр идёт по двуп полям, через 'and', а второе поле пустое.
Например:
Если в первом поле написал букву "с", Грид становится пустым, как только во втором поле напишу какую нить букву, результат появляется!
Miha87 вне форума Ответить с цитированием
Старый 10.11.2008, 18:49   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А проверку эдитов на пустоту я должен делать?
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отбор по двум полям MPa БД в Delphi 4 06.02.2008 20:14
Фильтрация по двум полям Dunkas БД в Delphi 11 21.01.2008 23:59
Уникальность по 3 полям num8er БД в Delphi 3 09.10.2007 09:54
Фильтрация по нескольким полям! Askat БД в Delphi 1 14.06.2007 06:44