Использование ссылок на коллекцию ReportItems (построитель отчетов версии 3.0 и службы SSRS)
Встроенная коллекция ReportItems является набором текстовых полей из элементов отчета, например строк области данных или текстовых полей в области конструктора отчетов. Коллекция ReportItems включает текстовые поля, находящиеся в текущей области верхнего колонтитула, нижнего колонтитула или текста отчета. Эта коллекция определяется во время выполнения обработчика отчетов и модуля подготовки отчетов. Текущая область изменяется после успешного объединения обработчиком отчетов данных отчета и элементов макета элементов отчета, когда пользователь просматривает страницы отчета. Встроенная коллекция ReportItems может использоваться для формирования колонтитулов страницы в стиле словаря, в котором на каждой странице указываются первый и последний элемент.
Примечание |
---|
В построителе отчетов и в конструкторе отчетов среды Business Intelligence Development Studio можно создавать и изменять определения отчета (RDL). В каждой среде разработки существуют различные способы создания, открытия и сохранения отчетов и связанных элементов. Дополнительные сведения см. в разделе Разработка отчетов в построителе отчетов и конструкторе отчетов 3.0 (SSRS) на веб-сайте microsoft.com. |
Использования свойства значения 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 является текущая область или любая точка, находящаяся выше текущей области.
Например, текстовое поле в строке, находящейся в родительской группе, не должно содержать выражение, ссылающееся на имя текстового поля в строке дочерней группы. Результат вычисления такого выражения отличается от значения в отчете, т. к. текстовое поле дочерней строки расположено вне этой области. Дополнительные сведения см. в разделе Справочник по агрегатным функциям (построитель отчетов версии 3.0 и службы SSRS).
См. также