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

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

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

    • Написание выражений с агрегатными функциями. Определяет агрегируемые данные. Расположение выражения в отчете влияет на то, какие данные оказываются в области для статистического вычисления.

    • Добавление спарклайнов в таблицу или матрицу. Определяет границы диапазонов для осей диаграммы для выравнивания вложенных экземпляров в таблице или матрице.

    • Добавление индикаторов в таблицу или матрицу. Определяет минимальный и максимальный масштаб датчиков для выравнивания вложенных экземпляров в таблице или матрице.

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

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

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

    • Добавление переключаемых элементов. Определяет текстовое поле для добавления переключателя, управляющего видимостью элемента отчета. Можно добавить переключатель только для текстового поля, которое находится в области соответствующего элемента отчета.

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

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

ПримечаниеПримечание

В построителе отчетов и в конструкторе отчетов среды Business Intelligence Development Studio можно создавать и изменять определения отчета (RDL). В каждой среде разработки существуют различные способы создания, открытия и сохранения отчетов и связанных элементов. Дополнительные сведения см. в разделе Разработка отчетов в построителе отчетов и конструкторе отчетов 3.0 (SSRS) на веб-сайте microsoft.com.

В данной статье

Основные сведения об области данных, иерархии данных и выражениях

Указание областей для агрегатных функций

Примеры статистических выражений для табличной области данных

Синхронизация шкал для спарклайнов

Синхронизация диапазонов для индикаторов

Указание областей для верхних и нижних колонтитулов

Указание переключателей для углубленной детализации и условной видимости

Указание выражений сортировки для синхронизации порядка сортировки

Запрет значений NULL и нулевых значений

Общие сведения об области данных и иерархии данных

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

  • Наборы данных после применения фильтров. Определяет набор данных отчета, связанный с областью данных или элементом отчета в тексте отчета. Данные для статистической обработки берутся из набора данных отчета после применения к ним критериев фильтра. Для общих наборов данных это означает как фильтры в определении общих наборов данных, так и фильтры в экземплярах наборов данных в отчете.

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

  • Группы областей данных после применения фильтров группы. Определяют данные после применения выражений группы и фильтров группы к родительской и дочерним группам. Для таблицы это группы строк и столбцов. Для диаграммы это группы рядов и категорий. Для идентификации вложенности области каждая родительская группа содержит дочернюю группу.

  • Вложенные области данных   Определяют данные для вложенной области данных в контексте ячейки, к которой они добавляются после применения фильтра вложенной области данных и выражений сортировки.

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

Знания иерархии областей важно при написании выражений с агрегатными функциями.

Выражения и область ячейки

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

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

  • Область по умолчанию. Данные, входящие в область для вычисления, когда обработчик отчетов обработает выражение. Область по умолчанию – это набор групп с наибольшим уровнем вложенности, к которому принадлежит ячейка или точка данных . Для области данных табликса этот набор групп может включать группы строк и столбцов. Для диаграммной области данных этот набор может включать группы категорий и рядов.

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

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

В некоторых местах отчетах необходимо указать область. Например, для текстового поля в области конструктора необходимо указать имя используемого набора данных. =Max(Fields!Sales.Value,"Dataset1"). В других местах это будет неявно заданная область по умолчанию. Напримеер, если не будет задан агрегат для текстового поля в области группы, будет использован агрегатная функция First.

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

Примеры статистических выражений для табличной области данных

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

  • Заголовок таблицы, содержащий угловую ячейку и три строки, включающие в себя заголовки групп столбцов.

  • Две вложенные группы строк, связанные с категорией Cat и подкатегорией SubCat.

  • Две вложенные группы столбцов, связанные с годом Year и кварталом Qtr..

  • Один столбец со статическими итоговыми значениями под названием Totals.

  • Одна смежная группа столбцов, связанная с местами продаж Territory.

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

Табликс с вложенными группами строк и ячейками с метками

Пусть набор данных — это DataSet1 и таблица — это Tablix1. В следующей таблице указаны метка ячейки, область по умолчанию и примеры. Значения для текста заполнителя показаны в синтаксисе выражения.

Ячейка

Область данных по умолчанию

Метка заполнителя

Текст или значение заполнителя

C01

Tablix1

[Sum(Qty)]

Агрегаты и область

=Sum(Fields!Qty.Value)

