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

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

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

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

kok80
Эксперт
Сообщения: 307
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 1 раз
Поблагодарили: 18 раз

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

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

Изображение

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

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

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

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

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

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


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

...

kok80
Эксперт
Сообщения: 307
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 1 раз
Поблагодарили: 18 раз

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

Сообщение kok80 » Вс авг 04, 2019 11:14 am

Version=2.05
присвоение нового обработчика fm.grid.OnkeyDown перенесено в OnCreateForm (при старом методе были периодические зависания)
исправлена ошибка поиска в фильтре объекта при пустом начальном значении ("" заменено на Null)
исправлена ошибка с таймером при вводе значения в фильтр
исправлена ошибка с сохранением истории поиска при закрытии базы (сохранялось только 1 значение)
Вложения
kok80-poisk2.05.zip
(17.6 КБ) 37 скачиваний

Blackhard
Новичок
Сообщения: 30
Зарегистрирован: Вт янв 03, 2017 10:29 am

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

Сообщение Blackhard » Вт сен 03, 2019 12:22 pm

Спасибо, рабочая дельная штука.

kok80
Эксперт
Сообщения: 307
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 1 раз
Поблагодарили: 18 раз

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

Сообщение kok80 » Вс сен 22, 2019 8:58 pm

Version=2.06
- если при поиске встречаются ненастроенные в конфигураторе объекты или поля объектов, выдается сообщение debug`ом
(раньше ненастроенный объект игнорировался, ненастроенное поле объекта - возникала ошибка)
- если в дизайнере настроить фильтр формы и удалить поле, участвующее в фильтре - фильтр остается с пустым именем поля
сейчас выдается предупреждение debug`ом, раньше возникала ошибка
- исправлена ошибка: несколько быстрых нажатий на заголовки разных колонок при непустой строке поиска могло привести к зависанию с бесконечным обновлением формы
- история поиска теперь сохраняется по ID формы, а не по имени (переименование форм не влияет на сохранение истории)
- история поиска теперь сохраняется только для существующих форм (при удалении формы история поиска удаляется)
- увеличен размер поля для хранения истории поиска
- исправлена ошибка: при закрытии базы, если размер истории поиска был больше размера поля, появлялась ошибка
- исправлена ошибка: изменён механизм определения видимых столбцов. Сейчас сравнивает компоненты формы и столбцы по ID поля. Раньше сравнивал имя компонента и имя столбца, при переименовании столбца в таблице в дизайнере [Abc] поле исключалось из поиска.
Вложения
kok80-poisk2.06.zip
(19.19 КБ) 19 скачиваний

kok80
Эксперт
Сообщения: 307
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 1 раз
Поблагодарили: 18 раз

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

Сообщение kok80 » Ср сен 25, 2019 9:37 am

Version=2.07
-исправлена ошибка: при вводе числа в hex формате (0xA[0..F], xA[0..F], 0xA[0..F]) возникала ошибка,
Hex-число вопринималось расширением как число, а OpenRecords воспринимал как строку
Вложения
kok80-poisk2.07.zip
(19.33 КБ) 14 скачиваний

kok80
Эксперт
Сообщения: 307
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 1 раз
Поблагодарили: 18 раз

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

Сообщение kok80 » Ср окт 02, 2019 2:01 pm

Version=2.08
-добавлена строка поиска в окно выбора источника списка TdxMemo
-исправлены hotkeys в окне поиска: кнопка вниз при закрытом списке - только переход на Grid формы, Alt+вниз открытие списка, кнопки вниз/вверх при открытом списке - перемещение по списку
-исправлена ошибка: если вводимое значение поиска не соответствовало ни одному полю формы и последнее поле имело тип дата, возникала ошибка
-добавлена процедура создания строки поиска на произвольном ToolBar (TListWindow, TFormView)
Filter - выражение для OpenRecords, подробнее http://dataexpress.wiki/programmirovani ... bor_dannyx
procedure AddKOK80poiskToToolBar(ToolBar:TToolBar; Filter:string)

пример1:

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

{$I kok80-poisk2.08}
...
  ListWindow:=TListWindow.create('Клиенты', vtGridLeft)
  ListWindow.FormView.Form.openRecords('[RecID]>0',nil,true);
  AddKOK80poiskToToolBar(ListWindow.ToolBar,'[RecID]>0');
  ListWnd.ShowModal;

пример2:

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

{$I kok80-poisk2.08}
...
  fm:=TdxForm(tcontrol(sender).owner);
  win:=TWindow.create;
  win.SetBounds(mainwindow.left+250,mainwindow.top+200,mainwindow.width-500,mainwindow.height-400);
  FormView:=TFormView.create(win,'Log',vtGridOnly);
  FormView.parent:=win;
  FormView.align:=alClient;
  ToolBar:=TToolbar.create(FormView);
  ToolBar.parent:=FormView;
  AddKOK80poiskToToolBar(ToolBar,'[RecID]>0');
  FormView.form.openRecords('[RecID]>0',nil,true);
  win.showmodal;
Вложения
kok80-poisk2.08.zip
(20.16 КБ) 20 скачиваний

Pavluxa
Интересующийся
Сообщения: 56
Зарегистрирован: Пн июн 19, 2017 1:36 pm
Благодарил (а): 2 раза

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

Сообщение Pavluxa » Чт окт 03, 2019 9:40 am

Скажите как с этой ошибкой бороться.
Главное то что она только в одной форме
Вложения
Ошибка.jpg
Ошибка.jpg (126.04 КБ) 118 просмотров

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

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

Сообщение Develop-Soft » Чт окт 03, 2019 9:56 am

Pavluxa писал(а):как с этой ошибкой бороться.

Убрать пустое поле в таблице исключений.

2 kok80: В расширении их бы желательно сделать обязательными для заполнения или пропускать, если пустые.

Pavluxa
Интересующийся
Сообщения: 56
Зарегистрирован: Пн июн 19, 2017 1:36 pm
Благодарил (а): 2 раза

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

Сообщение Pavluxa » Чт окт 03, 2019 3:57 pm

Спасибо. Просто удалил поиск с формы.

Blackhard
Новичок
Сообщения: 30
Зарегистрирован: Вт янв 03, 2017 10:29 am

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

Сообщение Blackhard » Вт окт 08, 2019 5:03 pm

Спасибо за плагин, просто чудесный!

Нашел маленький косяк, побороть не удалось =)

Исходные данные:
Табличная форма со способом редактирования "Редактирование из таблицы".

Действия:
1. Использование поля фильтра (вводим слово, записи фильтруются).
2. Редактирование нужной записи записи (внесение изменений).
3. Очистка/изменение поля фильтра (фильтр меняется/сбрасывается, как и должно быть, запись не сохраняется и залипает).

Баг:
Запись не сохраняется и залипает в состоянии OnEdit.
Сброс состояния OnEdit только из под админки, соотвественно.

Спасибо за труд.

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

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

Сообщение Develop-Soft » Вт окт 08, 2019 5:19 pm

Переведу на "нашенский":
Blackhard писал(а):Табличная форма со способом редактирования "Редактирование из таблицы".
Это когда вот тут галка стоит:
Изображение

Blackhard писал(а):залипает

= В многопользовательском режиме уходит с открытой записи без корректной разблокировки.
Blackhard писал(а):Сброс состояния OnEdit только из под админки

= раблокировка записи становится возможной только из под "Разработчика" в "Мониторе пользователей".


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