Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется к: Microsoft Report Builder (SSRS)
Power BI Report Builder
Конструктор отчетов в SQL Server Data Tools
При написании выражений вы обнаружите, что термин scope используется в нескольких контекстах в отчетах с разбивкой на страницы. Область может определять данные, используемые для вычисления выражения, набор текстовых полей на отрисованной странице, а также набор элементов отчета, которые могут отображаться или скрываться в зависимости от переключателя. Термин область используется в разделах о вычислении выражений, синтаксисе агрегатных функций, условной видимости и в сообщениях об ошибках, связанных с этими темами. Ниже приводится описание различий в употреблении термина область .
Область данных . Иерархия областей, используемых обработчиком отчетов при объединении данных и макета отчета для построения областей данных, например таблиц и диаграмм, в которых отображаются данные. Знание области данных помогает достичь ожидаемого результата при следующих действиях.
Напишите выражения, использующие агрегатные функции Укажите, какие данные агрегировать. Расположение выражения в отчете влияет на то, какие данные входят в область действия агрегатных вычислений.
Добавьте спарклайны в таблицу или матрицу Укажите минимальное и максимальное значения диапазона для осей диаграммы, чтобы выровнять вложенные экземпляры в таблице или матрице.
Добавление индикаторов в таблицу или матрицу Укажите минимальное и максимальное значения шкалы индикатора для выравнивания вложенных элементов в таблице или матрице.
Написание выражений сортировки . Определяют включающую область, которую можно использовать для синхронизации порядка сортировки нескольких связанных элементов отчета.
Область ячейки Область ячейки — это набор групп строк и столбцов в области данных табликса, к которым принадлежит ячейка. По умолчанию в каждой ячейке табликса есть текстовое поле. Значением текстового поля является выражение. Положение ячейки косвенно определяет область данных, которая может быть указана в выражении для статистического вычисления.
Область элементов отчета . Указывает набор элементов на подготовленной странице отчета. Обработчик отчетов объединяет данные и элементы макета отчета для получения скомпилированного определения отчета. Во время этого процесса области данных, например таблицы или матрицы, расширяются таким образом, чтобы показать все данные отчета. После этого скомпилированный отчет обрабатывается модулем подготовки отчета. Модуль подготовки отчета определяет, какие элементы отчета будут показаны на каждой странице. На сервере отчетов каждая страница отображается по мере ее просмотра. При экспорте отчета к просмотру подготавливаются все страницы. Знание области элементов отчета помогает достичь ожидаемого результата при следующих действиях.
Добавление переключаемых элементов . Определяет текстовое поле для добавления переключателя, управляющего видимостью элемента отчета. Переключатель можно добавить только к текстовым полям, находящимся в области действия элемента отчета, который требуется переключать.
Написание выражений в верхних и нижних колонтитулах страницы . Определяет значения в выражениях в текстовых полях или других элементах отчета, отображающихся на подготовленной странице.
Знание областей помогает правильно писать выражения для получения ожидаемого результата.
Примечание.
Файлы определения страничных отчетов (.rdl) можно создавать и изменять в Microsoft Report Builder, Power BI Report Builder и в конструктор отчетов в SQL Server Data Tools.
Общие сведения об области данных и иерархии данных
Область данных задает набор данных для отчета. Область данных имеет естественную иерархию с присущим ей отношением вложенности. Области, расположенные выше в иерархии, содержат области, расположенные ниже в иерархии. Следующий список областей данных описывает иерархию по убыванию количества данных.
Наборы данных после применения фильтров . Определяет набор данных отчета, связанный с областью данных или элементом отчета в тексте отчета. Данные для статистической обработки берутся из набора данных отчета после применения к ним критериев фильтра. Для общих наборов данных это означает как фильтры в определении общих наборов данных, так и фильтры в экземплярах наборов данных в отчете.
Области данных . Задает данные из области данных после применения к ним фильтра и выражений сортировки. При вычислении агрегатов для областей данных групповые фильтры не используются.
Группы областей данных после применения фильтров групп Определяет данные после применения выражений групп и фильтров групп к родительской и дочерним группам. Для таблицы это группы строк и столбцов. Для диаграммы это группы рядов и категорий. Для определения вложенности областей видимости каждая родительская группа содержит свои дочерние группы.
Вложенные области данных Определяют данные для вложенной области данных в контексте ячейки, к которой они добавляются после применения фильтра вложенной области данных и выражений сортировки.
Группы строк и столбцов для вложенных областей данных . Определяет данные после применения выражений группы вложенной области данных и групповых фильтров.
Важно понимать внешние и вложенные области видимости при создании выражений, содержащих агрегатные функции.
Область видимости ячейки и выражения
При указании области определяются данные, которые обработчик отчетов будет использовать при статистическом вычислении. В зависимости от выражения и расположения выражения правильная область может быть включающей областью(родительской областью) или включенной областью(дочерней или вложенной областью). Как правило, в агрегатном вычислении нельзя указать конкретный экземпляр группы. Можно указать агрегированное значение по всем экземплярам группы.
Когда обработчик отчетов комбинирует данные из набора данных отчета с областью данных табликса, он вычисляет выражения группы и создает строки и столбцы, необходимые для представления экземпляров группы. Значение выражений в текстовом поле в каждой ячейке табликса вычисляется в контексте области ячейки. В зависимости от структуры табликса ячейка может принадлежать нескольким группам строк или столбцов. Для агрегатных функций можно указать используемую область с помощью одной из следующих областей:
Область действия по умолчанию Данные, находящиеся в области действия вычислений, когда обработчик отчетов вычисляет выражение. Контекст по умолчанию — это самый внутренний набор групп, к которому принадлежит ячейка или точка данных. Для области данных табликса этот набор групп может включать группы строк и столбцов. Для диаграммной области данных этот набор может включать группы категорий и рядов.
Именованная область Имя набора данных, области данных или группы области данных, входящих в область выражения. Для статистического вычисления можно указать включающую область. Нельзя в одном выражении указать именованную область как для групп строк, так и для групп столбцов. Нельзя указать вложенную область, если только выражение не предназначено для вложенного агрегата.
Следующее выражение вычисляет интервал в годах между SellStartDate и LastReceiptDate. Эти поля находятся в разных наборах данных — DataSet1 и DataSet2. Функция First (построитель отчетов и службы SSRS), являющаяся агрегатной функцией, возвращает первое значение SellStartDate в DataSet1 и первое значение LastReceiptDate в DataSet2.
=DATEDIFF("yyyy", First(Fields!SellStartDate.Value, "DataSet1"), First(Fields!LastReceiptDate.Value, "DataSet2"))Доменная область . Область синхронизации. Тип области данных, применяемой к вычислению выражения для вложенных областей данных. Область действия домена используется для задания агрегирования по всем экземплярам группы, чтобы можно было выровнять вложенные экземпляры и легко их сравнивать. Например, можно выровнять диапазон и высоту для sparkline-графиков в таблице так, что значения будут идти параллельно.
В некоторых частях отчета необходимо указать область действия. Например, для текстового поля на поверхности конструктора необходимо указать имя используемого набора данных: =Max(Fields!Sales.Value,"Dataset1"). В остальных случаях используется область видимости по умолчанию, заданная неявно. Например, если для текстового поля в контексте группы не указан агрегат, по умолчанию используется агрегат First.
Во всех разделах по агрегатным функциям указаны области, допустимые для их использования. Дополнительные сведения см. в статье Справочник по агрегатным функциям (Построитель отчетов и SSRS).
Примеры статистических выражений для табличной области данных
Для написания выражений, которые задают области, не являющиеся областями по умолчанию, требуется практика. Сведения о различных областях приведены на следующем рисунке и таблице. На рисунке показана каждая ячейка в таблице данных по продажам, показывающей количество всех проданных товаров за год и за квартал по месту продажи. Обратите внимание на визуальные индикаторы на маркерах строк и столбцов, отображающие структуру групп строк и столбцов и показывающие наличие вложенных групп. Таблица имеет следующую структуру:
Заголовок таблицы, содержащий угловую ячейку и три строки, включающие в себя заголовки групп столбцов.
Две вложенные группы строк, связанные с категорией Cat и подкатегорией SubCat.
Две вложенные группы столбцов по году с именем Year и по кварталу с именем Qtr.
Один столбец со статическими итоговыми значениями под названием Totals.
Одна смежная группа столбцов, связанная с местами продаж Territory.
Заголовок столбца для территориальной группы разбит на две ячейки для удобства просмотра. Первая ячейка отображает название территории и итоговые значения, а вторая содержит текст-заполнитель, в котором вычисляется процентный вклад каждой территории в общий объём продаж.
Пусть набор данных — это DataSet1 и таблица — это Tablix1. В следующей таблице указаны метка ячейки, область по умолчанию и примеры. Значения для текста-заполнителя отображаются с использованием синтаксиса выражений.
| Ячейка | Область по умолчанию | Метки заполнителя | Текст или значение заполнителя |
|---|---|---|---|
| C01 | Tablix1 | [Сумма(Кол-во)] | Агрегаты и область=Sum(Fields!Qty.Value) |
| C02 | Внешняя группа столбцов "Год" | [Year] ([YearQty]) |
=Fields!Year.Value=Sum(Fields!Qty.Value) |
| C03 | Tablix1 | Сумма(Количество) | Итоги=Sum(Fields!Qty.Value) |
| C04 | Группа соседних столбцов "Territory" | ([Всего]) | Территория=Sum(Fields!Qty.Value) |
| C05 | Внутренняя группа "Qtr" | [Qtr] ([QtrQty]) |
Q=Fields!Qtr.Value=Sum(Fields!Qty.Value) |
| C06 | Группа соседних столбцов "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" | [Кот] Сумма(Кол-во) |
=Fields!Cat.Value=Sum(Fields!Qty.Value) |
| C08 | Совпадает с C07 | ||
| C09 | Внешняя группа строк "Cat" и внутренняя группа столбцов "Qtr" | Сумма(Кол-во) | =Sum(Fields!Qty.Value) |
| К10 | Совпадает с C07 | <<Экспр>> | =Sum(Fields!Qty.Value) & ": " & FormatPercent(Sum(Fields!Qty.Value)/Sum(Fields!Qty.Value,"Tablix1"),0) & " of " & Sum(Fields!Qty.Value,"Tablix1") |
| C11 | Внешняя группа строк "Cat" и группа столбцов "Territory" | <<Экспр>> | =Sum(Fields!Qty.Value) & ": " & FormatPercent(Sum(Fields!Qty.Value)/Sum(Fields!Qty.Value,"Territory"),0) & " of " & Sum(Fields!Qty.Value,"Territory") |
| C12 | Внутренняя группа строк "Subcat" | [Subcat] [Сумма(Кол-во)] |
=Fields!SubCat.Value=Sum(Fields!Qty.Value) |
| C13 | Внутренняя группа строк "Subcat" и внутренняя группа столбцов "Qtr" | [Сумма(Кол-во)] | =Sum(Fields!Qty.Value) |
| C14 | Внутренняя группа строк "Subcat" | <<Экспр>> | =Sum(Fields!Qty.Value) & ": " & FormatPercent(Sum(Fields!Qty.Value)/Sum(Fields!Qty.Value,"Cat"),0) & " of " & Sum(Fields!Qty.Value,"Cat") |
| C15 | Внутренняя группа строк "Subcat" и группа столбцов "Territory" | <<Экспр>> | =Sum(Fields!Qty.Value) & ": " & FormatPercent(Code.CalcPercentage(Sum(Fields!Qty.Value),Sum(Fields!Qty.Value,"Cat")),0) & " of " & Sum(Fields!Qty.Value,"Cat") |
Дополнительные сведения о том, как интерпретировать визуальные элементы в областях данных табликса, см. в статье Ячейки, строки и столбцы области данных табликса (Построитель отчетов) и SSRS. Дополнительные сведения об области данных «табликс» см. в разделе Ячейки, строки и столбцы области данных «табликс» (построитель отчетов) и SSRS. Дополнительные сведения о выражениях и агрегатных функциях см. в разделах Использование выражений в отчетах (построитель отчетов и SSRS) и Справочник по агрегатным функциям (построитель отчетов и SSRS).
Синхронизация шкал для спарклайнов
Для сравнения значений в разное время по горизонтальной оси в спарклайн-графике, вложенном в таблицу или матрицу, можно синхронизировать значения групп категорий. Это называется выравниванием осей. При выборе параметра выравнивания осей отчет автоматически задает минимальное и максимальное значения для оси, а также добавляет заполнители для агрегированных значений, которые присутствуют не во всех категориях. Это приводит к выравниванию значений в спарклайне во всех категориях и позволяет сравнивать значения в каждой строке агрегированных данных. При выборе этого варианта область вычисления выражения изменяется на доменную область. Настройка доменной области для вложенных графиков также косвенно управляет назначением цветов для каждой категории в условных обозначениях.
Например, предположим, в спарклайн-графике, показывающем недельные тренды, есть данные о продажах для одного города за 3 месяца и для другого города за 12 месяцев. Без синхронизации шкал спарклайн для первого города содержал бы только 3 столбца, которые были бы значительно шире и занимали бы столько же места, сколько набор из 12 столбцов за 12 месяцев для второго города.
Дополнительные сведения см. в разделе Выравнивание данных в диаграмме в таблице или матрице (построитель отчетов и службы SSRS).
Синхронизация диапазонов для индикаторов
Для указания значений данных, используемых в наборе индикаторов, необходимо указать область. В зависимости от макета области данных, содержащей индикатор, вы указываете область действия или объемлющую область действия. Например, в строке заголовка группы, связанной с категорией продаж, набор стрелок (вверх, вниз, влево, вправо) может показывать объем продаж относительно порогового значения. Включающая область — это имя таблицы или матрицы, содержащих индикаторы.
Дополнительные сведения см. в статье Задание области синхронизации (построитель отчетов и SSRS).
Указание области действия из верхнего или нижнего колонтитула
Для отображения разных данных на разных страницах отчета добавляются выражения для элементов отчета, которые должны быть на подготовленных для просмотра страницах. Поскольку отчет разбивается на страницы в процессе подготовки к просмотру, определить, какие элементы находятся на странице, можно только во время подготовки. Например, ячейка в строке сведений содержит текстовое поле, которое многократно повторяется на странице.
Для этого существует глобальная коллекция ReportItems. Это набор текстовых полей на текущей странице.
Дополнительные сведения см. в разделах Верхние и нижние колонтитулы страниц (построитель отчетов и SSRS) и Ссылки на коллекцию ReportItems (построитель отчетов и SSRS).
Указание переключаемых элементов для углубленной детализации и условной видимости
Переключатель — это изображение плюса или минуса, добавляемое к текстовому полю, которое можно щелкнуть для того, чтобы отобразить или спрятать другие элементы отчета. На странице Видимость для большинства свойств элементов отчета можно указать, для какого элемента отчета следует добавить переключатель. Элемент-переключатель должен находиться в области вложенности более высокого уровня, чем элемент, который нужно показать или скрыть.
В области данных tablix, чтобы создать эффект детализации по запросу, при котором таблица разворачивается и показывает больше данных при щелчке по текстовому полю, необходимо задать для группы свойство Visibility и выбрать в качестве переключателя текстовое поле в заголовке группы, связанной с содержащей группой.
Дополнительные сведения см. в разделе Добавление действия «Развернуть» или «Свернуть» для элемента (Построитель отчетов и SSRS).
Указание выражений сортировки для синхронизации порядка сортировки
При добавлении кнопки интерактивной сортировки для столбца таблицы можно синхронизовать сортировку для нескольких элементов, имеющих общую включающую область. Например, можно добавить кнопку к заголовку столбца матрицы и указать включающую область в виде названия набора данных, привязанного к матрице. Когда пользователь нажимает кнопку сортировки, сортируются не только строки в матрице, но и группы рядов диаграмм, связанные с тем же набором данных. Таким образом, все области данных, связанные с набором данных, могут быть синхронизированы для отображения в одинаковом порядке сортировки.
Дополнительные сведения см. в статье Фильтрация, группировка и сортировка данных (Построитель отчетов и SSRS).
Подавление значений NULL или нулевых значений в ячейке
Во многих отчетах вычисления с областью действия на уровне групп могут создавать множество ячеек со значениями 0 или NULL. Чтобы уменьшить помехи в отчете, добавьте выражение, возвращающее пробелы при нулевых статистических значениях. Дополнительные сведения см. в разделе "Примеры подавления значений NULL или нулевых значений" статьи Примеры выражений (построитель отчетов и SSRS).
Связанный контент
- Примеры выражений в страницированных отчётах Report Builder
- Примеры выражений группы в отчетах с разбивкой на страницы (построитель отчетов)
- Создание рекурсивных иерархических групп в страницированном отчёте (Report Builder)
- Таблицы, матрицы и списки в страницированных отчётах Report Builder
- Форматирование текста и заполнителей в отчетах с разбивкой на страницы (построитель отчетов)