Вычисляемые поля и правила составления формул
Вначале разберёмся, что такое вычисляемые поля и для чего они нужны. Как видно из названия, данный тип полей не хранится в таблице, а вычисляется динамически при запросе к базе данных. Вычисление значения происходит для каждой записи по указанной в описании поля формуле. Предположим, у вас в таблице есть три столбца с количеством килокалорий съеденных за завтраком, обедом и ужином. Чтобы получить количество килокалорий в день, вам достаточно добавить вычисляемый столбец со следующей формулой [kkal1] + [kkal2] + [kkal3], в которой указаны алиасы соответствующих полей.
Вы можете добавить несколько вычисляемых полей к вашей таблице. Следует быть внимательным к составлению формул и соблюдать описанные ниже правила, так как, в противном случае, таблица вообще не будет отображаться. В случае ошибки, вам следует упрощать формулу пока не будет найдена причина ошибки.
Составление формул
-
В формуле можно указывать только числовые поля с типом Число или Десятичное число и заключать их в квадратные скобки. При этом, в качестве имени поля вы должны указать алиас поля, а если его нет, то код столбца.
-
В формуле можно определять математические выражения с использованием операций умножения, вычитания, деления и сложения. Также, можно использовать круглые скобки, чтобы определять порядок вычисления.
( [count] + [30] )/10 [count]*[price] ( [count]*[21] - [val1] )/365
-
Можно использовать следующие функции при составлении выражений:
- 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]
-
Следует учитывать, что если вы используйте умножение столбцов, то они не должны принимать отрицательных значений. Если в каком-то столбце могут быть значения меньше нуля, то применяйте функцию abs.
[myfield1]*abs([myfield2])
- Для округления чисел, можно использовать параметр Округление в настройках поля. Там вы можете указать количество десятичных знаков.