C02

Внешняя группа столбцов "Year"

[Year]

([YearQty])

=Fields!Year.Value

=Sum(Fields!Qty.Value)

C03

Tablix1

[Sum(Qty)]

Totals

=Sum(Fields!Qty.Value)

C04

Группа соседних столбцов "Territory"

([Total])

Territory

=Sum(Fields!Qty.Value)

C05

Внутренняя группа "Qtr"

[Qtr]

([QtrQty])

Q

=Fields!Qtr.Value

=Sum(Fields!Qty.Value)

C06

Группа соседних столбцов "Territory"

[Territory]

([Tty])

[Pct]

=Fields!Territory.Value

=Sum(Fields!Qty.Value)

=FormatPercent(Sum(Fields!Qty.Value,"Territory")/Sum(Fields!Qty.Value,"Tablix1"),0) & " of " & Sum(Fields!Qty.Value,"Tablix1")

C07

Внешняя группа строк "Cat"

[Cat]

[Sum(Qty)]

=Fields!Cat.Value

=Sum(Fields!Qty.Value)

C08

Совпадает с C07

C09

Внешняя группа строк "Cat" и внутренняя группа столбцов "Qtr"

[Sum(Qty)]

=Sum(Fields!Qty.Value)

C10

Совпадает с C07

<<Expr>>

=Sum(Fields!Qty.Value) & ": " & FormatPercent(Sum(Fields!Qty.Value)/Sum(Fields!Qty.Value,"Tablix1"),0) & " of " & Sum(Fields!Qty.Value,"Tablix1")

C11

Внешняя группа строк "Cat" и группа столбцов "Territory"

<<Expr>>

=Sum(Fields!Qty.Value) & ": " & FormatPercent(Sum(Fields!Qty.Value)/Sum(Fields!Qty.Value,"Territory"),0) & " of " & Sum(Fields!Qty.Value,"Territory")

C12

Внутренняя группа строк "Subcat"

[Subcat]

[Sum(Qty)]

=Fields!SubCat.Value

=Sum(Fields!Qty.Value)

C13

Внутренняя группа строк "Subcat" и внутренняя группа столбцов "Qtr"

[Sum(Qty)]

=Sum(Fields!Qty.Value)

C14

Внутренняя группа строк "Subcat"

<<Expr>>

=Sum(Fields!Qty.Value) & ": " & FormatPercent(Sum(Fields!Qty.Value)/Sum(Fields!Qty.Value,"Cat"),0) & " of " & Sum(Fields!Qty.Value,"Cat")

C15

Внутренняя группа строк "Subcat" и группа столбцов "Territory"

<<Expr>>

=Sum(Fields!Qty.Value) & ": " & FormatPercent(Code.CalcPercentage(Sum(Fields!Qty.Value),Sum(Fields!Qty.Value,"Cat")),0) & " of " & Sum(Fields!Qty.Value,"Cat")

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

Значок стрелки, используемый со ссылкой «В начало»В начало

Синхронизация шкал для спарклайнов

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

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

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

Значок стрелки, используемый со ссылкой «В начало»В начало

Синхронизация диапазонов для индикаторов

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

Дополнительные сведения см. в разделе Как установить область синхронизации (построитель отчетов версии 3.0 и службы SSRS).

Значок стрелки, используемый со ссылкой «В начало»В начало

Указание областей для верхних и нижних колонтитулов

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

Для этого существует глобальная коллекция ReportItems. Это набор текстовых полей на текущей странице.

Дополнительные сведения см. в разделах Добавление верхних и нижних колонтитулов страницы (построитель отчетов версии 3.0 и службы SSRS) и Использование ссылок на коллекцию ReportItems (построитель отчетов версии 3.0 и службы SSRS).

Значок стрелки, используемый со ссылкой «В начало»В начало

Указание переключателей для углубленной детализации и условной видимости

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

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

Дополнительные сведения см. в разделе Как добавить действие «Развернуть/свернуть» к элементу (построитель отчетов версии 3.0 и службы SSRS).

Значок стрелки, используемый со ссылкой «В начало»В начало

Указание выражений сортировки для синхронизации порядка сортировки

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

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

Значок стрелки, используемый со ссылкой «В начало»В начало

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

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

Значок стрелки, используемый со ссылкой «В начало»В начало