Применение встроенных коллекций в выражениях (построитель отчетов версии 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 может изменяться динамически во время выполнения, поэтому не следует рассчитывать на то, что это содержимое остается правильным в промежутках от одного вызова пользовательской сборки к другому (например, в переменной экземпляра). Те же рекомендации применяются, как правило, для всех встроенных коллекций.