Встроенные коллекции — глобальные и пользовательские ссылки в отчете с разбивкой на страницы (построитель отчетов)

Область применения: ✔️ Построитель отчетов Microsoft (SSRS) ✔️ Построитель отчетов Power BI ✔️ Конструктор отчетов в SQL Server Data Tools

Встроенная коллекция полей, включающая как коллекцию Глобальные переменные, так и коллекцию Пользователь, представляет глобальные значения, предоставленные службами Reporting Services при обработке отчета с разбивкой на страницы. Коллекция Globals предоставляет такие значения, как имя отчета, время начала обработки отчета и текущее количество страниц для верхнего или нижнего колонтитула отчета. Коллекция User предоставляет идентификатор пользователя и параметры языка. Эти значения можно использовать в выражениях для фильтрации результатов отчета.

Примечание

Создать и изменить определение для отчета на страницу (RDL-файл) можно с помощью построителя отчетов (Майкрософт), построителя отчетов Power BI и конструктора отчетов в SQL Server Data Tools.

Использование коллекции Globals

Коллекция Globals содержит глобальные переменные отчета. В области конструктора эти переменные отображаются с префиксом & (амперсандом), например [&ReportName]. Следующая таблица описывает элементы коллекции Globals .

Член Тип Описание
ExecutionTime DateTime Дата и время начала выполнения отчета.
PageNumber Целое число Номер текущей страницы относительно разрывов страниц, сбрасывающих номера страниц. В начале обработки отчета исходное значение устанавливается равным 1. Номер страницы наращивается для каждой страницы, подготовленной к просмотру.

Чтобы страницы для прямоугольника, области данных, группы областей данных или карты нумеровались в составе разрывов страниц, после определения свойства PageBreak задайте значение свойства ResetPageNumber, равное True. Не поддерживается для иерархии групп столбцов табликса.

Свойство PageNumber может использоваться только в выражении в верхнем колонтитуле страницы или в нижнем колонтитуле страницы.
ReportFolder String Полный путь к папке, содержащей отчет. Не включает в себя URL-адрес сервера отчетов.
ReportName String Имя отчета в том виде, в каком оно хранится в базе данных сервера отчетов.
ReportServerUrl String URL-адрес сервера отчетов, на котором выполняется отчет.
TotalPages Целое число Общее количество страниц относительно разрывов страниц, которые сбрасывают значение PageNumber. Если разрывы страниц не заданы, то это значение совпадает с OverallTotalPages.

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

PageName может использоваться только в выражении в верхнем колонтитуле страницы или в нижнем колонтитуле страницы.
OverallPageNumber Целое число Номер текущей страницы в масштабе всего отчета. На это значение не влияет значение ResetPageNumber.

Свойство OverallPageNumber может использоваться только в выражении в верхнем колонтитуле страницы или в нижнем колонтитуле страницы.
OverallTotalPages Целое число Общее число страниц, относящееся ко всему отчету. На это значение не влияет значение ResetPageNumber.

Свойство OverallTotalPages может использоваться только в выражении в верхнем колонтитуле страницы или в нижнем колонтитуле страницы.
RenderFormat RenderFormat Информация о текущем запросе на подготовку к просмотру.

Дополнительные сведения см. в подразделе «RenderFormat» следующего раздела.

Элементы коллекции Globals возвращают тип variant. Если нужно использовать элемент этой коллекции в выражении, требующем определенный тип данных, необходимо сначала привести переменную. Например, чтобы преобразовать тип данных времени выполнения variant в формат Date, используйте синтаксис =CDate(Globals!ExecutionTime). Дополнительные сведения см. в разделе Типы данных в выражениях (построитель отчетов и службы SSRS).

RenderFormat

В следующей таблице приведены описания элементов для RenderFormat.

Член Type Описание
Имя String Имя модуля подготовки, зарегистрированное в файле конфигурации RSReportServer.

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

Строковые значения могут быть заданы с помощью ключа или индекса в коллекции.

Примеры

Следующие примеры показывают использование ссылки на коллекцию Globals в выражении.

  • Это выражение, помещенное в текстовое поле нижнего колонтитула отчета, содержит номер страницы и общее количество страниц в отчете:

    =Globals.PageNumber & " of " & Globals.TotalPages

  • Это выражение сообщает имя отчета и время его выполнения. Время представляется в формате короткой даты платформы Microsoft .NET Framework:

    =Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")

  • Это выражение, помещенное в диалоговое окно Видимость столбца для выделенного столбца, отображает при экспорте в Excel только столбец. В противном случае столбец будет скрыт.

    EXCELOPENXML относится к формату Excel, который используется в Office 2007. EXCEL означает формат Excel, который используется в Office 2003.

    =IIF(Globals!RenderFormat.Name = "EXCELOPENXML" OR Globals!RenderFormat.Name = "EXCEL", false, true)

Использование коллекции User

Коллекция User содержит данные о пользователе, выполняющем отчет. Эту коллекцию можно использовать для фильтрации данных, появляющихся в отчете; например, можно отобразить только данные текущего пользователя или отобразить идентификатор пользователя, к примеру, в заголовке отчета. В области конструктора эти переменные отображаются с префиксом & (амперсандом), например [&UserID].

Следующая таблица описывает элементы коллекции User .

Член Тип Описание
Язык String Язык пользователя, выполняющего отчет. Например, en-US.
UserID String Идентификатор пользователя, запустившего отчет. Если используется проверка подлинности Windows, то это значение является учетной записью домена текущего пользователя. Значение определяется модулем безопасности построителя отчетов, который может использовать проверку подлинности Windows или нестандартную проверку подлинности.

Использование параметров локали

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

Примечание

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

Определение переменной UserID для моментального снимка или отчетов журнала

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

См. также:

Выражения (построитель отчетов и службы SSRS)
Диалоговое окно «Выражение» (построитель отчетов)
Типы данных в выражениях (построитель отчетов и службы SSRS)
Форматирование чисел и дат (построитель отчетов и службы SSRS)
Примеры выражений (построитель отчетов и службы SSRS)