Последняя версия DataExpress 3 beta от 31 марта 2019 года. Изображение Скачать
См. также: Энциклопедия DX | Форум на develop-soft | Песочница

Поиск по всем полям во всех формах

Расширение функционала и существующих возможностей программы с помощью модулей расширений и плагинов от сторонних разработчиков.

Модератор: Разработчики расширений

kok80
Интересующийся
Сообщения: 204
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Поблагодарили: 4 раза

Поиск по всем полям во всех формах

Сообщение kok80 » Вс дек 23, 2018 11:41 pm

Изображение

Возможности:

1) фильтр по всем полям (добавлена поддержка TdxFile)
2) значения фильтра формы учитываются
3) очистить поле поиска можно по нажатию ESC, если фокус на поле
4) поиск только по видимым столбцам
5) значение поиска сохраняется для каждой формы и восстанавливается при переходе на нее с другой формы
6) нажатие правой кнопкой мышки на "X" - единоразовый поиск без учета фильтра формы
7) можно настроить задержку поиска после ввода (актуально при больших объемах информации или медленном соединении с базой)
8) возможность назначения для одной формы префикса, который будет всегда добавляться перед строкой поиска
9) кнопка вниз на поле поиска - переход на grid формы, кнопка вверх на grid формы при выделенной первой строке - переход в поле поиска
10) нажатие Ctrl+F в grid формы передает фокус ввода в окно поиска
11) на простой форме: значения поиска записывается в переменную kok80.QueryFilter (название переменной можно задать в настройках), форма обновляется.
Пример использования в фильтре запроса на простой форме: [?!адрес]==GetVar("kok80.QueryFilter")

Установка:
после импорта модуля выполнить: дизайнер - действия при запуске - вставить действие - поиск

Известные ошибки/недоработки:
- в дереве при выборе неверхней node отображает пустой результат поиска
ps здесь всегда ссылка на последнюю версию:

kok80-poisk1.63.zip [ Изображение Скачать ]

................................
dxdb_icon Демо онлайн
dxdb_icon Демо онлайн 2


Замечания, предложения ?

...

kok80
Интересующийся
Сообщения: 204
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Поблагодарили: 4 раза

Re: Поиск по всем полям во всех формах

Сообщение kok80 » Вт мар 12, 2019 12:01 am

Version=1.44
исправлена ошибка: если на форме не было текстового поля (только поля типов "дата", "время", "число") при вводе текстовой строки в поиск выдавалась ошибка
Вложения
kok80-poisk1.44.zip
(11.45 КБ) 29 скачиваний

kok80
Интересующийся
Сообщения: 204
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Поблагодарили: 4 раза

Re: Поиск по всем полям во всех формах

Сообщение kok80 » Сб мар 16, 2019 1:24 pm

Version=1.45
исправлена ошибка: при закрытии закладки с формой выдавалась ошибка
Вложения
kok80-poisk1.45.zip
(11.48 КБ) 15 скачиваний

kok80
Интересующийся
Сообщения: 204
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Поблагодарили: 4 раза

Re: Поиск по всем полям во всех формах

Сообщение kok80 » Вс мар 31, 2019 10:41 pm

Version=1.5
исправлен вызов OpenRecords для работы в DataExpress версия от 31.03.19
Вложения
kok80-poisk1.5.zip
(11.52 КБ) 32 скачивания

drts
Опытный
Сообщения: 291
Зарегистрирован: Сб окт 29, 2016 11:35 pm
Откуда: Новороссийск
Благодарил (а): 1 раз

Re: Поиск по всем полям во всех формах

Сообщение drts » Вс апр 14, 2019 8:06 pm

Багрепорт:
при отсутствии на форме компонентов, по которым можно фильтровать (ну, например на форме только кнопки - что-то вроде главного меню) или при отсутствии хоть одной записи на форме вываливается ошибка:
поле источника не найдено.png
поле источника не найдено.png (15.54 КБ) 94 просмотра

