Функции построителя отчетов — функция Aggregate в отчете с разбивкой на страницы (построитель отчетов)

Применяется к: Microsoft Report Builder (SSRS) Power BI Report Builder Конструктор отчетов в SQL Server Data Tools

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

Примечание.

Файлы определения страничных отчетов (.rdl) можно создавать и изменять в Microsoft Report Builder, Power BI Report Builder и в конструктор отчетов в SQL Server Data Tools.

Синтаксис

  
Aggregate(expression, scope)  

Параметры

выражение
Выражение, для которого выполняется агрегирование. Это выражение должно быть простой ссылкой на поле.

область применения
(String) Имя набора данных, группы или области данных, содержащих элементы отчета, к которым применяется агрегатная функция. Scope должна быть строковой константой и не может являться выражением. Если аргумент scope не задан, используется текущая область.

Тип возвращаемых данных

Тип возвращаемых данных определяется поставщиком данных. Возвращает Nothing , если поставщик данных не поддерживает эту функцию или данные недоступны.

Замечания

Функция Aggregate предоставляет способ использования статистических значений, вычисленных на внешнем источнике данных. Поддержка этой функции определяется модулем обработки данных. Например, расширение обработки данных SQL Server Analysis Services получает плоские наборы строк из MDX-запроса. Некоторые строки результирующего набора могут содержать статистические значения, вычисленные на сервере источника данных. Они известны как серверные статистические значения. Чтобы просмотреть серверные статистические выражения в графическом конструкторе запросов служб Analysis Services, можно использовать кнопку Show Aggregate (Показать статистическое выражение) на панели инструментов. Дополнительные сведения см. в статье Пользовательский интерфейс конструктора запросов MDX служб Analysis Services (Построитель отчетов).

Если в строках детализации области данных Tablix отображается сочетание агрегированных значений и значений набора данных детализации, серверные агрегаты обычно не включаются, поскольку они не являются данными детализации. Однако может потребоваться отображение всех значений, полученных для набора данных, и настройка способа вычисления и отображения статистических данных.

Построитель отчетов определяет использование функции Aggregate в выражениях отчета, чтобы определить, отображать ли серверные статистические выражения в строках с подробными сведениями. При включении функции Aggregate в выражение области данных серверные статистические выражения появляются только в строках группы «Итог» и «Общий итог», но не в строках с подробными сведениями. Если требуется отобразить серверные статистические данные в строках с подробными сведениями, не следует использовать функцию Aggregate .

Это поведение по умолчанию можно изменить, изменив значение параметра Интерпретировать подытоги как строки детализации в диалоговом окне Свойства набора данных. При установке этого параметра в значение Trueвсе данные, включая серверные статистические выражения, отображаются как подробные данные. При установке на значение Falseсерверные статистические значения отображаются как итоги. Установка этого свойства затрагивает все области данных, связанные с этим набором данных.

Примечание.

Все вмещающие группы элемента отчета, ссылающегося на функцию Aggregate , должны иметь простые ссылки на поля для своих выражений групп, например [FieldName]. Нельзя использовать функцию Aggregate в области данных, использующую сложные выражения групп. Для модуля обработки данных SQL Server Analysis Services запрос должен включать поля многомерных выражений типа LevelProperty (не MemberProperty) для поддержки агрегирования с помощью функции Агрегата .

Expression может содержать вызовы вложенных агрегатных функций со следующими условиями и исключениями.

  • ПараметрScope для вложенных агрегатов должен совпадать с областью внешнего агрегата или входить в нее. Среди всех различных областей видимости в выражении одна область видимости должна быть дочерней по отношению ко всем остальным областям видимости.

  • ПараметрScope для вложенных агрегатов не может быть именем набора данных.

  • Expression не может содержать функции First, Last, Previousи RunningValue .

  • Expression не может содержать вложенные агрегаты, в которых указан параметр recursive.

Дополнительные сведения см. в разделах Справочник по агрегатным функциям (построитель отчетов и SSRS) и Область выражения для суммирования, агрегатных функций и встроенных коллекций (построитель отчетов и SSRS).

Дополнительные сведения о рекурсивных статистических выражениях см. в разделе Создание групп рекурсивной иерархии (построитель отчетов и SSRS).

Сравнение функций Aggregate и Sum

Функция Aggregate отличается от числовых агрегатных функций, например Sum , тем, что функция Aggregate возвращает значение, вычисленное поставщиком данных или модулем обработки данных. Числовые агрегатные функции, например Sum , возвращают значение, вычисляемое обработчиком отчетов из набора данных, определенного параметром scope . Дополнительные сведения см. в разделе Справочник по агрегатным функциям (построитель отчетов и SSRS), где перечислены агрегатные функции.

Пример

В приведенном ниже примере кода показано выражение, получающее серверное статистическое значение для поля LineTotal. Выражение добавляется в ячейку строки, принадлежащей группе GroupbyOrder.

=Aggregate(Fields!LineTotal.Value, "GroupbyOrder")