![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Фильтрация в DBGrid [D7]
Lamka © (2004-12-20 17:31:00)Доброго времени суток уважаемые мастера. У меня проблема мне нужно отфильтровать текст в DBgrid я использую этот код
table1.filtered := true
table1.filter := 'FieldName like ' + chr(39) + trim(Edit.text) + '%' + chr(39);
Но при наборе текста в Edit Delphi выдаёт ошибку.В чём дело?
Lamka (2004-12-21 16:45:00) [21]msguns ©
Мне нужна контекстнаяфильтрация.
Zacho (2004-12-21 13:55:00) [22]Lamka (20.12.04 18:08) [3]
А вы знаете другой способ?
Совет №1: вместо+ chr(39)+использоватьAnsiQuotedStr
> Помогите лаёмеру, пожалуйста.
А вот этого не надо. Зачем себя унижать ? Такое только уменьшает вероятность корректного ответа. Читай http://ln.com.ua/~openxs/articles/smart-questions-ru.html
msguns (2004-12-21 13:19:00) [23]Ты бы сформулировал почетче:
Если тебе нужна контекстнаяфильтрация/поиск, т.е. как только узер ввел буковку, то тут же и ищется/фильтруется, еще одну ввел, то снова ищется/фильтруется, то это одно. И чревато оно тем, что сложноватисто работает с несимвольными типами полей.
Если же фильтрация/поиск "по кнопке", т.е. узер ввел шаблон, нажал кнопку и только тогда ищется/фильтруется, то это другое.
Контекстный поиск, ИМХО, смысл имеет, да и быстрый он. А вот контекстная фильтрация (опять же ИМХО) - на фиг не нужна - только тормозить будет, да и смысла лишена. Фильтруют обычно по значениям каких-то полей, т.е. это смысловаявыборка. Например, показать только приходные накладные или только персонал X-го отдела и т.д. Фильтр же, к примеру, по месяцу или периоду должен выполняться через доп.условия выборки, но не фильтром. Да и вообще метод работы через Ttable изначально обречен на кучу траблов, не последние из которых есть тормоза.
Соловьев (2004-12-21 13:17:00) [24]table1.filtered := true
table1.filter := 'FieldName like ' + chr(39) + trim(Edit.text) + '%' + chr(39);
Но при наборе текста в Edit Delphi выдаёт ошибку.В чём дело?
1. Укажи ошибку.
2. Приведи код. Потому как то что ты привел - НЕДОСТАТОЧНО!
Anatoly Podgoretsky (2004-12-21 13:17:00) [25]А есть ли ошибка?
Lamka (2004-12-21 13:09:00) [26]Помогите лаёмеру, пожалуйста.
Lamka (2004-12-20 18:08:00) [27]msguns ©
А вы знаете другой способ?
msguns (2004-12-20 17:51:00) [28]Перед тем, как юзер начинает вводить значение в эдит, надо давть датасету DisabledControl, а по завершению проверять корректность введенной инфы и, если правильно, EnabledControl датасету.
А вообще рисковый способ выбран ;))
Соловьев (2004-12-20 17:48:00) [29]при наборе текста в Edit
то что ты привел и ошибка не связаны.