logo

Применить сценарий к свойствам блока или объекта

В этой статье рассмотрим примеры использования функции For(), которая позволяет обратиться в сценарии к свойствам блока или любого объекта.

Кейс 1

При загрузке формы FormOnLoad() можно включить обязательность заполнения атрибута Field2 в блоке, установив значение true.

form.For(x => x.Field2).Required(true);

Если пользователь введёт значения для атрибутов блока, они отобразятся не только в окне редактирования блока, но и в самом блоке. Чтобы применить изменения, пользователь нажмёт кнопку Сохранить.

Затем вы можете сбросить обязательность заполнения атрибутов блока, то есть показать обязательность в окне ввода данных блока, но не показывать её в таблице атрибутов блока. Для этого используйте функцию For() в сценарии, который выполнится после изменения блока.

// пример кода сброса обязательности свойства
public virtual void BlockOnChange (Context context, EleWise.ELMA.Model.Views.FormViewBuilder<Context> form)
{
    form.For(x => x.Block).For(x => x.Field2).Required(false);
}

Данный сценарий установит значение false для атрибута Field2 в свойстве Block.

Кейс 2

Используйте функцию For(), если есть вложенные блоки и нужно добраться до их свойств. В этом случае вложенный блок — это тоже свойство родительского блока.

form.For(x => x.Block1).For(x => x.Block2).For(x => x.Field2).Required(false);

Кейс 3

Функцию For() можно применять не только для блоков, но и для любых объектов. Например, можно установить обязательность для даты создания документа.

form.For(x => x.Document).For(x => x.CreationDate).Required(true);