Как добавить в отчет каскадные параметры (построитель отчетов 2.0)
Каскадирование параметров предоставляет способ управления большими объемами данных отчета. Можно определить набор связанных параметров таким образом, чтобы список значений для одного параметра зависел от значения, выбранного в другом параметре. Например, первый параметр является независимым и может представлять список категорий продуктов. При выборе пользователем категории второй параметр зависит от значения первого параметра. Эти значения обновляются списком подкатегорий выбранной категории. При просмотре пользователем отчета значения параметров категорий и подкатегорий используются для фильтрации данных отчета.
При создании каскадирования параметров сначала определяется запрос набора данных и для каждого необходимого каскадного параметра включается параметр запроса. Для обеспечения доступных значений также необходимо создать отдельный набор данных для каждого каскадного параметра. Дополнительные сведения см. в разделе Как добавить, изменить или удалить допустимые значения параметра отчета (построитель отчетов 2.0).
Для каскадирования параметров важен порядок следования, поскольку запрос набора данных для параметра, расположенного дальше в списке, включает ссылки на каждый параметр, находящийся в списке раньше его. Во время выполнения порядок параметров в области «Данные отчета» определяет порядок появления запросов параметров в отчете, и, таким образом, порядок выбора пользователем каждого последующего значения параметра.
Создание основного набора данных с запросом, включающим несколько связанных параметров
В области «Данные отчета» щелкните правой кнопкой мыши источник данных и выберите команду Добавить набор данных.
В поле Имя введите имя набора данных.
В поле Источник данных выберите имя источника данных или нажмите кнопку Создать для создания нового источника данных.
В поле Тип запроса выберите тип запроса для выбранного источника данных. В этом разделе предполагается использование запроса типа Текст.
В поле Запрос введите запрос, используемый для получения данных для этого отчета. Запрос должен включать следующие части:
Список полей источника данных. Например, в инструкции Transact-SQL инструкция SELECT указывает список имен столбцов базы данных из заданной таблицы или представления.
По одному параметру запроса для каждого каскадного параметра. Параметр запроса ограничивает данные, полученные из источника данных, путем указания определенных значений для включения или исключения из отчета. Как правило, параметры запроса появляются в предложении ограничения запроса. Например, в инструкции SELECT языка Transact-SQL параметры запроса обнаруживаются в предложении WHERE. Дополнительные сведения см. в разделе «Фильтрация строк с помощью предложений WHERE и HAVING» в документации по службам Reporting Services в электронной документации по SQL Server.
Нажмите кнопку Выполнить (!). После включения параметров запроса и запуска запроса параметры отчета, соответствующие параметрам запроса, создаются автоматически.
Примечание Порядок параметров запроса при первом запуске запроса определяет порядок их создания в отчете. Способ изменения порядка см. в разделе Как изменить порядок параметров отчета (построитель отчетов 2.0).
Нажмите кнопку ОК.
Далее создается набор данных, предоставляющий значения для независимого параметра.
Создание набора данных, предоставляющего значения для независимого параметра
В области «Данные отчета» щелкните правой кнопкой мыши источник данных и выберите команду Добавить набор данных.
В поле Имя введите имя набора данных.
В поле Источник данных удостоверьтесь, что имя совпадает с именем источника данных, выбранного в шаге 1.
В поле Тип запроса выберите тип запроса для выбранного источника данных. В этом разделе предполагается использование запроса типа Текст.
В поле Запрос введите запрос, используемый для получения значений для этого параметра. Запросы для независимых параметров обычно не содержат параметры запроса. Например, чтобы создать запрос для параметра, обеспечивающего все значения категории, можно использовать следующую инструкцию Transact-SQL:
SELECT DISTINCT <column name> FROM <table>
Команда SELECT DISTINCT удаляет повторяющиеся значения из результирующего набора, что позволяет получить каждое уникальное значение из указанного столбца указанной таблицы.
Нажмите кнопку Выполнить (!). Результирующий набор показывает доступные значения для первого параметра.
Нажмите кнопку ОК.
Далее задаются свойства первого параметра для использования данного набора данных в целях заполнения его доступных значений во время выполнения.
Задание допустимых значений параметра отчета
В области «Данные отчета» в папке «Параметры» щелкните первый параметр правой кнопкой мыши и выберите Свойства параметра.
В поле Имя проверьте правильность имени параметра.
Нажмите кнопку Допустимые значения.
Щелкните Получать значения из запроса. Появится три поля.
В поле Набор данных, в раскрывающемся списке, щелкните имя набора данных, созданного в предыдущей процедуре.
В поле Значение щелкните имя поля, предоставляющего значение параметра.
В поле Метка щелкните имя поля, предоставляющего метку параметра.
Нажмите кнопку ОК.
Далее создается набор данных, предоставляющий значения для зависимого параметра.
Создание набора данных, предоставляющего значения для зависимого параметра
В области «Данные отчета» щелкните правой кнопкой мыши источник данных и выберите команду Добавить набор данных.
В поле Имя введите имя набора данных.
В поле Источник данных удостоверьтесь, что имя совпадает с именем источника данных, выбранного в шаге 1.
В поле Тип запроса выберите тип запроса для выбранного источника данных. В этом разделе предполагается использование запроса типа Текст.
В поле Запрос введите запрос, используемый для получения значений для этого параметра. Запросы для зависимых параметров обычно включают параметры запроса для каждого параметра, от которого зависит данный параметр. Например, чтобы создать запрос для параметра, обеспечивающего все значения подкатегории (зависимый параметр) для категории (независимый параметр), можно использовать следующую инструкцию Transact-SQL:
SELECT DISTINCT Subcategory FROM <table> WHERE (Category = @Category)
В предложении WHERE, Category — это имя поля из >table<, а @Category - параметр запроса. Эта инструкция возвращает список подкатегорий для категории, указанной в параметре @Category. Во время выполнения данное значение будет заполнено значением, которое выбирает пользователь для параметра отчета с тем же именем.
Нажмите кнопку ОК.
Далее устанавливаются свойства второго параметра в целях использования этого набора данных для наполнения его доступных значений во время выполнения.
Задание допустимых значений параметра отчета
В области «Данные отчета» в папке «Параметры» щелкните первый параметр правой кнопкой мыши и выберите Свойства параметра.
В поле Имя проверьте правильность имени параметра.
Нажмите кнопку Допустимые значения.
Щелкните Получать значения из запроса.
В поле Набор данных, в раскрывающемся списке, щелкните имя набора данных, созданного в предыдущей процедуре.
В поле Значение щелкните имя поля, предоставляющего значение параметра.
В поле Метка щелкните имя поля, предоставляющего метку параметра.
Нажмите кнопку ОК.
Проверка каскадирования параметров
Нажмите кнопку «Выполнить».
В раскрывающемся списке выберите значение для первого, независимого параметра.
Обработчик отчетов запускает запрос набора данных для следующего параметра и передает ему значение, выбранное для первого параметра. Раскрывающийся список для второго параметра заполняется доступными значениями с учетом значения первого параметра.
Выберите значение в раскрывающемся списке для второго, зависимого параметра.
После выбора последнего параметра отчет не запускается автоматически, что позволяет переопределить выбор.
Нажмите кнопку Просмотр отчета. Экран отчета обновляется на основании выбранных параметров.
См. также