Использование условий в шаблонах серьёзно упрощает жизнь разработчику на Mobile SMARTS. Условия в шаблонах позволяют избежать лишнего применения действия «Проверка условий».
Рассмотрим синтаксис условий и примеры их использования.
{Условие:результат_истина;результат_ложь} |
Условие – некоторое булево выражение или переменная, принимающая значения true или false. Условие может состоять из нескольких условий, в таком случае они объединяются с помощью логических операторов:
- || - или;
- && - и.
результат_истина – результат работы шаблона когда выражение условия принимает значение true;
результат_ложь – результат работы шаблона когда выражение условия принимает значение false.
Значения результатов могут быть также заданы шаблонами с условием.
Итогом использования этого шаблона будет вывод результата, соответствующего значению условия. Если условие принимает значение null, то ни один результат выведен не будет.
Рассмотрим примеры.
Пример составного условия
Шаблон используется в конфигурации «Mobile SMARTS: Магазин 15» для показа кнопки выбора склада в зависимости от нескольких условий.
Значение шаблона: {Document.CreatedOnPDA || Document.СкладВведенНаТСД || Document.КодСклада==null: Склад: {Document.СкладОтобр};}
Шаблон размещён в тексте кнопки «Меню».
Разберёмся, как это работает . Для выражения условия в примере используется несколько переменных:
Document.CreatedOnPDA – true, если документ создан на мобильном устройстве, если нет – false;
Document.СкладВведенНаТСД – true, если склад был выбран на мобильном устройстве, если нет – false;
Document.КодСклада==null – выражение сравнения поля документа КодСклада с null. True, если КодСклада – null.
Все составляющие общего условия объединены между собой логическим оператором «или» («||»). Это значит, что итоговое значение всегда будет true, кроме случая, когда все три элемента будут иметь значение false.
Иными словами, кнопка будет выводиться всегда, кроме случая, когда документ выгружен из учётной системы, имеет заполненное поле шапки КодСклада и склад не выбирался на мобильном устройстве. В этом случае кнопка отображаться не будет.
Вывод текста в зависимости от условия
Текст в самом окне: {Условие:Правда;Ложь}
Текст на первой кнопке: {Условие:<b color="DarkGreen">true</b>;<b color="DarkRed">false</b>}
Текст на второй кнопке: «Выход»
Результат работы:
Условие = true
|
Условие = false
|
Скрытие текста по значению условия
Текст в самом окне: {Условие:Значение условия - {Условие};}
Текст на первой кнопке: Условие = {Условие:<b color="DarkGreen">true</b>;<b color="DarkRed">false</b>}
Текст на второй кнопке: «Выход»
Обратите внимание, что результат, который будет выведен при значении условия true, может содержать шаблоны для вывода значений переменных, в данном случае это переменная Условие.
Результат, выводимый при значении false, отсутствует. Это позволяет ничего не выводить на экран, когда условие принимает значение false.
Шаблон размещён в свойстве «Текст» в самом окне действия «Меню».
Результат работы:
Условие = true
|
Условие = false
|
Вывод форматированного текста на кнопках меню
Такой вариант использования отлично подходит, например, для вывода текущих настроек на кнопке.
Текст на кнопке: Условие = {Условие:<b color="DarkGreen">true</b>;<b color="DarkRed">false</b>}
Результат работы:
Условие = true
|
Условие = false
|
Показ и скрытие кнопок меню в зависимости от условия
Такой вариант использования подходит например для вывода кнопки ввода склада, при условии, что склад в документе не был проставлен ранее.
Значение шаблона: {Условие:Есть кнопка;}
Как видите, при значении условия false, никакой текст выводиться не должен. Одновременно с текстом исчезает и появляется кнопка.
Шаблон размещён в тексте кнопки «Меню»:
Результат работы:
Условие = true
|
Условие = false
|