Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужен универсальный компонент для инкрементного... ...поиска записей в DataSet'е 
:(
    Опции темы
Etar
  Дата 14.9.2009, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 21.2.2008

Репутация: нет
Всего: 1



Приветствую.
Собственно мне нужен компонент, который может прицепляться к датасету либо гриду и осуществлять в нем поиск (и переход к) записи, значение определенной колонки которой начинается с того, что вводит пользователь в гриде (сам грид может быть readonly).

Т.е. например, пользователь встает в грид на некоторую колонку, начинает вводить текст, а компонент начинает искать запись по типу: WHERE <поле на котором стоит пользователь> LIKE '<текст, введенный пользователем>%'. Как только он находит первую удовлетворяющую условию запись, то тут же на нее переходит и дальше уже не ищет. Т.е. получается такой некоторый инкрементный поиск.
Хотелось еще бы, чтобы это сопровождалось еще и всплывающим окошком, в котором было бы видно, что вводит пользователь... Вот...
(не уверен, но вроде бы такое реализовано в гридах 1С Предприятия вроде...)

В принципе написать конечно такое не сложно, но я думаю, что уже есть такой компонент, тогда бы можно было уже не велосипедить и сэкономить время...

Спасибо
PM MAIL   Вверх
former
Дата 14.9.2009, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Etar, смысла в таком компоненте нет, ибо задача реализуется быстро и просто.
Какая СУБД и компоненты доступа?


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Romikgy
Дата 14.9.2009, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



Цитата(former @  14.9.2009,  07:22 Найти цитируемый пост)
смысла в таком компоненте нет

имхо есть 



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Akella
Дата 14.9.2009, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Такое реализовано в TcxGrid. Но быть может можно написать свой класс, а не компонент... но дял работы не с гридом, а с TDataSet smile
PM MAIL   Вверх
Frees
Дата 14.9.2009, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



такое есть и в TDBGridEh(EhLib) но только это не поиск а фильтрация


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
former
Дата 14.9.2009, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Цитата(Frees @  14.9.2009,  10:21 Найти цитируемый пост)
но только это не поиск а фильтрация 

Так почему бы не кинуть на форму Edit, Timer и изменять значение фильтра с необходимыми условиями поиска с задержкой от ввода? Это можно сделать как для грида, так и для DataSet.

Это сообщение отредактировал(а) former - 14.9.2009, 12:37


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Frees
Дата 14.9.2009, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



Цитата(former @  14.9.2009,  15:37 Найти цитируемый пост)
Так почему бы не кинуть на форму Edit, Timer

вот автор и хочет, нечто такое только в виде готового компонента

имхо лучше самому написать, в принципе не сложно, зато под себя заточено...
 


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
former
Дата 14.9.2009, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Цитата(Frees @  14.9.2009,  13:51 Найти цитируемый пост)
вот автор и хочет, нечто такое только в виде готового компонента

Шило на мыло. Но, это как кому нравится. Параметры те же устанавливать придется.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Frees
Дата 14.9.2009, 21:15 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54





--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Akella
Дата 14.9.2009, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(former @  14.9.2009,  12:37 Найти цитируемый пост)
Так почему бы не кинуть на форму Edit, Timer 

таймер-то зачем smile , есть же события smile

Добавлено через 1 минуту и 46 секунд
Цитата(Frees @  14.9.2009,  21:15 Найти цитируемый пост)
CleverFilter

Это компоненты, позволяющие строить достаточно сложные фильтры, но никак не связаны с контекстным поиском.

Тем более, есть же официальный сайт smile
http://www.devrace.com/ru/cleverfilter/
PM MAIL   Вверх
former
Дата 14.9.2009, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Цитата(Akella @  14.9.2009,  22:23 Найти цитируемый пост)
таймер-то зачем smile , есть же события smile

Что бы выполнять поиск с задержкой в процессе редактирования строки поиска. А то фильтрация будет непрерывной.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
former
Дата 14.9.2009, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



удалил smile 

Это сообщение отредактировал(а) former - 14.9.2009, 23:14


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Akella
Дата 15.9.2009, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(former @  14.9.2009,  22:42 Найти цитируемый пост)
Что бы выполнять поиск с задержкой 


Цитата(former @  14.9.2009,  22:42 Найти цитируемый пост)
А то фильтрация будет непрерывной. 


Ты о чем, о поиске или о фильтрации?

Добавлено через 1 минуту и 29 секунд
А зачем поиск с задержкой, наоборот - контекстный поиск должен быть достаточно быстрым. Если пользователь начнёт быстро набирать текст, а искать программа будет с задержкой, то это будет раздражать пользователя.
PM MAIL   Вверх
former
Дата 15.9.2009, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Цитата(Akella @  15.9.2009,  08:50 Найти цитируемый пост)
Ты о чем, о поиске или о фильтрации?

Возможно, что не стоит смешивать эти два понятия, но на мой взгляд поиск - это частный случай фильтрации. Фильтр дает гораздо большие возможности в поиске записи(ей), удовлетворяющих условиям.
Цитата(Akella @  15.9.2009,  08:50 Найти цитируемый пост)
А зачем поиск с задержкой, наоборот - контекстный поиск должен быть достаточно быстрым. Если пользователь начнёт быстро набирать текст, а искать программа будет с задержкой, то это будет раздражать пользователя. 

Вот смотри. Если у тебя большой объем данных и ты начинаешь набирать строку для поиска, ошибаешься, стираешь, продолжаешь набор. Все это время будет выполняться фильтрация/поиск. А если у тебя есть задержка 1000 - 1500 мс, то фильтрация/поиск будет выполнена только после окончания ввод (когда пользователь перестанет долбить клавиатуру).
Разумеется ты начнешь сейчас говорить, что это все выполняется локально, но тем не менее.
Посмотри примеры FIB-ов. Там как раз нечто похожее, правда с некоторыми извратами, реализовано.

Это сообщение отредактировал(а) former - 15.9.2009, 09:58


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Akella
Дата 15.9.2009, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Да, часто путают поиск и фильтрацию. Но на языке программистов есть
TTable.Locate и похожие методы, а есть TTable.Filter.
Взять, например cxGrid, там есть контекстный поиск, а есть фильтрация. Взять, например, DBGridEh - там есть встроенная форма поиска (Сtrl+F), а есть фильтрация.
Понятно, что в языке SQL нет разделения на поиск и фильтрацию относительно операторов языка.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0974 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.