Поделиться через


Вычисление итогов и другие статистические вычисления (службы Reporting Services)

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

Чтобы настроить статистические вычисления, можно использовать групповые переменные в сочетании с пользовательским кодом. Дополнительные сведения см. в разделе Использование групповых переменных в службах Reporting Services 2008 для нестандартного статистического выражения.

Дополнительные сведения об области см. в разделе Общие сведения об области выражений для суммирования, агрегатных функций и встроенных коллекций (построитель отчетов 3.0) документации по построителю отчетов 3.0 на веб-узле msdn.microsoft.com.

Основные сведения о команде «Добавить итог»

Общие итоги области данных табликса или подытоги группы отображаются с помощью команды Добавить итог в контекстном меню. Команда Добавить итог работает с учетом контекста. Для ячейки в области группы строк команда Добавить итог автоматически добавляет строку за пределами группы итогов. Для столбца в области группы строк команда Добавить итог автоматически добавляет столбец за пределами группы итогов. Для ячейки в области текста, содержащей выражение числового поля, команда Добавить итог позволяет выбрать, куда будет добавлен итог: в строку или в столбец. Дополнительные сведения об использовании команды Добавить итог см. в разделе Как добавить итоги в группу или область данных табликса (службы Reporting Services).

По умолчанию команда Добавить итог использует функцию Sum. Однако функцию Sum можно заменить другой встроенной функцией и выполнить для области другую статистическую обработку. Кроме того, можно написать собственные выражения, вычисляющие статистические значения для одной области относительно другой. Например, можно вычислять процентное соотношение значения группы относительно всего набора данных. Дополнительные сведения о статистической обработке с помощью других встроенных функций см. в разделе Использование встроенных функций отчета и агрегатных функций в выражениях (службы Reporting Services). Список встроенных функций см. в разделе Использование встроенных функций отчета и агрегатных функций в выражениях (службы Reporting Services).

Основные сведения об области по умолчанию

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

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

Представление конструктора: общий итог в обычной таблице

На этом рисунке показано выражение поля для столбцов Qty и LineTotal в ячейках текста табликса на нескольких строках. В следующем списке описаны области по умолчанию для выражений поля в каждой строке.

  • Строка 1. В этой строке отображаются метки столбцов, которые представляют собой статический текст. Область по умолчанию — область данных. Строка повторяется только один раз и иногда называется строкой заголовка.

  • Строка 2. В этой строке отображаются подробные данные, что отмечает соответствующий маркер строки (Маркер строки с 3 параллельными линиями для строки детализации). Область по умолчанию для столбца [Qty] — группа сведений, которая представляет собой данные в наборе данных, привязанном к этой области данных после применения всех фильтров наборов данных, области данных и групп. Эта строка повторяется один раз для каждой строки в результирующем наборе запроса к базе данных. Значение [Qty] представляет собой подробные данные из набора данных.

  • Строка 3. В этой строке отображаются статистические значения. Область по умолчанию для [Sum(Qty)] — это дочерняя группа строк Order. Эта строка повторяется один раз для каждого уникального значения номера заказа. Значение [Sum(Qty)] представляет собой статистическую сумму для каждого номера заказа.

  • Строка 4. В этой строке отображаются статистические значения. Область по умолчанию для [Sum(Qty)] — это родительская группа строк Date. Эта строка повторяется один раз для каждого уникального значения даты. Значение [Sum(Qty)] представляет собой статистическую сумму для каждой даты.

  • Строка 5. В этой строке отображаются статистические значения. Область по умолчанию для [Sum(Qty)] — это область данных. Строка повторяется только один раз и иногда называется строкой нижнего колонтитула. Значение [Sum(Qty)] представляет собой статистическую сумму для области данных.

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

Указание статистических вычислений с именованными областями

Чтобы указать область, отличную от области по умолчанию, укажите именованную область. Именованная область включает в себя имя набора данных, области данных или группы. Поскольку выражения обрабатываются с учетом контекста, указанная именованная область должна быть допустимой для встроенной функции. Каждая встроенная функция указывает, какие области допустимы в качестве параметров. Дополнительные сведения см. в разделах справки конкретных функций Использование встроенных функций отчета и агрегатных функций в выражениях (службы Reporting Services).

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

  • Набор данных отчета с именем Sales.

  • Табличная область данных с именем Tablix1, имеющая следующие группы.

    • Родительская группа строк с именем Category. Эта группа имеет дочернюю группу с именем Subcat.

    • Родительская группа столбцов с именем Geography. Эта группа имеет дочернюю группу с именем CountryRegion.

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

