Страница 8 из 9

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

Добавлено: Вс дек 23, 2018 11:41 pm
kok80
Изображение

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

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


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

...

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

Добавлено: Вс авг 04, 2019 11:14 am
kok80
Version=2.05
присвоение нового обработчика fm.grid.OnkeyDown перенесено в OnCreateForm (при старом методе были периодические зависания)
исправлена ошибка поиска в фильтре объекта при пустом начальном значении ("" заменено на Null)
исправлена ошибка с таймером при вводе значения в фильтр
исправлена ошибка с сохранением истории поиска при закрытии базы (сохранялось только 1 значение)

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

Добавлено: Вт сен 03, 2019 12:22 pm
Blackhard
Спасибо, рабочая дельная штука.

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

Добавлено: Вс сен 22, 2019 8:58 pm
kok80
Version=2.06
- если при поиске встречаются ненастроенные в конфигураторе объекты или поля объектов, выдается сообщение debug`ом
(раньше ненастроенный объект игнорировался, ненастроенное поле объекта - возникала ошибка)
- если в дизайнере настроить фильтр формы и удалить поле, участвующее в фильтре - фильтр остается с пустым именем поля
сейчас выдается предупреждение debug`ом, раньше возникала ошибка
- исправлена ошибка: несколько быстрых нажатий на заголовки разных колонок при непустой строке поиска могло привести к зависанию с бесконечным обновлением формы
- история поиска теперь сохраняется по ID формы, а не по имени (переименование форм не влияет на сохранение истории)
- история поиска теперь сохраняется только для существующих форм (при удалении формы история поиска удаляется)
- увеличен размер поля для хранения истории поиска
- исправлена ошибка: при закрытии базы, если размер истории поиска был больше размера поля, появлялась ошибка
- исправлена ошибка: изменён механизм определения видимых столбцов. Сейчас сравнивает компоненты формы и столбцы по ID поля. Раньше сравнивал имя компонента и имя столбца, при переименовании столбца в таблице в дизайнере [Abc] поле исключалось из поиска.

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

Добавлено: Ср сен 25, 2019 9:37 am
kok80
Version=2.07
-исправлена ошибка: при вводе числа в hex формате (0xA[0..F], xA[0..F], 0xA[0..F]) возникала ошибка,
Hex-число вопринималось расширением как число, а OpenRecords воспринимал как строку

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

Добавлено: Ср окт 02, 2019 2:01 pm
kok80
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;

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

Добавлено: Чт окт 03, 2019 9:40 am
Pavluxa
Скажите как с этой ошибкой бороться.
Главное то что она только в одной форме

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

Добавлено: Чт окт 03, 2019 9:56 am
Develop-Soft
Pavluxa писал(а):как с этой ошибкой бороться.

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

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

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

Добавлено: Чт окт 03, 2019 3:57 pm
Pavluxa
Спасибо. Просто удалил поиск с формы.

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

Добавлено: Вт окт 08, 2019 5:03 pm
Blackhard
Спасибо за плагин, просто чудесный!

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

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

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

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

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

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

Добавлено: Вт окт 08, 2019 5:19 pm
Develop-Soft
Переведу на "нашенский":
Blackhard писал(а):Табличная форма со способом редактирования "Редактирование из таблицы".
Это когда вот тут галка стоит:
Изображение

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

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

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