Применение встроенных коллекций в выражениях (построитель отчетов версии 3.0 и службы SSRS)

В выражение в отчете можно включить ссылки на следующие встроенные коллекции: ReportItems, Parameters, Fields, DataSets, DataSources, Variables и встроенные поля для общих сведений, таких как имя отчета. В диалоговом окне Выражения отображаются не все коллекции. Коллекции DataSets и DataSources доступны только во время выполнения для отчетов, опубликованных на сервере отчетов. Коллекция ReportItems является коллекцией текстовых полей в области отчета, например текстовых полей на странице или в верхнем колонтитуле.

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

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

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

Основные сведения о встроенных коллекциях

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

Встроенная коллекция

Категория в диалоговом окне «Выражение»

Пример

Описание

Globals

Встроенные поля

=Globals.ReportName

- or -

=Globals.PageNumber

Представляет глобальные переменные, полезные для отчетов, например для имени отчета или номера страницы. Доступна всегда.

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

User

Встроенные поля

=User.UserID

— или —

=User.Language

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

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

Parameters

Параметры

=Parameters("ReportMonth").Value

— или —

=Parameters!ReportYear.Value

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

Fields(<Dataset>)

Поля

=Fields!Sales.Value

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

DataSets

Не отображается

=DataSets("TopEmployees").CommandText

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

DataSources

Не отображается

=DataSources("AdventureWorks").Type

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

Variables

Variables

=Variables!CustomTimeStamp.Value

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

ReportItems

Не отображается

=ReportItems("Textbox1").Value

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

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

Чтобы обратиться к коллекции из выражения, можно использовать стандартный синтаксис Microsoft Visual Basic для элемента в коллекции. В следующей таблице показаны примеры синтаксиса коллекций.

Синтаксис

Пример

Collection!ObjectName.Property

=Fields!Sales.Value

Collection!ObjectName("Property")

=Fields!Sales("Value")

Collection("ObjectName").Property

=Fields("Sales").Value

Collection("Member")

=User("Language")

Collection.Member

=User.Language

Передача встроенных коллекций в пользовательские сборки

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

  • Пространство имен: Microsoft.ReportingServices.ReportProcessing.ReportObjectModel

  • Сборка (локальный отчет): Microsoft.ReportingServices.ProcessingObjectModel.dll

  • Сборка (серверный отчет): Microsoft.ReportViewer.ProcessingObjectModel.dll

Содержимое коллекций Fields и ReportItems может изменяться динамически во время выполнения, поэтому не следует рассчитывать на то, что это содержимое остается правильным в промежутках от одного вызова пользовательской сборки к другому (например, в переменной экземпляра). Те же рекомендации применяются, как правило, для всех встроенных коллекций.