Матрица, вложенные группы строк и столбцов с итогами

На этом рисунке выбрана одна из ячеек. Для выбранной ячейки оранжевыми фигурными скобками группы показана самая внутренняя принадлежность к группе: группы Category и CountryRegion. Эта самая внутренняя принадлежность определяет область по умолчанию для данной ячейки. У выбранной ячейки также есть две серые групповые скобки, показывающие группы: группу строк Subcat и группу столбцов Geography. Группы, отмеченные серыми групповыми скобками, либо являются внешними группами по отношению к выделенной внутренней группе, либо находятся за пределами области выделенной ячейки.

Выделенная ячейка содержит следующее выражение: [Sum(LineTotal)]. В зависимости от области и выражения ячейки в отчете, готовом для просмотра, будет отображаться значение для текстового поля как сумма [LineTotal] для каждого конкретного значения Subcat в пределах каждого значения CountryRegion.

Изменить область для данной ячейки без замены функции Sum в выражении можно следующими способами.

  • Изменить область на набор данных Sales. Например, чтобы указать итог набора данных, потребовалось бы изменить выражение на следующее: =Sum(Fields!LineTotal.Value, "Sales").

  • Изменить область на всю область данных Tablix1. Например, чтобы вычислить долю в процентах, которую группа составляет от всей области данных, потребовалось бы изменить выражение на следующее: =Sum(Fields!LineTotal.Value)/Sum((Fields! LineTotal.Value),"Tablix1").

    В этом новом выражении числитель, Sum(Fields! LineTotal.Value), является суммой линейных итогов по каждой категории. Знаменатель, Sum((Fields! LineTotal.Value), "Tablix1"), является суммой линейных итогов для области данных. Результат — процентное соотношение каждой категории к области данных в целом.

    В выбранной ячейке для функции Sum можно указать одну из следующих областей групп: CountryRegion, Geography или Category. Нельзя указать область группы Subcat, поскольку ячейка находится в строке, не связанной с группой Subcat.

    Примечание

    Для агрегатной функции можно указать только одну область. Нельзя одновременно указать области «Category» и «Geography» в качестве областей для выражения знаменателя. Указание нескольких областей не поддерживается.

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

Примеры указания различных областей

В следующей таблице приведены примеры выражений, в которых используется область по умолчанию, область области данных и область набора данных. В примерах подразумевается, что существует область данных табликса с именем «Tablix1», набор данных с именем «Sales» и поле с именем «LineTotal», которое содержит итог для линейного элемента в заказе на продажу.

Описание

Выражение

Сумма итогов линейных элементов для текущей области.

=Sum(Field!LineTotal.Value)

Процентное соотношение суммы итогов линейных элементов для текущей области к сумме линейных итогов для области данных.

К этому значению применяется форматирование по умолчанию для текстового поля.

=Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Tablix1")

При размещении в строке, связанной с группой «CountryRegion»,

процентное соотношение суммы итогов линейных элементов для группы «CountryRegion» к сумме линейных итогов для группы «Geography».

К этому значению применяется формат отображения по умолчанию для текстового поля, которое должно иметь значение P1 в форме #.#%.

=Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Geography")

Процентное соотношение суммы итогов линейных элементов для текущей области к сумме линейных итогов для области данных.

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

=IIF(Sum(Field!LineTotal.Value)<=0,"", FormatPercent(Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Tablix1"),1)

Процентное соотношение суммы итогов линейных элементов для текущей области к сумме итогов линейных элементов для набора данных.

Это значение форматируется с помощью функции FormatPercent, указывая один десятичный разряд.

="Percentage contributing to all sales: " & FormatPercent(Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Sales"),1)

Подавление значения NULL или нулевых значений в ячейках

Во многих отчетах вычисления, выполняемые в областях групп, могут создавать множество ячеек с нулевыми значениями или значениями NULL. Чтобы уменьшить помехи в отчете, добавьте выражение, возвращающее пробелы при нулевых статистических значениях. Дополнительные сведения см. в подразделе «Примеры подавления значений NULL или нулевых значений» раздела Примеры выражений (службы Reporting Services).

См. также

Справочник

Примеры выражений (службы Reporting Services)

Основные понятия

Примеры выражений групп (службы Reporting Services)

Создание групп рекурсивной иерархии (службы Reporting Services)

Работа с областями данных табликса