если на форме только чекбокс (ну или еще что-то по чему не очень ищется, например запрос), то вываливается ошибка
результат не совместим с типом.png
результат не совместим с типом.png (18.52 КБ) 94 просмотра
. Кака где-то тут.

Код: Выделить всё

if OpenRecordsFilter='' then
    OpenRecordsFilter:=format('[%s]=1 & [%s]=2',[LastColumnName,LastColumnName]);
  OpenRecordsFilter:='{'+OpenRecordsFilter+'}';
                                                 


Ну и рассмотрите, по возможности добавить в функционал поиска в запросе.
можно использовать такую конструкцию:

Код: Выделить всё

EvalExpr(Format('setvar("filter", "%s")', [ed.Text]), nil);
, а в фильтре запроса, соответственно

Код: Выделить всё

[?!Тип ЗИП|Название]==getvar('filter')|[?!Наименование]==getvar('filter')|[?!Описание]==getvar('filter')

Аватара пользователя
Develop-Soft
Сообщения: 92
Зарегистрирован: Вт мар 05, 2019 6:09 pm
Благодарил (а): 5 раз
Поблагодарили: 12 раз
Контактная информация:

Re: Поиск по всем полям во всех формах

Сообщение Develop-Soft » Вс апр 14, 2019 8:12 pm

drts писал(а):функционал поиска в запросе.

Все запросы во всех записях открывать? Это ж висяк...

drts
Опытный
Сообщения: 291
Зарегистрирован: Сб окт 29, 2016 11:35 pm
Откуда: Новороссийск
Благодарил (а): 1 раз

Re: Поиск по всем полям во всех формах

Сообщение drts » Вс апр 14, 2019 8:15 pm

где фильтр прописать, там пусть и ищет. у меня работает, висяков нет. Ищу в одном запросе.

Аватара пользователя
Develop-Soft
Сообщения: 92
Зарегистрирован: Вт мар 05, 2019 6:09 pm
Благодарил (а): 5 раз
Поблагодарили: 12 раз
Контактная информация:

Re: Поиск по всем полям во всех формах

Сообщение Develop-Soft » Вс апр 14, 2019 8:21 pm

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

drts
Опытный
Сообщения: 291
Зарегистрирован: Сб окт 29, 2016 11:35 pm
Откуда: Новороссийск
Благодарил (а): 1 раз

Re: Поиск по всем полям во всех формах

Сообщение drts » Вс апр 14, 2019 8:30 pm

Ну, вот например. склад в виде запроса:
3.png
3.png (188.89 КБ) 88 просмотров
. перешел на эту страницу - там в запросе настроен фильтр (как выше указано). на странице есть идентификатор (у меня поле с определенным названием кинуто на форму, можно на него расширение специальное кинуть, чтоб идентификатором было). У меня вот так:
4.png
4.png (134.84 КБ) 88 просмотров

В общем это типо пожелание.

Аватара пользователя
Develop-Soft
Сообщения: 92
Зарегистрирован: Вт мар 05, 2019 6:09 pm
Благодарил (а): 5 раз
Поблагодарили: 12 раз
Контактная информация:

Re: Поиск по всем полям во всех формах

Сообщение Develop-Soft » Вс апр 14, 2019 10:35 pm

Понятно. Это получается, что поисковик при наличии "простой фоpмы" должен "перекинуться" на запрос(ы) в ней...
Иначе - висяк.

kok80
Интересующийся
Сообщения: 204
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Поблагодарили: 4 раза

Re: Поиск по всем полям во всех формах

Сообщение kok80 » Пн апр 15, 2019 11:49 pm

Version=1.51
исправлена ошибка: при отсутствии на форме поддерживающих поиск элементов при попытке поиска выдавалась ошибка
Вложения
kok80-poisk1.51.zip
(11.64 КБ) 1 скачивание


Вернуться в «Расширения и плагины»