Использование параметров для управления данными отчета (построитель отчетов 2.0)
Параметры отчета можно использовать двумя способами: для фильтрации данных в источнике или для фильтрации данных в отчете. Фильтрация данных в источнике данных может улучшить производительность обработки и просмотра отчета. Если данные невозможно отфильтровать в источнике, можно использовать параметры, чтобы отфильтровать их в отчете. Кроме того, параметры можно использовать для сортировки и организации данных в отчете.
Общие сведения о фильтрации данных см. в разделе Фильтрация данных в отчете (построитель отчетов 2.0).
В этом разделе объясняется фильтрация данных с помощью параметров.
Фильтрация данных в источнике данных
Параметры запроса применяются для выполнения фильтрации в источнике данных. В некоторых конструкторах запросов можно добавлять поля в область фильтра и выбирать режим параметра для каждого поля, которое нужно использовать в качестве параметра отчета. В других конструкторах запросов можно добавлять параметры запроса в команду запроса. Во время сохранения запроса текст команды анализируется. Для каждого параметра запроса создается соответствующий параметр отчета. Узел «Параметры» в области «Данные отчета» позволяет просмотреть список параметров отчета.
Во время выполнения отчета пользователь выбирает значения для каждого параметра отчета; эти значения передаются в запрос. Если запрос выполняется в источнике данных, для отчета получаются только указанные пользователем значения. Также можно указать приглашение, которое задает метку для параметра отчета на панели инструментов отчета.
Параметры запроса
Параметры отчета автоматически создаются из параметров запроса.
При определении набора данных указывается конкретный тип источника данных, например MicrosoftSQL Server. При определении запроса для каждого набора данных соответствующий конструктор запросов определяет переменные внутри текста команд запроса и создает параметр запроса для каждой переменной. Не все сочетания источников и поставщиков данных поддерживают запросы с переменными. Дополнительные сведения о синтаксисе запросов, ожидаемом источником данных, см. в разделе Использование параметров запросов с конкретными источниками данных (построитель отчетов 2.0).
Для источника данных SQL Server запросы обычно содержат переменные в предложении WHERE инструкции языка Transact-SQL для ограничения диапазона данных, возвращаемых при выполнении запроса. Конструктор реляционных запросов автоматически строит запрос и предоставляет возможность создать переменную запроса для каждого задаваемого фильтра. Дополнительные сведения см. в разделе Пользовательский интерфейс конструктора реляционных запросов (построитель отчетов 2.0).
Аналогичным образом запросы к источнику данных служб Analysis Services обычно включают переменные многомерных выражений, содержащиеся в предложении FILTER. Запросы могут также включать переменные, переданные как входные параметры хранимой процедуры или пользовательской функции.
Каждый раз, когда изменяется запрос для набора данных, этот запрос заново обрабатывается. Если изменить запрос, удалив или переименовав переменную, параметры запроса отразят эти изменения.
Можно создать дополнительные параметры набора данных на странице Параметры диалогового окна Свойства набора данных. Созданные параметры не меняются при изменении запроса.
Значение по умолчанию для каждого параметра запроса устанавливается в выражение, вычисление которого формирует соответствующий параметр отчета. Для изменения значения по умолчанию используется вкладка Параметры диалогового окна Свойства набора данных. Например, пусть для источника данных SQL Server параметром запроса является @MyParameter, тогда параметром отчета будет MyParameter, а значение параметра запроса @MyParameter устанавливается в выражение [@MyParameter]. Дополнительные сведения см. в разделе Диалоговое окно «Свойства набора данных» — «Параметры» (построитель отчетов 2.0). Можно вручную изменять параметры запроса и устанавливать их значения по умолчанию. Дополнительные сведения см. в разделе Как связать параметр запроса с параметром отчета (построитель отчетов 2.0).
В автоматически создаваемых параметрах отчета используются следующие значения по умолчанию:
Однозначный
Тип данных Text
Подсказкой является имя параметра
Нет значений по умолчанию
Нет доступных значений
Эти значения может понадобиться изменить в зависимости от типа данных, представленных параметром запроса. Дополнительные сведения см. в разделе Создание параметров отчета и настройка свойств параметров отчета (построитель отчетов 2.0).
Примечание |
---|
Если имя параметра запроса удаляется или меняется, соответствующий параметр отчета не будет автоматически удален или переименован. Если параметр запроса удален и соответствующий параметр отчета не требуется, его надо удалить вручную. Если меняется имя параметра запроса, то при сохранении запроса создается новый параметр отчета, соответствующий измененному имени. Можно переименовать параметр отчета, чтобы он соответствовал новому имени параметра запроса, и обновить свойства параметра набора данных, чтобы связать параметр запроса с параметром отчета. |
В построителе отчетов 1.0 параметры отчета создаются автоматически, когда задается запрос для предложения фильтра.
Зависимые или каскадные параметры
При создании запроса с несколькими параметрами запроса можно создать набор каскадных параметров. Каскадные параметры предоставляют способ путем фильтрации свести очень большое число значений параметров к вполне управляемому числу значений. Например, предположим, что запрос включает параметры @Category, @Subcategory и @Product, при этом список подкатегорий зависит от категории @Category, а список товаров — от подкатегории @Subcategory. Когда пользователь выбирает значение для параметра отчета Category, значения для параметра Subcategory будут ограничены только теми, которые соответствуют выбранной категории. После того как пользователь выберет значение для параметра Subcategory, выбираемые значения для параметра Product уже будут отфильтрованы выбором категории и подкатегории. С помощью этой методики можно снизить количество допустимых вариантов выбора до разумного числа значений.
Чтобы сконструировать каскадные параметры, необходимо включить в отчет следующие элементы:
Основной запрос набора данных с несколькими связанными параметрами запроса.
Упорядоченный список параметров отчета, привязанных к параметрам запроса. Обычно они автоматически создаются из основного запроса. Если зависимый параметр должен следовать за каким-то параметром, он от него зависит. Порядок следования параметров можно менять в области «Данные отчета», где их можно перемещать вверх и вниз по коллекции. Дополнительные сведения см. в разделе Как изменить порядок параметров отчета (построитель отчетов 2.0).
Отдельный набор данных для каждого параметра отчета, предоставляющий допустимые значения. Важно использовать одинаковое написание имен параметров с учетом регистра, чтобы правильно устанавливались связи между параметрами отчета и запроса. Запрос каждого набора допустимых значений для каждого параметра отчета должен предоставлять только те значения, которые имеют смысл в контексте основного запроса.
В рассматриваемом примере параметр отчета «Продукт» зависит от подкатегории, которая, в свою очередь, зависит от категории. Сначала должен идти параметр Category, за ним Subcategory, затем Product. Запрос к набору данных, предоставляющему допустимые значения категории, должен показывать все категории, допустимые в основном запросе. Запрос, предоставляющий допустимые значения подкатегорий, когда категория уже выбрана, должен показывать все подкатегории, допустимые для этой категории, с учетом всех ограничений, присутствующих в основном запросе.
Дополнительные сведения см. в разделе Как добавить в отчет каскадные параметры (построитель отчетов 2.0).
Фильтрация данных отчета после запуска запроса
Можно также создать параметры отчета и использовать их в критериях фильтра для фильтрации данных в наборе данных отчета, области данных или группировании табликса. Дополнительные сведения см. в разделах Фильтрация данных в отчете (построитель отчетов 2.0) и Как добавить фильтр (построитель отчетов 2.0).
Параметры отчета являются частью его определения при создании отчета, но после публикации отчета ими можно управлять независимо. После публикации определения отчета можно менять свойства параметров с помощью диспетчера отчетов. Дополнительные сведения см. в разделе «Установка свойств для опубликованного отчета» документации по службам Reporting Services, входящей в состав электронной документации по SQL Server.
Использование быстрой замены допустимых значений параметра
При определении быстро изменяющихся доступных значений эти значения могут устаревать до выполнения отчета. Это может привести к выбору пользователем значения из списка, который более не является действительным на тот момент, когда пользователь отправляет значение и выполняет отчет. Во избежание этого пишите запросы, возвращающие наборы данных, которые не будут изменяться до тех пор, пока пользователь не выберет значение в списке и не выполнит отчет.
Кроме того, избегайте быстро изменяющихся незапрашиваемых значений. Например, если текущая дата предоставляется как доступное значение, напишите выражение, которое использует свойство DateTime.Today вместо свойства DateTime.Now. Это устраняет быстро изменяющуюся часть времени значения. Можно также использовать переменную отчета или групповую переменную как способ однократного вычисления значения и сохранения его при обработке отчета. Дополнительные сведения см. в разделе Использование ссылок на коллекции переменных отчета и групповых переменных в выражениях (построитель отчетов 2.0).
См. также