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


Работа с выражениями в службах Reporting Services

Добавления: 5 декабря 2005 г.

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

Создание выражений для элементов отчета производится путем ввода текста в текстовые поля, свойства или посредством диалогового окна. Выражения пишутся на языке Microsoft Visual Basic. Выражение начинается со знака равенства (=) и может содержать ссылки на константы, операторы, функции и встроенные в отчет глобальные коллекции, включая поля и параметры. Можно также создавать ссылки на классы .NET Framework, пользовательский код и внешние по отношению к обработке отчета сборки. Дополнительные сведения о создании выражений см. в разделе Создание выражений в службах Reporting Services.

В этом разделе представлен обзор возможных мест использования выражений в определениях отчетов. В примерах этого раздела используется набор данных AdventureWorks, созданный в учебнике Создание основного отчета. Для ознакомления с примерами см. раздел Примеры выражений в службах Reporting Services.

Использование выражений с полями

В выражении можно обратиться к полю набора данных и отобразить его значение в текстовом поле. Для связи полученного поля с элементом отчета выражение должно использовать глобальную коллекцию Fields, имя поля и свойство Value.

  • При перетаскивании поля из окна набора данных в элемент отчета к текстовому полю автоматически добавляется выражение с полем.
    Пример:
    =Fields!LastName.Value
    Результат:
    Reiter
    Reiter
    Saraiva
  • Можно комбинировать данные из нескольких полей или констант.
    Пример:
    =Fields!FirstName.Value & " " & Fields!LastName.Value
    Результат:
    Tsvi Reiter
    Tsvi Reiter
    Jose Saraiva

Список всех типов ссылок, которые можно использовать в выражении, см. в разделе Создание выражений в службах Reporting Services.

Использование встроенных функций в службах Reporting Services

В выражениях можно обращаться к набору встроенных функций отчета. Они включают как стандартные статистические функции типа Sum, Min, Max или Count, используемые для вычисления значений для группы строк, так и функции типа RowNumber и RunningValue, которые можно использовать в строках подробностей для задания значений каждой из строк.

  • Подсчитать число фамилий в поле LastName набора данных SalesOrder можно с помощью статистической функции Count. Хотя можно разместить выражение в строке подробностей таблицы, в каждой из 3906 строк будет отображено одно и то же значение. Статистические функции предназначены для суммирования строк подробностей и обычно используются в текстовых полях верхнего или нижнего колонтитулов области данных или группирования областей данных.
    Пример:
    ="Number of Names: " & Count(Fields!LastName.Value)
    Результат:
    Number of Names: 3906
  • Вычислить сумму полей TotalDue можно с помощью статистической функции Sum. Ее следует разместить в строке нижнего колонтитула таблицы. Обратите внимание, что значение не форматировано.
    Пример:
    ="Total Sold: " & Sum(Fields!TotalDue.Value)
    Результат:
    Total Sold: 108266245.7018
  • Форматирование числового значения выполняется с помощью функции Format и строки форматирования Microsoft .NET Framework C.
    Пример:
    ="Total Sold: " & Format(Sum(Fields!TotalDue.Value),"C")
    Результат:
    Total Sold: $108,266,245.70
  • Для подсчета количества строк используется функция RowNumber.
    Пример:
    =RowNumber(Nothing)
    Результат:
    1
    2
    3
  • С помощью функции RunningValue можно вычислять промежуточные итоги для заданной области.
    Пример:
    =Format(RunningValue(Fields!TotalDue.Value,Sum,Nothing),"C")
    Результат:
    $27,231.55
    $28,947.73

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

Область

Так как может быть определено несколько групп, можно задать область использования статистической функции. Области — это имена, которые можно передать статистическим функциям для указания того, как следует вычислять их значения. Например, если в таблице определено более одной группы, можно обращаться к внешней группе из строки верхнего колонтитула внутренней группы. Область Nothing указывает, что функция должна использовать наиболее внешнюю область. Для простой области данных таблицы без группирования существует только одна область.

Для идентификации областей, допустимых для группирования элементов отчета, выберите элемент, откройте диалоговое окно Свойства, перейдите на вкладку Группы и просмотрите список меток групп, с помощью которых можно идентифицировать области.

