| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Нужен универсальный компонент для инкрементного... |
| Автор: Etar 14.9.2009, 07:22 |
| Приветствую. Собственно мне нужен компонент, который может прицепляться к датасету либо гриду и осуществлять в нем поиск (и переход к) записи, значение определенной колонки которой начинается с того, что вводит пользователь в гриде (сам грид может быть readonly). Т.е. например, пользователь встает в грид на некоторую колонку, начинает вводить текст, а компонент начинает искать запись по типу: WHERE <поле на котором стоит пользователь> LIKE '<текст, введенный пользователем>%'. Как только он находит первую удовлетворяющую условию запись, то тут же на нее переходит и дальше уже не ищет. Т.е. получается такой некоторый инкрементный поиск. Хотелось еще бы, чтобы это сопровождалось еще и всплывающим окошком, в котором было бы видно, что вводит пользователь... Вот... (не уверен, но вроде бы такое реализовано в гридах 1С Предприятия вроде...) В принципе написать конечно такое не сложно, но я думаю, что уже есть такой компонент, тогда бы можно было уже не велосипедить и сэкономить время... Спасибо |
| Автор: former 14.9.2009, 08:22 |
| Etar, смысла в таком компоненте нет, ибо задача реализуется быстро и просто. Какая СУБД и компоненты доступа? |
| Автор: Romikgy 14.9.2009, 09:51 |
имхо есть |
| Автор: Akella 14.9.2009, 09:58 |
| Такое реализовано в TcxGrid. Но быть может можно написать свой класс, а не компонент... но дял работы не с гридом, а с TDataSet |
| Автор: Frees 14.9.2009, 10:21 |
| такое есть и в TDBGridEh(EhLib) но только это не поиск а фильтрация |
| Автор: former 14.9.2009, 12:37 |
Так почему бы не кинуть на форму Edit, Timer и изменять значение фильтра с необходимыми условиями поиска с задержкой от ввода? Это можно сделать как для грида, так и для DataSet. |
| Автор: Frees 14.9.2009, 13:51 |
вот автор и хочет, нечто такое только в виде готового компонента имхо лучше самому написать, в принципе не сложно, зато под себя заточено... |
| Автор: former 14.9.2009, 20:43 |
Шило на мыло. Но, это как кому нравится. Параметры те же устанавливать придется. |
| Автор: Frees 14.9.2009, 21:15 |
| CleverFilter http://www.torry.net/quicksearchd.php?String=filter&Title=Yes |
| Автор: Akella 14.9.2009, 22:23 |
таймер-то зачем Добавлено через 1 минуту и 46 секунд Это компоненты, позволяющие строить достаточно сложные фильтры, но никак не связаны с контекстным поиском. Тем более, есть же официальный сайт http://www.devrace.com/ru/cleverfilter/ |
| Автор: former 14.9.2009, 22:42 |
Что бы выполнять поиск с задержкой в процессе редактирования строки поиска. А то фильтрация будет непрерывной. |
| Автор: former 14.9.2009, 23:02 |
| удалил |
| Автор: Akella 15.9.2009, 08:50 |
Ты о чем, о поиске или о фильтрации? Добавлено через 1 минуту и 29 секунд А зачем поиск с задержкой, наоборот - контекстный поиск должен быть достаточно быстрым. Если пользователь начнёт быстро набирать текст, а искать программа будет с задержкой, то это будет раздражать пользователя. |
| Автор: Akella 15.9.2009, 13:16 |
| Да, часто путают поиск и фильтрацию. Но на языке программистов есть TTable.Locate и похожие методы, а есть TTable.Filter. Взять, например cxGrid, там есть контекстный поиск, а есть фильтрация. Взять, например, DBGridEh - там есть встроенная форма поиска (Сtrl+F), а есть фильтрация. Понятно, что в языке SQL нет разделения на поиск и фильтрацию относительно операторов языка. |