Перейти к содержанию

Синтаксис формул

Синтаксис формул похож на SQL.

Простые выражения могут быть описаны с помощью обычных арифметических действий.

([field_1] - [field_2])

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

CONCAT  (
        SUM ([field_1] / [field_2], ' %')
        )

Синтаксис формул применяется для расчетных агрегатов, расчетных переменных и SQL-фильтрации виджетов.

Основные правила по соблюдению синтаксиса:

При написании SQL - скрипта доступны подсказки в виде подсветки синтаксиса и появляющихся справочников (IntelliSense):

  • svg поля модели;
  • svg ключевые слова (select , from...);
  • svg алиасы - при выборе алиаса в выпадающем списке  в формулу прописывается код этого поля для корректной работы формулы.
  • Формула может быть записана в одну строку или в несколько строк.

    SUM (
        [field_1] / [field_2],
        ' %'
        )
    
  • Имена полей указываются в квадратных скобках.

    [field]
    

    Синтаксис имен полей регистрозависимый. Используйте написание наименования поля из данных.

  • Аргументы функций указываются в круглых скобках и разделяются запятой.

    SUM ([field_1], [field_2])
    
  • Одинарные кавычки перменнных в формулах указываются с экранированием символом \.

    CASE [field]
        WHEN 'Значение \'пустой\' для поля'
        THEN 100
        ELSE 0
    END
    
  • В выражениях могут участвовать переменные, созданные в системе. Обращение выполняется по имени поля в квадратных скобках. Редактируемые переменные с типом Список и Множественный выбор используются как массив с помощью оператора IN и указываются в круглых скобках;

    SUM_IF  (
                [field], 
                [year](2) IN   (
                                [arr_year](1)
                            )
            )
    
    1. переменная с типом Множественный выбор
    2. поле модели
  • В выражениях могут участвовать расчетные агрегаты, созданные в системе. Обращение выполняется по имени поля в квадратных скобках. Расчетный агрегат может быть использован в формуле поля виджета или в другом расчетном агрегате;

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

  • В выражениях могут участвовать константы разных типов данных:

    • число (целое): 23-4325653;
    • число (дробное), разделитель точка (.): 0.0234-1.0;
    • дата или дата и время: 2019-01-23, 2019-01-23 15:07:47;
    • строка: Строка;
    • логический: TRUE, 1FALSE, 0;
  • В выражениях могут участвовать операторы:

    • арифметические: +-*/;
    • возведение в степень: ^;
    • остаток от деления: %;
    • логические: ANDORNOTINLIKEIS TRUEIS FALSEBETWEEN;
    • сравнения: =!= (не равно), <<=>>=;
  • Для добавления пояснений или для игнорирования частей формул используются комментарии.

    SUM ([field_1], [field_2]) /* Комментарий
    многострочный */
    

Основным компонентом формул являются функции, которые позволяют выполнять различные операции над данными виджета.