Использование пространств имен .NET Framework и системных пространств имен

В выражениях можно обращаться к встроенным пространствам имен библиотеки времени выполнения Microsoft.VisualBasic, а также к пространствам имен .NET Framework — System.Convert и System.Math. Для обращения к другим пространствам имен среды .NET Framework CLR необходимо использовать полный идентификатор пространства имен, например System.Text.StringBuilder. Для обращения к внешним сборкам следует идентифицировать сборку через свойства отчета и убедиться, что она доступна на сервере отчетов. Дополнительные сведения см. в разделах Как добавить в отчет ссылки на сборку (конструктор отчетов) и Referencing Assemblies in an RDL File.

Использование пользовательского кода и ссылок на классы

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

Использование условного форматирования

Выражения могут использоваться для управления внешним видом элементов отчета. Например, можно написать выражение для свойства текстового поля Color, которое будет выводить данные в различном цвете в зависимости от значения поля. В нижеприведенном примере значение отображается красным цветом, если значение поля TotalDue меньше 10000, и черным цветом, если это условие не выполняется.

=Iif(Fields!TotalDue.Value < 10000,"Red","Black")

Для ввода выражений форматирования элемента отчета откройте окно «Свойства» и введите выражение в поле значения свойства, к которому необходимо применить форматирование. Дополнительные сведения об условном форматировании см. в разделе Добавление условного форматирования.

Использование выражений с запросами

В выражениях можно определить запрос, содержащийся в наборе данных. Эту возможность можно использовать для создания отчетов, в которых запрос изменяется в зависимости от пользовательского ввода, данных в других наборах или других переменных. Дополнительные сведения о запросах см. в разделе Определение наборов данных отчета.

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

В выражениях можно определять фильтры, ограничивающие объем и тип данных, отображаемых в отчете. Фильтры применяются к данным после получения данных из источника данных. Фильтры можно определять для наборов данных, областей данных и группирований областей данных. Дополнительные сведения о фильтрации см. в разделах Как добавить фильтр (конструктор отчетов) и Фильтрация данных в отчете.

В выражениях можно определять группы для областей данных. Выражения часто используются для вычисления статистических функций над группированными данными. Группы определяются путем создания заголовков групп в областях данных. Дополнительные сведения о группировании данных см. в разделах Группирование данных в отчете и Как добавить группу в таблицу (конструктор отчетов).

В выражениях можно определять сортировку для областей данных. Можно выполнять сортировку наборов данных, строк подробностей в области данных, а также групп в области данных. Дополнительные сведения о сортировке данных см. в разделах Сортировка данных в отчете и Как сортировать данные в таблице (конструктор отчетов).

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

В выражениях можно обращаться к встроенным классам коллекций отчетов. В дополнение к рассмотренной ранее коллекции Fields можно создавать выражения, обращающиеся к элементам следующих коллекций: Globals, User, Parameters, ReportItems, DataSets и DataSources. При использовании этих коллекций в выражении они предоставляют доступ к свойствам отчета и данным, определяемым динамически в процессе обработки отчета. Дополнительные сведения см. в разделе Применение глобальных коллекций в выражениях (службы Reporting Services).

Использование параметров языковых стандартов

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

ms345242.note(ru-ru,SQL.90).gifПримечание.
Хотя в отчете можно изменять языковые параметры, нужно следить за всеми проблемами отображения, которые могут при этом возникнуть. Например, изменение параметра языковых стандартов отчета может изменить в нем не только формат даты, но и формат денежной единицы. Если в поле валюты не использовано преобразование, это может привести к отображению в отчете неверного символа валюты. Во избежание этого устанавливайте языковые настройки для отдельных элементов, которые нужно изменять, или настройте этот элемент на отображение денежных данных на определенном языке.

См. также

Задачи

Как добавить выражение (конструктор отчетов)

Справочник

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

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

Разделы руководства по макету отчета

Другие ресурсы

Редактирование выражения (конструктор отчетов)

Справка и поддержка

Получение помощи по SQL Server 2005