Применить сценарий к свойствам блока или объекта
В этой статье рассмотрим примеры использования функции 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);