Категорія:

Пов'язані з базою даних

Статистичні (агрегатні)

Умовні

Сумує значення поля бази даних в записах, які задовольняють вказаній умові.

Синтаксис

dataset_sum_ex(
  StepNo Integer,
  GroupLevel Integer,
  FieldName String,
  Condition String
): Numeric

Параметри

StepNo. Залежить від контексту, в якому функція використовується:

Контекст експорту до HTML з використанням шаблону. Шаблон HTML може заповнюватися даними за більше, ніж один крок. Наприклад, якщо ваш документ HTML містить кілька таблиць, що мають бути заповнені даними з різних наборів даних, то заповнити їх можна лише за кілька кроків експорту (як правило, один набір даних за один крок). Параметр StepNo якраз і вказує крок експорту, на якому дана функція має обчислюватися.

Контекст звітів. Параметр StepNo в цих функціях вказує крок (прохід), в якому функція має обчислюватися. Можливі значення: 1 або 2. Якщо цей параметр дорівнює 1, то відповідна функція обчислюватиметься безпосередньо при обробці виразу. Якщо ж він дорівнює 2, звіт буде формуватися в режимі двох проходів і відповідна функція обчислюватиметься лише на другому проході обробки звіту, тобто вже після того, як набір даних звіту досягне останнього запису. Використання функцій баз даних на другому проході зручне у випадках, наприклад, коли потрібно підсумки по звіту (групі) помістити на початку звіту (групи).

Інший контекст. Повинен дорівнювати 1.

Поєднання різних StepNo в одному виразі (напр., database_field_val(1, 'total_sum') + database_field_val(2, 'payment_sum')) можливе, але такі вирази повинні бути написані так, щоб функції з меншим StepNo розраховувалися раніше.

GroupLevel (рівень групування) використовується лише в контексті звітів і може мати наступні значення:
1. Група рівня 1;
2. Група рівня 2;
3. Група рівня 3;
0. Звіт в цілому;
-1. Поточна сторінка.

FieldName - назва поля для обрахунку.

Condition - булевський вираз. Але він повинен бути записаний як константа або детерміністичний вираз типу String.

Значення, що повертається

Тип: Numeric.

Приклади використання

dataset_sum_ex(
  1, 
  0, 
  'Salary', 
  'dataset_field_val(1, ''Age'') > 50'
)