Описано внутреннее устройство формы AdvLimitComponent

Общее внутреннее устройство формы

AdvLimitComponent

Программист видит AdvLimitComponent, который располагается на форме вместе со списковым контролом ObjectListView. Этот компонент добавляет на тулбар ObjectListView кнопку, которая позволяет управлять накладываемыми ограничениями. Для иерархических списков AdvLimitComponent автоматически не генерируется, но его можно добавить вручную. Главным параметром AdvLimitComponent является списковый контрол, к которому будет привязан этот компонент.

EditAdvLimitDialog

Компонент, который позволяет вызвать форму задания ограничения из произвольного места (не только со списка).

Параметры диалога задаются при помощи свойства EditAdvLimitDialog.DialogParameters типа EditAdvLimitDialog.DialogParams.

Настроить при помощи этого свойства можно следующее:

Свойство Описание
DoNotShowStandardTab Не показывать вкладку стандартного ограничения
DoNotShowSimpleTab Не показывать вкладку простого ограничения
DoNotShowParametersArea Не показывать область задания параметров
DoNotShowLimitArea Не показывать область задания ограничения
DoNotSaveEmptyLimit При попытке сохранить пустое ограничение выдавать сообщение о невозможности данной операции
DisableLimitName Сделать недоступным ввод имени ограничения
ApplyBtnText Текст на кнопке применения ограничения
ApplyLimitButtonImage Картинка на кнопке применения ограничения
   

EditAdvansedFilter1

Форма расширенного редактора ограничений. Включает обработку редактирования параметров ограничения и встроенные контролы для редактирования самого ограничения.

AdvansedLimit

Объектная модель ограничения, редактируемого на форме задания ограничений. Включает в себя как ограничивающую функцию, так и определения параметров.

STORMAdvLimit

Объектное представление сохраняемого в базе ограничения. Не содержит логики по десериализации. Сам класс знает только сериализованное Value. Десериализуется в своё нехранимое свойство AdvLimit при помощи AdvLimitComponent. Используется только для чтения-записи в БД (наследник от DataObject).

DataObjectTypeCreator

Служебный класс, который позволяет в динамике создать типы. Эти типы используются на кастом-форме задания параметров ограничений.

ExpressionBox

Контрол для редактирования выражения в ограничении.

Полезные ссылки

Ограничение на себя,
Упрощенный вид редактора ограничений,
Стандартный вид редактора ограничений,
Наложение ограничений по столбцам в списках,
Копирование / вставка ветки ограничений (сохранение и загрузка из файла)),
Мастера в списке выбора типа параметров в редакторе AdvLimit,
Функция импликации при задании ограничений,
Функции для работы с датой при задании ограничений (пример использования здесь)
Сохранение ограничений на форме задания ограничения