Поделиться через


Глобальные коллекции для выражений в отчетах (конструктор отчетов Visual Studio)

Выражения для определений отчета, обрабатываемых элементами управления ReportViewer, могут включать ссылки на коллекции глобальных объектов. Существует пять коллекций глобальных объектов, которые можно использовать в выражениях: Fields, Globals, Parameters, ReportItems и User. Чтобы получить доступ к этим коллекциям, можно использовать стандартный синтаксис коллекций Visual Basic. Ниже приведены примеры использования этого синтаксиса.

  • Коллекция!ИмяОбъекта

    =User!Language

  • Коллекция.Элемент("ИмяОбъекта")

    =User.Item("Language")

  • Коллекция("ИмяОбъекта")

    =User("Language")

Можно также использовать синтаксис свойств для получения доступа к элементам коллекций Globals и User. Далее приведен пример.

  • Коллекция.ИмяОбъекта

    =Globals.PageNumber

Элементы коллекций Globals и Users возвращают тип variant. Если нужно использовать глобальную переменную в выражении, требующем определенный тип данных, необходимо сначала привести переменную. Например, CDate(Globals!ExecutionTime).

Fields

Коллекция Fields содержит поля в пределах текущего источника данных. Обычно они используются для отображения данных в текстовых полях отчета, но могут также использоваться и для других элементов, свойств и функций отчета. Элементы коллекции Fields имеют два свойства: Value и IsMissing. Свойство Value возвращает значение, которое было получено для поля в источнике данных. Свойство IsMissing показывает, существует ли это поле в источнике данных. Это полезно для запросов, возвращающих переменные наборы полей. Параметр Value для отсутствующих полей имеет значение Null.

Чаще всего для доступа к объекту поля используется синтаксис свойств, например Fields!Product.Value. Можно также использовать синтаксис коллекций, описанный выше. Некоторые источники данных обеспечивают дополнительные свойства полей. Доступ к этим свойствам можно получить, используя синтаксис коллекций. Если свойство не поддерживается источником данных или поле не найдено при выполнении запроса, свойствам типов String и Object присваивается значение Null, а свойствам типа Integer присваивается значение 0.

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

Globals

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

Член Тип Описание

ExecutionTime

DateTime

Дата и время начала выполнения отчета.

PageNumber

Integer

Текущий номер страницы. Может использоваться только в верхнем и нижнем колонтитуле страницы.

ReportFolder

String

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

ReportName

String

Имя отчета в том виде, в каком оно хранится в базе данных сервера отчетов. Этот элемент применяется только к серверным отчетам.

ReportServerUrl

String

URL-адрес сервера отчетов, на котором выполняется отчет. Этот элемент применяется только к серверным отчетам.

TotalPages

Integer

Общее число страниц в отчете. Может использоваться только в верхнем и нижнем колонтитуле страницы.

Далее приведены примеры глобальных переменных.

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

    =Globals.PageNumber & " of " & Globals.TotalPages
    
  • Это выражение сообщает имя отчета и время его выполнения. Время представляется в формате короткой даты платформы .NET Framework:

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

Parameters

Коллекция Parameters содержит параметры отчета. Параметры могут использоваться в фильтрах или в других функциях, изменяющих внешний вид отчета соответственно значению параметра. Элементы коллекции Parameters имеют два свойства: Value и Label. Свойство Value возвращает значение параметра, например EmployeeID. Свойство Label возвращает удобную для пользователя метку параметра, например EmployeeName. Если метка не указана, значение свойства Label совпадает со свойством Value. Если более одной метки ассоциировано с одним и тем же значением, используется первая совпадающая метка. Получить доступ к параметрам можно при помощи синтаксиса свойств или синтаксиса коллекций.

ReportItems

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

Ниже приведен пример выражения элемента отчета.

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

    =ReportItems!Textbox1.Value
    

User

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

Член Тип Описание

Language

String

Идентификатор языка пользователя, выполняющего отчет.

UserID

String

Идентификатор пользователя, запустившего отчет.

См. также

Понятия

Элементы управления ReportViewer (Visual Studio)
Использование выражений в отчете (конструктор отчетов Visual Studio)
Определение параметров в отчете (конструктор отчетов Visual Studio)
Добавление колонтитулов страниц в отчет (конструктор отчетов Visual Studio)
Настройка ReportViewer для удаленной обработки