|
Выражения
Выражения – предназначены для выполнения необходимых вычислений, состоят из констант и переменных, объединенных знаками операций. Выражения обозначаются, как «expr» и бывают 3-х типов:
- Строковые выражения, значениями которых являются тексты;
- Логические выражения описывают некоторые условия, которые удовлетворяются или не удовлетворяются;
- Арифметические выражения служат для определения числового значения. При вычислении их значений операции выполняются в порядке приоритета: сначала выражения в скобках, затем «*», «/», «%», а затем «+» и «–». Операции одинакового старшинства выполняются слева направо.
Строка может содержать несколько выражений, сгруппированных вместе с использованием конструкций DJEM- скрипта.
В выражениях поддерживаются операции:
- Арифметические
Обозначение |
Арифметическая операция |
+ |
операция сложения |
– |
операция вычитания |
* |
операция умножения |
/ |
операция деления |
% |
операция взятия остатка от деления |
| |
Операция двоичное «или» |
& |
Операция двоичное «и» |
^ |
Операция исключающее «или» |
shl |
Операция двоичный сдвиг влево |
shr |
Операция двоичный сдвиг вправо |
- Логические
Обозначение |
Логическая операция |
&& |
операция логическое И |
|| |
операция логическое ИЛИ |
gt |
операция больше |
ge |
операция больше или равно |
lt |
операция меньше |
le |
операция меньше или равно |
== |
операция равно |
!= |
операция не равно |
- Строковые
Обозначение |
Арифметическая операция |
~ |
Операция строкового слияния двух аргументов |
+= |
Добавление элементов в множество элементов.
При добавлении множества к множеству записи могут дублироваться. |
-= |
Удаление элемента из множества элементов |
Порядок выполнения операций при вычислении выражения может задаваться круглыми скобками: «(» и «)».
Примеры
Арифметические выражения:
55*3/(2+3) – сначала 55 умножается на 3, затем к 2 будет прибавлено 3. После этого выполняется операция деления. В результате получится 33.
55*3/2+3 – результат 85.5, т.к. операция сложения имеет более низкий приоритет, чем умножение и деление.
<#price#>*(100 - <#discount#>)/100 – если поле price содержит цену товара, а discount – скидку на товар, то приведенное выражение можно использовать для вычисления цены со скидкой.
Логические выражения:
(<#price#> > 100) && (<#creditcard#> == “Visa Classic”) – условие верно, если цена товара больше 100 у.е. и тип пластиковой карточки – Visa Classic. Например, может быть использовано для предоставления дополнительной скидки или указания специальных условий продажи.
Строковые выражения:
<set a="Hello"> <set b="world!"> <set c=<var[a]>~" "~<var[b]> <var[c]>
Данный пример выведет
Hello world!
Операции с множествами подразумевают множества разделенных запятой значений, достаточно часто используемые внутри системы DJEM - например, в таком формате DJEM хранит выбранные в множественном списке значения или несколько дат, выбранных в контроли времени.
Пример:
<#values="8,66"#> Запись значений 8 и 66 в поле документа values
<#values+="string"#> К множеству значений values добавляется значение string, после чего в values оказывается 8,66,string
<#values-="8"#> Из множества значений удаляется элемент 8, после чего в values оказывается 66,string
|