Пример использования группировки записей в отчете

Top  Previous  Next

Группировку можно выполнять только по полям узла являющегося элементом данных отчета

ReportDataMember

или вложенного отчета  или по вычисляемым полям их этих узлов.

Рассмотрим группировку записей в отчете на примере сводного отчета по объектам учета. Группировка будем выполнять по обслуживающим инженерам.

ШАГ 1. Создайте отчетную форму на базе системной 'Сводное потребление в системах объектов учета'.

ШАГ 2. Удалите колонки для систем газоснабжения и электроснабжения.

Example_Groupping_Step2

ШАГ 3. Выделите секцию Detail и добавьте для нее группировку и сортиовку по полю 'ServicerName - обслуживающий'.

Для  этого выберите поле ServicerName из выпадающего списка 'Добавить группу'.

Example_Groupping_Step3

Для группировки отметьте признаки 'Показывать заголовок' и 'Показывать подвал'.

При проставленном признаке 'Показывать заголовок' появляется секция GroupHeader1, в которой будем отображать содержимое поля группировки (фамилию обслуживающего инженера).

При проставленном признаке 'Показывать подвал' появляется секция GroupFooter1, в которой будем отображать промежуточные итоги для каждой группы.

В секцию GroupHeader1 перенесите поле ServicerName из списка полей.

В секцию GroupFooter1 скопируйте строку таблицы из секции ReportFooter. Удалите из скопированной строки лишний текст и границы ячеек.

ШАГ 4. Чтобы нумерация записей была в пределах группы, в первой колонке (N) секции Detail измените диапазон подсчета на Группа.

Example_Groupping_Step4

ШАГ 5. Чтобы выводить промежуточные итоги по каждой группе, во всех ячейках с параметрами потребления строки секции GroupFooter1 измените Диапазон подсчета на Группа.

ПРИМЕЧАНИЕ. Если нужно задать условия для правила форматирования группы, то в условии используйте выражение:

 [ServicerName - обслуживающий] != [^.ServicerName - обслуживающий]

Символ ^ означает, что значение поля берется для группы.

Например.

Пусть для объектов учета есть пользовательский атрибут с именем ReportFilter.

Если надо скрыть все группы с обслуживающими, у которых нет ни одного объекта учета со значением  атрибута ReportFilter равным "Show", то условие форматирования имеет вид:

 Sum(Iif(([ServicerName - обслуживающий] != [^.ServicerName - обслуживающий]) Or ([atribute] != 'Show'), 0, 1)) == 0

где [atribute] выисляемое поле с выражением

IsNull([Атрибуты объекта учета].[ReportFilter], ?)

ШАГ 6. Сохраните изменения.

Пример сформированного отчета:

Example_Groupping_Report

chapterup Наверх