Объясняются понятия, связанные с понятиями фильтров и ограничений

Фильтры

Фильтры - это инструмент наложения пользовательских ограничений на список объектов.

Все списки имеют функциональность по наложению на них фильтров. Для загрузки списка используется представление 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 (содержит настройки для детейлов);

Форма задания ограничений AdvLimit

AdvLimit позволяет задавать ограничения; для расширения функциональности необходимо настроить FilterSettings (см. выше, здесь и здесь).

LimitFunction

Через свойство LimitFunction структуры LoadingCustomizationStruct можно программно задавать ограничения (пример см. здесь).