![]() |
|
![]() ![]() ![]() |
|
Etar |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 21.2.2008 Репутация: нет Всего: 1 |
Приветствую.
Собственно мне нужен компонент, который может прицепляться к датасету либо гриду и осуществлять в нем поиск (и переход к) записи, значение определенной колонки которой начинается с того, что вводит пользователь в гриде (сам грид может быть readonly). Т.е. например, пользователь встает в грид на некоторую колонку, начинает вводить текст, а компонент начинает искать запись по типу: WHERE <поле на котором стоит пользователь> LIKE '<текст, введенный пользователем>%'. Как только он находит первую удовлетворяющую условию запись, то тут же на нее переходит и дальше уже не ищет. Т.е. получается такой некоторый инкрементный поиск. Хотелось еще бы, чтобы это сопровождалось еще и всплывающим окошком, в котором было бы видно, что вводит пользователь... Вот... (не уверен, но вроде бы такое реализовано в гридах 1С Предприятия вроде...) В принципе написать конечно такое не сложно, но я думаю, что уже есть такой компонент, тогда бы можно было уже не велосипедить и сэкономить время... Спасибо |
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Etar, смысла в таком компоненте нет, ибо задача реализуется быстро и просто.
Какая СУБД и компоненты доступа? -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 4 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Такое реализовано в TcxGrid. Но быть может можно написать свой класс, а не компонент... но дял работы не с гридом, а с TDataSet
![]() |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
такое есть и в TDBGridEh(EhLib) но только это не поиск а фильтрация
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Так почему бы не кинуть на форму Edit, Timer и изменять значение фильтра с необходимыми условиями поиска с задержкой от ввода? Это можно сделать как для грида, так и для DataSet. Это сообщение отредактировал(а) former - 14.9.2009, 12:37 -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
вот автор и хочет, нечто такое только в виде готового компонента имхо лучше самому написать, в принципе не сложно, зато под себя заточено... -------------------- Кольцов Виктор Владимирович |
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Шило на мыло. Но, это как кому нравится. Параметры те же устанавливать придется. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
таймер-то зачем ![]() ![]() Добавлено через 1 минуту и 46 секунд Это компоненты, позволяющие строить достаточно сложные фильтры, но никак не связаны с контекстным поиском. Тем более, есть же официальный сайт ![]() http://www.devrace.com/ru/cleverfilter/ |
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Что бы выполнять поиск с задержкой в процессе редактирования строки поиска. А то фильтрация будет непрерывной. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
удалил
![]() Это сообщение отредактировал(а) former - 14.9.2009, 23:14 -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Ты о чем, о поиске или о фильтрации? Добавлено через 1 минуту и 29 секунд А зачем поиск с задержкой, наоборот - контекстный поиск должен быть достаточно быстрым. Если пользователь начнёт быстро набирать текст, а искать программа будет с задержкой, то это будет раздражать пользователя. |
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 7 Всего: 17 |
Возможно, что не стоит смешивать эти два понятия, но на мой взгляд поиск - это частный случай фильтрации. Фильтр дает гораздо большие возможности в поиске записи(ей), удовлетворяющих условиям. Вот смотри. Если у тебя большой объем данных и ты начинаешь набирать строку для поиска, ошибаешься, стираешь, продолжаешь набор. Все это время будет выполняться фильтрация/поиск. А если у тебя есть задержка 1000 - 1500 мс, то фильтрация/поиск будет выполнена только после окончания ввод (когда пользователь перестанет долбить клавиатуру). Разумеется ты начнешь сейчас говорить, что это все выполняется локально, но тем не менее. Посмотри примеры FIB-ов. Там как раз нечто похожее, правда с некоторыми извратами, реализовано. Это сообщение отредактировал(а) former - 15.9.2009, 09:58 -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Да, часто путают поиск и фильтрацию. Но на языке программистов есть
TTable.Locate и похожие методы, а есть TTable.Filter. Взять, например cxGrid, там есть контекстный поиск, а есть фильтрация. Взять, например, DBGridEh - там есть встроенная форма поиска (Сtrl+F), а есть фильтрация. Понятно, что в языке SQL нет разделения на поиск и фильтрацию относительно операторов языка. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |