Как управлять доступностью нового свойства, если оно зависит от существующего свойства
<< Click to Display Table of Contents >> Разработка > Примеры разработки > Доступность, обязательность, видимость свойств Как управлять доступностью нового свойства, если оно зависит от существующего свойства |
Ситуация
Предположим, в карточку документа, который является наследником базового договора (Sungero.Contracts.ContractBase), добавлено новое свойство Сумма с НДС. Имя свойства – VATAmount, тип – Вещественное. Свойство необязательно для заполнения. Необходимо, чтобы новое свойство было доступным для изменения в зависимости от доступности свойства – Сумма (TotalAmount), т.к. свойства тесно связаны.
Решение
Для управления доступностью нового свойства, в зависимости от поведения существующего свойства, нужно переопределить логику функции ChangeDocumentPropertiesAccess() базового типа. Функция изменяет доступность реквизитов документа в зависимости от стадии жизненного цикла документа.
1.В редакторе типа документа, который является наследником, перейдите по ссылке к разделяемым функциям.
2.Добавьте функцию ChangeDocumentPropertiesAccess() с модификатором override:
// Сменить доступность реквизитов документа.
// <param name="isEnabled">True, если свойства должны быть доступны.</param>
// <param name="isRepeatRegister">Перерегистрация.</param>
public override void ChangeDocumentPropertiesAccess(bool isEnabled, bool isRepeatRegister)
{
base.ChangeDocumentPropertiesAccess(isEnabled, isRepeatRegister);
_obj.State.Properties.VATAmount.IsEnabled = _obj.State.Properties.TotalAmount.IsEnabled;
}
В результате новое свойство Сумма НДС в карточке документа будет доступно тогда, когда доступно свойство Сумма.
© Компания Directum, 2024 |