Fork me on GitHub

Вычисляемые поля и правила составления формул

Вначале разберёмся, что такое вычисляемые поля и для чего они нужны. Как видно из названия, данный тип полей не хранится в таблице, а вычисляется динамически при запросе к базе данных. Вычисление значения происходит для каждой записи по указанной в описании поля формуле. Предположим, у вас в таблице есть три столбца с количеством килокалорий съеденных за завтраком, обедом и ужином. Чтобы получить количество килокалорий в день, вам достаточно добавить вычисляемый столбец со следующей формулой [kkal1] + [kkal2] + [kkal3], в которой указаны алиасы соответствующих полей.

Вы можете добавить несколько вычисляемых полей к вашей таблице. Следует быть внимательным к составлению формул и соблюдать описанные ниже правила, так как, в противном случае, таблица вообще не будет отображаться. В случае ошибки, вам следует упрощать формулу пока не будет найдена причина ошибки.

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

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

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

    ( [count] + [30] )/10
    [count]*[price]
    ( [count]*[21] - [val1] )/365
  3. Можно использовать следующие функции при составлении выражений:

    • abs(X) - Возвращает абсолютное значение числа.
    • mod(N,M) - Возвращает остаток от деления N на M.
    • floor(X) - Округление в меньшую сторону.
    • ceiling(X) - Округление в большую сторону.
    • round(X) - Округление до ближайшего целого числа.
    • round(X,D) - Округление до числа с D десятичными знаками. Если D равно 0, результат будет представлен без дробной части.
    • truncate(X,D) - Возвращает число, усеченное до D десятичных знаков.
      floor( [myfield1]/7 )
      [par1] + truncate([par2]) - [89]
  4. Следует учитывать, что если вы используйте умножение столбцов, то они не должны принимать отрицательных значений. Если в каком-то столбце могут быть значения меньше нуля, то применяйте функцию abs.

    [myfield1]*abs([myfield2])
  5. Для округления чисел, можно использовать параметр Округление в настройках поля. Там вы можете указать количество десятичных знаков.