Большинство справок и отчетов обязаны содержать итоговые результаты. Для подсчета итогов в данном генераторе предусмотрены следующие аггрегатные функции
Функция |
Пример |
Описание |
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)]
|