Дизайнер ELMA > Интерфейсы / Примеры использования формулы

Примеры использования формулы

Как задать формулу?

Если вы хотите указать формулу в настройках, примените обращение к контексту, элементу списка или значение.

Чтобы написать формулу, используйте свойства контекста через Context.MyProperty или обращение к элементу списка через Item.MyProperty, например, в таблице, списке связанных объектов, динамическом списке и т. д.

Допустимы простые выражения при работе с формулой:

Context.User != null && Context.User.FirstName == "test" ? "Отображается пользователь" : "Пользователь отсутствует"

Можно указать сразу значения Отображается пользователь, true.

начало внимание

Не рекомендуем задавать в формулах сложные условия или проверки. Для них лучше задать функцию, в том числе потому, что часто в формулах отсутствуют (не добавлены) проверки на null.

конец внимание

Что делать, если возникла ошибка в формуле?

При возникновении ошибки в формуле она отобразится в консоли браузера.

Пример 1. Для компонента Текст указана настройка с формулой Context.User.FirstName.

formula-use-case-1

При выполнении этой формулы может возникнуть ошибка выполнения метода Method_a42d96bad6aa42abd8e576b5c622e0f9, потому что свойство User не заполнено.

formula-use-case-2

Чтобы исправить ошибку, скорректируйте формулу:

Context.User?.FirstName

или

Context.User == null ? string.Empty : Context.User.FirstName

Пример 2. Для компонента Текст в опции Скрыть указана настройка с формулой Context.User.FirstName == string.Empty.

formula-use-case-3

При выполнении формулы возникнет такая же ошибка, как в примере 1, потому что работа осуществляется с типом данных Да / Нет. Чтобы исправить её, скорректируйте формулу:

Context.User == null || Context.User.FirstName == string.Empty

Обратите внимание, НЕВЕРНО указывать следующую формулу, потому что результат выполнения вернётся с типом bool?, а нужен тип bool:

Context.User?.FirstName == string.Empty // ошибка!!!

Как обратиться к элементу списка?

К элементу нужно обращаться через Item. Он доступен в компонентах, которые используют источник данных со списком. Например, в таблице, списке связанных объектов, динамическом списке и т. д. 

Чтобы использовать Item, откройте настройки элемента, который лежит внутри компонента. 

// Item - объект из списка
Item.MyProperty 
// также доступно использование с контекстом
Item.MyProperty == "test" && Context.User != null

Пример 3.

  1. В контексте создадим свойство Users.

formula-use-case-4

  1. Добавим на форму компонент Таблица и укажем его настройки.

formula-use-case-5

  1. В ячейку добавим компонент Текст и в нём укажем Item.FirstName, где Item - объект типа Пользователь

formula-use-case-6

Получим результат:

formula-use-case-7

Пример аналогичного обращения к элементу списка через функцию:

formula-use-case-8

Нашли опечатку? Выделите текст, нажмите ctrl + enter и оповестите нас