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


Использование в выражениях ссылок на коллекцию ReportItems (службы Reporting Services)

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

Использования свойства значения ReportItems

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

Пример.

  • Это выражение, помещенное в текстовое поле, отображает значение текстового поля ReportItem с именем Textbox1:

    =ReportItems.Textbox1.Value

  • Это выражение, помещенное в текстовое поле ReportItem свойства Color, отображает текст черным цветом, если значение > 0, в ином случае — красным:

    =IIF(Me.Value > 0,"Black","Red")

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

    =First(ReportItems("LastName").Value)

Выражения колонтитулов в стиле словаря

Можно создать верхний колонтитул, который будет отображать на странице первого и последнего клиентов. Так как текстовое поле в верхнем колонтитуле может ссылаться на встроенную коллекцию ReportItems только один раз в выражении, необходимо добавить в верхний колонтитул два текстовых поля: одно для имени первого клиента (=First(ReportItems!textboxLastName.Value), а второе для имени последнего клиента (=Last(ReportItems!textboxLastName.Value).

В разделе верхнего или нижнего колонтитула только текстовые поля текущей страницы доступны как члены коллекции ReportItems. Например, если выражение ReportItems!textboxLastName.Value ссылается на текстовое поле, которое появляется только на первой странице многостраничной области данных, значение видно для первой страницы, но на всех других страницах отображается #Ошибка, показывая, что выражение не может быть оценено в том виде, в каком оно записано.

Область коллекции ReportItems

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

Например, текстовое поле в строке, находящейся в родительской группе, не должно содержать выражение, ссылающееся на имя текстового поля в строке дочерней группы. Результат вычисления такого выражения отличается от значения в отчете, т. к. текстовое поле дочерней строки расположено вне этой области. Дополнительные сведения см. в разделе Использование встроенных функций отчета и агрегатных функций в выражениях (службы Reporting Services).

См. также

Справочник

Применение встроенных коллекций в выражениях (службы Reporting Services)

Примеры выражений (службы Reporting Services)

Основные понятия

Основные сведения о разбиении на страницы в службах Reporting Services

Группирование данных в области данных