закрыть
Создание шаблона
 

Большинство справок и отчетов обязаны содержать итоговые результаты. Для подсчета итогов в данном генераторе предусмотрены следующие аггрегатные функции

Функция Пример Описание
CNT [CNT:Amount] Количество не повторяющихся значений в данном поле или выражении. В примере подсчитывается количество не повторяющихся значений в поле Amount.
Для пояснения того, что имеется в виду под словами "не повторяющиеся значения" предположим, что в поле Amount в порядке следования есть следующие значения: 1,1,1,2,2,3,1,1. В результате использования функции CNT мы получим значение 4. Т.е. значение счетчика увеличивается на 1 только в тот момент, когда последующее значение отлично от предыдущего. Эту функцию удобно использовать для подсчета количества группировок по какому-либо полю.
CNTR [CNTR:Amount] Количество записей. Т.е. общее количество значений в поле Amount вне зависимости от уникальности этих значений.
SUM [SUM:Platezh-Nalog] Сумма по данному полю или выражению. В примере производится суммирование значений выражения (Platezh-Nalog), т.е. "чистый" платеж без налога.

Следует иметь в виду, что вне зависимости, от типа данных, использованных в указанном поле или выражении по которым производится расчет, итоговое выражение будет иметь тип Double для того, чтобы с запасом "перекрыть" все возможные значения, которые могут появиться в результате суммирования. Это значит, что у итога появиться дробная часть, даже если Вы складывали целочисленные значения.

Для того, чтобы "подавить" не нужное отображение дробной части следует использовать опцию "Формата" в выражении, например:

[%.0f:CNTR:Amount]

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

[%i:CNTR:Amount]

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

Для подсчета количества записей можно использовать и функцию SUM в следующем виде [SUM:1]. Или при суммировании по условию, например, подсчитать количество записей, где значение поля Amount>10 будет выглядеть так [SUM:IF(Amount>10;1;0)]