Формулы и скрипты
Формулы
Формулы используются в программе для следующих целей:
-
Для отображения переменных данных в элементах этикеток. Переменные данные это данные из полей вашего источника данных, данные из вычисляемых полей данных, счетчики, текущая дата.
Строка, возвращаемая формулой, будет отображена элементом этикетки при печати или предварительном просмотре этикетки.
Также формула в элементе этикетки, который отображает изображение, может возвращать путь к файлу изображения или ссылку на изображение. -
Для задания различных условий. Например, для задания условий видимости элементов / слоев этикеток или для фильтрации ваших данных по определенным условиям при импорте данных из вашего источника.
-
В качестве источника данных для вычисляемых полей данных. Вычисляемое поле данных это поле данных, в настройках которого задана формула. Такое поле данных будет содержать то, что вернет эта формула. Например, вы можете добавить поле данных в данные для печати этикеток и задать в настройках этого поля формулу, по которой это поле будет отображать модифицированные данные из другого поля данных.
В формулах вы можете использовать операции над строками, числами и датой / временем, а также форматирование чисел и даты / времени. Для этого используются различные функции.
Для вставки и редактирования формул в программе имеется конструктор формул, который описан в разделе Конструктор формулы.
Формулы выглядят как:
[Начальное значение] [Функция 1] [Функция 2] ...[Функция N] [/*Ваш комментарий*/]
Начальное значение может иметь любой допустимый тип данных. Может отсутствовать явно, тогда будет считаться пустой строкой.
Типы данных в формулах
-
Текст. Обрамляется в двойные кавычки.
Пример:
"Это текст"
. Число.
Пример:
123.4
.-
Дата / время. Обрамляется в одинарные кавычки.
Формат:
- ГГГГ-ММ-ДДTчч:мм:сс
- ГГГГ-ММ-ДД чч:мм:сс
- ГГГГ-ММ-ДД
, где ГГГГ - год 4 цифры, ММ - месяц 2 цифры, ДД - день 2 цифры, чч - час 2 цифры, мм - минуты 2 цифры, сс - секундыс 2 цифры.
Примеры:
'2020-09-12T03:41:00'
,'2020-09-12 03:41:00'
,'2020-09-12'
. -
Поле данных. Обрамляется в квадратные скобки.
Примеры:
[Price]
[CurrentDate]
, здесь виртуальное поле данных, которое содержит текущую дату.
Функции в формулах
Функции выполняют различные действия: арифметические операции, обработка строк и дат, форматирование и т.д.
Функции в формуле выполняются последовательно слева направо.
В качестве входного значения для первой функции выступает начальное значение формулы, для всех последующих функций входное значение это результат обработки от предыдущей функции.
Т.е. первая функция в формуле обрабатывает начальное значение формулы, вторая значение полученное от первой, третья значение полученное от второй и т.д.
Функции могут включать в себя в качестве аргумента другие формулы.
Примеры использования функций:
String()
Функция конвертирует входное значение в строку.
+(10)
Функция добавляет к входному значению число 10.
If(>10;1;0)
Функция возвращает 1, если входное значению больше 10, иначе возвращает 0.
Round( If( [Price]>10;"1";"0.5" ) )
Функция округляет входное значению до 1, если поле данных
Price
содержит значение больше 10, иначе округляет входное значение до 0.5.
В качестве аргумента функции, определяющего точность округления, использована формулаIf( [Price]>10;"1";"0.5" )
.
Примеры формул с функциями:
100 AddPercent( 5 )
Функция
AddPercent()
добавит 5 процентов к числу 100, и вернет полученное значение 105.[Price] AddPercent( 12.3 ) Round( "0.5" )
Функция
AddPercent()
добавит 12.3 процентов к цене товара из поля данныхPrice
, затем функцияRound()
округлит полученное значение с точностью 0.5.If([Name] Contains("pro") Or ([Name] Contains("corporate"));"Это Pro или Corporate";"Другое")
В данном примере использованы функции
If
(Если),Contains
(Содержит) иOr
(Или).
В формуле проверяется, если полеName
содержит словаpro
илиcorporate
, то возвращается строкаЭто Pro или Corporate
, иначе возвращается строкаДругое
.
Скрипты JavaScript и Pascal
Скрипты JavaScript и Pascal используются в программе для следующих целей:
-
Для отображения переменных данных в элементах этикеток.
-
В качестве источника данных для печати этикеток.
-
В качестве скриптов, выполняемых при запуске задач.
Примеры скриптов:
В обоих скриптах проверяется, если поле Name
содержит слова pro
или corporate
,
то возвращается строка Это Pro или Corporate
,
иначе возвращается строка Другое
.
-
JavaScript.
let _ = azureLabel; let name = _.getFieldValue('Name'); if (name.includes('Pro') || name.includes('Corporate')) { _.write('Это Pro или Corporate'); } else { _.write('Другое'); }
-
Pascal script.
var name: string; begin name := GetFieldValue('Name'); if ( (pos('Pro', name) > 0) or (pos('Corporate', name) > 0) ) then begin Write('Это Pro или Corporate'); end else begin Write('Другое'); end; end.