Формулы и скрипты

Формулы

Формулы используются в программе для следующих целей:

  • Для отображения переменных данных в элементах шаблонов. Переменные данные это данные из полей вашего источника данных, данные из вычисляемых полей данных, счетчики, текущая дата.
    Строка, возвращаемая формулой, будет отображена элементом шаблона при печати или предварительном просмотре этого шаблона.
    Также формула в элементе шаблона, который отображает изображение, может возвращать путь к файлу изображения или ссылку на изображение.

  • Для задания различных условий. Например, для задания условий видимости элементов / слоев шаблонов или для фильтрации ваших данных по определенным условиям при загрузке данных из вашего источника.

  • В качестве источника данных для вычисляемых полей данных. Вычисляемое поле данных это поле данных, в настройках которого задана формула. Такое поле данных будет содержать то, что вернет эта формула. Например, вы можете добавить поле данных в данные для печати этикеток и задать в настройках этого поля формулу, по которой это поле будет отображать модифицированные данные из другого поля данных.

В формулах вы можете использовать операции над строками, числами и датой / временем, а также форматирование чисел и даты / времени. Для этого используются различные функции.

Для вставки и редактирования формул в программе имеется конструктор формул, который описан в разделе Конструктор формулы.

Формулы выглядят как:

[Начальное значение] [Функция 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.