Занятие 4. Добавление каскадных параметров (построитель отчетов 2.0)
Каскадирование параметров предоставляет способ управления большими объемами данных отчета. При каскадировании параметров список значений для одного параметра зависит от значения, выбранного для предыдущего параметра.
На этом занятии будет создан отчет с основным запросом к набору данных, в котором определяются параметры запроса для подкатегории и продукта для категории одежды. Будут определены два дополнительных набора данных, предоставляющие доступные значения для каждого каскадного параметра.
Создание файла определения отчета и сохранение его на сервере отчетов
Нажмите кнопку Пуск, последовательно укажите пункты Все программы, Построитель отчетов Microsoft SQL Server 2008 и выберите пункт Построитель отчетов 2.0.
В области конструктора щелкните поле Щелкните здесь, чтобы добавить заголовок и введите текст Каскадные параметры.
Нажмите кнопку Построитель отчетов и выберите Сохранить как.
Выберите Последние узлы и серверы.
Щелкните имя сервера отчетов, для которого есть разрешение на сохранение отчетов.
В поле Имя введите Каскадные параметры.
Нажмите кнопку Сохранить.
Новый отчет сохранен на сервере отчетов.
Добавление ссылки на источник данных
На панели инструментов в области «Данные отчета» нажмите кнопку Создать и выберите Источник данных.
Выберите Использовать общее соединение или модель отчета.
Выберите источник данных для образца базы данных AdventureWorks2008, созданного на занятии Учебник. Создание простого табличного отчета (построитель отчетов 2.0).
Нажмите кнопку ОК.
Добавлена ссылка на источник данных для базы данных AdventureWorks2008.
Создание основного источника данных с запросом и параметрами запроса
На панели инструментов в области «Данные отчета» нажмите кнопку Создать и выберите Набор данных.
В поле Имя введите SalesbyCategory.
Ниже в области запроса щелкните Конструктор запросов.
Выберите Редактировать как текст.
В области запросов вставьте следующий запрос:
SELECT SH.OrderDate ,DATENAME(weekday, SH.OrderDate) as Weekday ,SH.SalesOrderNumber ,SD.OrderQty ,SD.LineTotal ,P.Name AS [Product] ,PS.Name AS [Subcategory] FROM Sales.SalesPerson SP INNER JOIN Sales.SalesOrderHeader AS SH ON SP.BusinessEntityID = SH.SalesPersonID INNER JOIN Sales.SalesOrderDetail AS SD ON SH.SalesOrderID = SD.SalesOrderID INNER JOIN Production.Product AS P ON SD.ProductID = P.ProductID INNER JOIN Production.ProductSubcategory AS PS ON PS.ProductSubcategoryID = P.ProductSubcategoryID INNER JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PS.ProductCategoryID WHERE PC.Name = 'Clothing' AND (SH.OrderDate BETWEEN (@StartDate) AND (@EndDate)) AND PS.Name = (@Subcategory) AND P.Name IN (@Product)
Добавлены параметры запросов для параметров @StartDate, @EndDate, @Subcategory, и @Product, чтобы создать основной запрос для набора каскадных значений.
Нажмите кнопку «Выполнить» (!) для просмотра результирующего набора. Откроется диалоговое окно Определение параметров запроса.
В столбце Значение параметра введите из следующей таблицы значения для каждого параметра запроса.
Имя параметра
Значение параметра
@StartDate
20010101
@EndDate
20030101
@Subcategory
Gloves
@Product
Full-Finger Gloves, M
Нажмите кнопку ОК.
Результирующий набор содержит список номеров заказов на продажу для указанного типа перчаток.
Если запустить запрос, то каждый параметр запроса формирует соответствующий параметр отчета. Нажмите кнопку ОК дважды, чтобы закрыть конструктор запросов и диалоговое окно.
В области «Данные отчета» разверните узел «Параметры» и убедитесь, что появляются следующие параметры отчета (необязательно): StartDate, EndDate, Subcategory и Product.
(Дополнительно) Значение каждого параметра запроса набора данных связано с параметром отчета с тем же именем. Чтобы убедиться в этом, в области «Данные отчета» щелкните правой кнопкой мыши «SalesbyCategory» и выберите пункт Свойства набора данных.
Нажмите Параметры.
Убедитесь, что столбец Имя параметра содержит имена @StartDate, @EndDate, @Subcategory, и @Product.
Убедитесь, что столбец Значение параметра содержит значения [@StartDate], [@EndDate], [@Subcategory] и [@Product].
Эти простые выражения ссылаются на параметры отчета, видимые в области «Данные отчета».
Далее будет создан набор данных, содержащий значения для параметров @Subcategory и @Product. Каждый новый набор данных будет заполнять и доступные значения для параметра, и значения по умолчанию.
Задание типов данных и значений по умолчанию для параметра даты
В области «Данные отчета» щелкните правой кнопкой мыши параметр StartDate и выберите пункт Свойства параметра.
В списке Тип данных выберите Дата и время.
Нажмите кнопку Значения по умолчанию.
Выберите параметр Задание значений.
Нажмите кнопку Добавить.
В поле «Значение» введите 2001-01-01
Нажмите кнопку ОК.
В области «Данные отчета» щелкните правой кнопкой мыши параметр EndDate и выберите пункт Свойства параметра.
В списке Тип данных выберите Дата и время.
Нажмите кнопку Значения по умолчанию.
Выберите параметр Задание значений.
Нажмите кнопку Добавить.
В поле «Значение» введите 2003-01-01
Нажмите кнопку ОК.
Заданы типы данных и значения по умолчанию для параметра данных.
Добавление набора данных значений для параметра отчета «Subcategory»
На панели инструментов в области «Данные отчета» нажмите кнопку Создать и выберите Набор данных.
В поле Имя введите SubcategoryValues.
Нажмите кнопку Конструктор запросов и выберите Редактировать как текст.
В области «Запрос» вставьте следующий текст запроса:
SELECT DISTINCT PSC.Name AS Subcategory FROM Production.ProductSubcategory AS PSC INNER JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PSC.ProductCategoryID WHERE PC.Name = 'Clothing'
Нажмите кнопку ОК дважды, чтобы закрыть конструктор запросов и диалоговое окно.
В области «Данные отчета» появится набор данных SubcategoryValues. Поле Subcategory содержит 8 строк, в которых представлены подкатегории для категории одежды.
Далее будут установлены свойства для параметра отчета @Subcategory, чтобы использовать значения из запроса как для допустимых значений, так и для значений по умолчанию.
Определение допустимых значений и значений по умолчанию параметра отчета «Subcategory»
В области «Данные отчета» в папке «Параметры» щелкните параметр Subcategory правой кнопкой мыши и выберите Свойства параметра.
Нажмите кнопку Допустимые значения.
Нажмите кнопку Получать значения из запроса.
Из раскрывающегося списка Набор данных выберите SubcategoryValues.
В поле Значение щелкните Subcategory.
В поле Метка щелкните Subcategory.
Нажмите кнопку Значения по умолчанию.
Нажмите кнопку Указать значения.
Нажмите кнопку Добавить.
В поле «Значение» введите Gloves.
Нажмите кнопку ОК.
Затем создайте параметр @Product, который зависит от значения параметра @Subcategory.
Добавление набора данных значений для параметра отчета «Product»
На панели инструментов в области «Данные отчета» нажмите кнопку Создать и выберите Набор данных.
В поле Имя введите ProductValues.
Нажмите кнопку Конструктор запросов и выберите Редактировать как текст.
В области «Запрос» вставьте следующий текст запроса:
SELECT DISTINCT P.Name AS Product FROM Production.Product P INNER JOIN Production.ProductSubcategory AS PSC ON P.ProductSubcategoryID = PSC.ProductSubcategoryID INNER JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PSC.ProductCategoryID WHERE (PC.Name = 'Clothing' AND PSC.Name = (@Subcategory))
Нажмите кнопку ОК дважды, чтобы закрыть конструктор запросов и диалоговое окно.
Набор данных с именем ProductValues и единственным полем с именем Product добавляется в область «Данные отчета».
Далее настройте свойства для параметра @Product, чтобы использовать значения этого запроса как для его допустимых значений, так и для значений по умолчанию.
Определение допустимых значений и значений по умолчанию параметра отчета «Product»
В области «Данные отчета» в папке «Параметры» щелкните параметр Product правой кнопкой мыши и выберите Свойства параметра.
Выберите Разрешить несколько значений.
Нажмите кнопку Допустимые значения.
Щелкните Получать значения из запроса.
Из раскрывающегося списка Набор данных выберите ProductValues.
В поле Значение щелкните Product.
В поле Метка щелкните Product.
Нажмите кнопку Значения по умолчанию.
Нажмите кнопку Получать значения из запроса.
Из раскрывающегося списка Набор данных выберите ProductValues.
В поле Значение щелкните Product.
Нажмите кнопку ОК.
Нажмите кнопку Выполнить, чтобы выполнить предварительный просмотр отчета.
Из раскрывающегося списка Subcategory выберите значение Jerseys.
Обратите внимание, что в раскрывающемся списке для параметра Product показаны только продукты, относящиеся к категории Jerseys.
Щелкните Просмотр отчета на панели инструментов средства просмотра отчетов.
В таблице и на диаграмме в отчете отображаются заказы на продажу, включающие выбранные продукты, которые ограничены параметрами отчета, датой заказа на продажу и днями недели.
Следующие шаги
Успешно создан новый отчет, показывающий заказы на продажу для указанных продуктов с помощью каскадных параметров, выполняющих фильтрацию по подкатегории. На следующем занятии предстоит передать параметр в детализированный отчет. См. раздел Занятие 5. Добавление параметров для передачи в детализированный отчет (построитель отчетов 2.0).