Properties (IsVisible, IsRequired, IsEnabled и т.д.) – состояние свойств сущности
<< Click to Display Table of Contents >> Объектная модель > Действия с репозиториями и сущностями > State (IsChanged, IsEnabled, IsCopied и т.д.) – состояние сущности Properties (IsVisible, IsRequired, IsEnabled и т.д.) – состояние свойств сущности |
Для получения состояния свойств сущности используется State.Properties. Оно содержит в себе свойства, совпадающие с именами свойств сущности. Состояние свойств сущности включает управление видимостью/доступностью и обязательностью свойств в карточке, а также возможности подсветки контролов для веб-клиента. То есть свойства можно скрывать или подсвечивать в карточке, делать недоступными для редактирования или обязать пользователя к их заполнению. Например, запрещается менять некоторые поля, когда у пользователя нет нужных прав, или он не входит в нужную роль, или сущность находится в особом состоянии (стадии жизненного цикла).
Свойства State.Properties.<Имя свойства>
Имя |
Тип |
Описание |
---|---|---|
HighlightColor |
Цвет для подсветки контрола на форме. С помощью свойства можно полностью залить цветом поле карточки в веб-клиенте |
|
IsChanged |
bool |
Признак того, что свойство изменено. Свойство только для чтения. Возвращает true, если свойство изменено. После вызова метода Save() сущности, сбрасывается в значение false |
IsEnabled |
bool |
Признак того, что свойство доступно для изменения. Свойство для чтения и для записи. По умолчанию – значение, заданное при разработке типа сущности |
IsRequired |
bool |
Признак того, что свойство обязательно для заполнения |
IsVisible |
bool |
Признак того, что свойство является видимым. Свойство для чтения и для записи. По умолчанию – значение, заданное при разработке типа сущности |
Дополнительные свойства для свойств типа «Коллекция»:
Имя |
Тип |
Описание |
---|---|---|
Added |
IEnumerable<Интерфейс сущности>. Например, IEnumerableIApprovalReworkAssignmentApprovers |
Список добавленных в свойство-коллекцию записей. Очищается при сохранении сущности |
CanAdd |
bool |
Признак того, что можно добавлять элементы в коллекцию |
CanCopy |
bool |
Признак того, что можно создавать копии элементов коллекции |
CanDelete |
bool |
Признак того, что можно удалять элементы из коллекции |
Changed |
IEnumerable<Интерфейс сущности> |
Список измененных записей в свойстве-коллекции. Очищается при сохранении сущности |
Deleted |
IEnumerable<Интерфейс сущности> |
Список удаленных из свойства-коллекции записей. Очищается при сохранении сущности |
Дополнительные свойства для всех свойств, кроме свойства типа «Коллекция» и «Бинарные данные»:
Имя |
Тип |
Описание |
---|---|---|
OriginalValue |
<Интерфейс сущности> |
Первоначальное значение свойства. Если свойство в рамках работы между получением сущности и сохранением изменялось несколько раз, то свойство вернет самое первое значение, которое было у сущности при ее получении |
PreviousValue |
<Интерфейс сущности> |
Предыдущее значение свойства. Если свойство в рамках работы между получением и сохранением изменилось несколько раз, то свойство вернет то значение, которое было перед последним изменением |
Работать со State.Properties можно также, как и со списком, например, использовать цикл foreach.
Пример 1. Доступность свойств в событии «Обновление формы» справочника
// Сделать все свойства на карточке доступными только на чтение.
foreach (var property in _obj.State.Properties)
property.IsEnabled = false;
Свойство IsEnabled сущности и IsEnabled конкретного свойства – это два независимых свойства. При этом, если IsEnabled для сущности будет установлено в false, а для одного из свойств в true, то такое свойство останется неактивным. В следующем примере поле Name на карточке будет недоступно.
Пример 2. Использование свойства IsEnabled
_obj.State.IsEnabled = false;
_obj.State.Properties.Name.IsEnabled = true;
Пример 3. Управление доступностью и обязательностью свойства в событии «Показ формы» справочника
// Если сущность только что создана и еще не сохранена.
if (_obj.State.IsInserted || _obj.State.IsCopied)
{
// Сделать свойство Communication обязательным и доступным для редактирования.
_obj.State.Properties.Communication.IsRequired = true;
_obj.State.Properties.Communication.IsEnabled = true;
}
Пример 4. Использование свойства CanDelete
// Запретить удаление строк дочерней коллекции.
_obj.State.Properties.CollectionProperty.CanDelete = false;
© Компания Directum, 2024 |