Фильтры
Фильтры - это инструмент наложения пользовательских ограничений на список объектов.
Все списки имеют функциональность по наложению на них фильтров. Для загрузки списка используется представление L, а представления T и D используется для наложения на него ограничений. Поэтому представления L и T (D для детейлов объекта) должны содержать одинаковый набор атрибутов.
Редактор ограничений
Редактор ограничений служит для создания фильтров.
Подробнее о редакторе можно посмотреть в этой статье
Настройки фильтров (FilterSettings)
Для задания FilterSettings необходимо воспользоваться Flexberry Administrative Console (AdmConsole).
Если используется генератор настроек фильтров, то необходимо обратить внимание на следующие моменты:
- Для работы его можно определить как ярлык на рабочий стол:
arr.Add(new IIS.WinUI.Runners.EditFormRunner(typeof(IIS.Core.App_FilterSettingsGeneratorE), "Администрирование", "Генератор настроек фильтров", "", new IIS.Core.App_FilterSettingsGenerator(), typeof(IIS.Core.App_FilterSettingsGenerator), false));
- В конфиг-файле приложения должны быть строчки вида:
<add key="DefaultLibFolder" value="lib"/>
<add key="FilterSettingStrategy" value="reflection"/>
Сборки объектов и форм при этом нужно перенести в папку, указанную в DefaultLibFolder
.
-
У объектов обязательно должно быть T-представление.
-
После того, как настройки фильтров будут сгенерированы, их необходимо подключить как указано здесь.
FilterSettings определяют настройки для детейлов и лукапов (например, без таких настроек при задании ограничений невозможно использовать детейлы).
После задания FilterSettings в БД приложения, на которую была настроена AdmConsole, заполнятся следующие таблицы:
- STORMFILTERSETTING (содержит названия настроек фильтров и названия объектов, к которым будут применены данные настройки);
- STORMFILTERLOOKUP (содержит настройки для лукапов);
- STORMFILTERDETAIL (содержит настройки для детейлов);
сам объект
заработало - нужно создать STORMFILTERLOOKUP для этого объекта.Форма задания ограничений AdvLimit
AdvLimit позволяет задавать ограничения; для расширения функциональности необходимо настроить FilterSettings (см. выше, здесь и здесь).
LimitFunction
Через свойство LimitFunction структуры LoadingCustomizationStruct можно программно задавать ограничения (пример см. здесь).