Форма редактирования пользовательских ограничений (AdvLimit)
В сгенерированных формах приложения существует возможность наложения пользовательских ограничений на списки. Пользовательские ограничения позволяют настроить правила, по которым отфильтровываются объекты, попадающие в список. Рассмотрим на примере:
'’Примечание: предполагается, что приложение уже сгенерировано’’
Диаграмма классов

Форма задания пользовательских ограничений
Допустим, что у нас есть список из 5 клиентов, заполненный следующим образом, и мы хотим выделить всех клиентов, прописанных в Перми:

Чтобы это сделать, необходимо открыть форму редактирования пользовательских ограничений и ввести соответствующее ограничение на поле Прописка. Проверка весьма примитивна - проверяем строку на наличие в ней подстроки “Пермь”.

После того, как ограничение заполнено, необходимо нажать кнопку “Сохранить и применить”, после возвращения на форму необходимо обновить список, чтобы к нему применилось ограничение.

Как можно заметить, количество Клиентов сократилось до 3х человек: остались только те, у кого в поле Прописка была подстрока Пермь.
Чтобы вернуть список в исходное состояние, необходимо сбросить текущее ограничение, нажав кнопку “Сбросить ограничения”

Пример настройки FilterSettings
FilterSettings позволяют настроить доступные для наложения пользовательских ограничений поля объекта. Рассмотрим пример:

Так выглядит форма настройки списка Кредитов. Предположим, что мы хотим отфильтровать список и вывести те кредиты, в которых было хотя бы одно погашение на сумму, превышающую 100 000.
Откроем форму создания пользовательских ограничений:

В дереве полей объекта Кредит есть все его мастера, а также собственные поля, но нет его детейлов. Чтобы в нем появились детейлы, необходимо создать FilterSetting через AdmConsole.
- Скачиваем AdmConsole
- Правим
AdmConsole.exe.cofig, необходимо прописать путь к базе данных нашего приложения в ключ CustomizationString
<add key="CustomizationStrings" value="SERVER=localhost;Trusted_connection=yes;DATABASE=credits;" />
- При первом запуске приложения выберем папку с кешем сборок, можно указать путь к папке, куда собирается проект с Объектами, но предпочтительнее создать отдельную папку.
- В папку с кешем надо скопировать:
- DLL с объектами
<ИмяПроекта>(Objects).dll - DLL с Формами
<ИмяПроекта>(Forms).dll - IIS.WinUI.AdvancedFSCtrl.dll - находится в папке с AdmConsole.exe
- DLL с объектами
- Откроем
Специальные формы настройки->Настройки фильтров - Создадим новую настройку, нажав на кнопку
Создать, откроется форма создания настроки. - На форме:
- Введем
Наименованиенастройки - Выберем сборку из выпадающего списка
- Выберем тип
Кредит - Выберем представление
КредитL
- Перейдем на вкладку
Детейлыи нажмем кнопкуЗаполнить. ‘‘Примечание: если при нажатии на кнопкуЗаполнитьпоявляется сообщение “Нет измененных детейлов”, необходимо сохранить настройку и попробовать снова’’
- Введем
- Сохраним настройку и выйдем из AdmConsole
Теперь необходимо указать приложению, что на списковой форме Кредитов должна быть применена эта настройка фильтров. Варианты:
- Настройка в дизайнере VS
- Настройка через код. ‘‘Примечание: если нет возможности открыть проект в Visual Studio, но есть желание все-таки применить эту настройку, необходимо сделать следующее:
- Открыть папку с проектами форм
- Найти файл КредитL.cs и открыть его любым текстовым редактором (например Блокнотом)
- Найти метод GetDpdForm()
- Записать в скобки программиста
КредитL.GetDpdForm() endследующую строчку кода:
form.FilterSettingName = "Кредиты";
- Сохранить файл’’
Теперь после сборки приложения зайдем на форму кредитов и откроем форму создания пользовательских ограничений:

Как видите, появилась возможность наложения ограничений на детейл Кредита. Создадим условие, фильтрующее все кредиты с погашениям свыше 100000. Нажмем Сохранить и применить и обновим список на форме, получим:
