Занятие 1. Создание общих наборов данных и настройка параметров отчета (SSRS)
На этом занятии будут созданы общие наборы данных и настроены параметры отчетов на основании параметров запроса набора данных для отчета Employee_Sales_Summary_2008R2.
Обзор учебника
В этом учебнике рассматриваются следующие темы:
Создание копии базового отчета.
Добавление нескольких общих наборов данных в проект и в отчет.
Настройка параметров отчета, создаваемых автоматически для каждого параметра запроса набора данных.
Добавление описания сценария, в котором объясняется назначение отчета.
Добавление скрываемого по условию текста, содержащего сведения об источнике данных и запросе набора данных.
Добавление скрываемого по условию текста, содержащего значения параметров, выбранных пользователем отчета.
Добавление скрываемого по условию текста, содержащего описание отчета.
Добавление заголовка отчета.
Просмотр и проверка отчета.
Развертывание отчета.
Предполагаемое время выполнения заданий учебника: 15 минут.
Системные требования
Дополнительные сведения о требованиях см. в разделе Предварительные требования для образцов отчетов AdventureWorks 2008R2 (SSRS).
Прежде чем приступать к этому занятию, необходимо изучить учебник Создание проекта сервера отчетов и отчета AdventureWorks2008R2_Base (SSRS).
Советы
Список общих советов см. в разделе Советы по проектированию отчетов (построитель отчетов версии 3.0 и службы SSRS).
Открытие проекта и создание копии отчета
В среде Business Intelligence Development Studio откройте проект сервера отчетов AdventureWorks 2008R2 Sample Reports.
В обозревателе решений выполните следующие действия.
Щелкните правой кнопкой мыши отчет AdventureWorks2008R2_Base.rdl и выберите команду Копировать.
Щелкните правой кнопкой мыши узел проекта и выберите команду Вставить.
Переименуйте скопированный отчет в Employee_Sales_Summary_2008R2.rdl.
Создание общих наборов данных
В этом проекте отчета используется четыре общих набора данных, основанных на общем источнике данных AdventureWorks2008R2.
Создание набора данных EmployeeSalesYearOverYear2008R2
Добавление общего набора данных для продаж в годовом исчислении
В обозревателе решений добавьте общий набор данных с именем EmployeeSalesYearOverYear2008R2.
Эти данные позволяют ответить на следующий вопрос. Как выглядят мои сезонные продажи по сравнению с продажами за предыдущий год?
В отчете эти данные будут отображаться на обычном графике и спарклайн-графике.
Укажите общий источник данных AdventureWorks2008R2 и добавьте следующий запрос:
SELECT P.FirstName + ' ' + P.LastName AS Employee, DATEPART(Year, SOH.OrderDate) AS [Year], DATEPART(Month, SOH.OrderDate) AS MonthNumber, DATENAME(Month, SOH.OrderDate) AS [Month], SUM(DET.LineTotal) AS Sales FROM [Sales].[SalesPerson] SP INNER JOIN [Sales].[SalesOrderHeader] SOH ON SP.[BusinessEntityID] = SOH.[SalesPersonID] INNER JOIN Sales.SalesOrderDetail DET ON SOH.SalesOrderID = DET.SalesOrderID INNER JOIN [Sales].[SalesTerritory] ST ON SP.[TerritoryID] = ST.[TerritoryID] INNER JOIN [HumanResources].[Employee] E ON SOH.[SalesPersonID] = E.[BusinessEntityID] INNER JOIN [Person].[Person] P ON P.[BusinessEntityID] = SP.[BusinessEntityID] WHERE (DATEPART(Year, SOH.OrderDate) <= @ReportYear - 1 OR DATEPART(Year, SOH.OrderDate) = @ReportYear AND DATEPART(Month, SOH.OrderDate) <= @ReportMonth) AND (SOH.SalesPersonID = (@EmployeeID)) GROUP BY P.FirstName + ' ' + P.LastName, SOH.SalesPersonID, DATEPART(Year, SOH.OrderDate), DATEPART(Month, SOH.OrderDate), DATENAME(Month, SOH.OrderDate)
Общий набор данных появится в обозревателе решений.
В области данных отчета создайте набор данных с именем EmployeeSalesYearOverYear2008R2.
В диалоговом окне Свойства набора данных выберите Использовать общий набор данных и щелкните набор данных, только что созданный в обозревателе решений.
Запрос к набору данных включает в себя переменные @ReportMonth, @ReportYear и @EmployeeID.
В диалоговом окне Свойства набора данных убедитесь, что для каждой переменной запроса в наборе данных создан соответствующий параметр.
В области данных отчета убедитесь, что для каждого параметра набора данных создан соответствующий параметр отчета.
Набор данных в области данных отчета является ссылкой на общий набор данных в обозревателе решений. После публикации этого отчета ссылка будет указывать на общий набор данных на сервере отчетов или на сайте SharePoint.
Создание набора данных EmployeeSalesDetail2008R2
Добавление общего набора данных с данными по каждому заказу на продажу
В обозревателе решений добавьте общий набор данных с именем EmployeeSalesDetail2008R2.
Эти данные позволяют ответить на следующий вопрос. Укладываюсь ли я в квоты продаж за весь месяц в каждой категории?
В отчете эти данные будут отображаться в виде матрицы и внедренных индикаторов.
Используйте общий источник данных AdventureWorks2008R2 и следующий запрос:
SELECT PER.FirstName + ' ' + PER.LastName AS Employee, PS.Name AS Subcategory, SUM(DET.LineTotal) AS Sales, SOH.SalesOrderID, SOH.SalesOrderNumber, P.Name AS Product, SUM(DET.OrderQty) AS OrderQty, DET.UnitPrice, PC.Name AS Category FROM Sales.SalesOrderHeader SOH INNER JOIN [Sales].[SalesPerson] SP ON SP.[BusinessEntityID] = SOH.[SalesPersonID] INNER JOIN Sales.SalesOrderDetail DET ON SOH.SalesOrderID = DET.SalesOrderID INNER JOIN [HumanResources].[Employee] E ON SOH.[SalesPersonID] = E.[BusinessEntityID] INNER JOIN [Person].[Person] PER ON PER.[BusinessEntityID] = SP.[BusinessEntityID] INNER JOIN Production.Product P ON DET.ProductID = P.ProductID INNER JOIN Production.ProductSubcategory PS ON P.ProductSubcategoryID = PS.ProductSubcategoryID INNER JOIN Production.ProductCategory PC ON PS.ProductCategoryID = PC.ProductCategoryID WHERE (DATEPART(Year, SOH.OrderDate) = @ReportYear) AND (DATEPART(Month, SOH.OrderDate) = @ReportMonth) AND (SOH.SalesPersonID = @EmployeeID) GROUP BY PER.FirstName + ' ' + PER.LastName, DATEPART(Month, SOH.OrderDate), SOH.SalesOrderID, SOH.SalesOrderNumber, P.Name, PS.Name, DET.UnitPrice, PC.Name
Общий набор данных появится в обозревателе решений.
В области данных отчета создайте набор данных с именем EmployeeSalesDetail2008R2.
В диалоговом окне Свойства набора данных выберите Использовать общий набор данных и щелкните набор данных, только что созданный в обозревателе решений.
Создание набора данных EmpSalesMonth2008R2
Добавление общего набора данных для продаж в месячном исчислении
В обозревателе решений добавьте общий набор данных с именем EmpSalesMonth2008R2.
Эти данные позволяют ответить на следующий вопрос. Каковы результаты по каждой категории продуктов за данный месяц по сравнению с результатами за этот же месяц предыдущего года?
В отчете эти данные будут отображаться в столбчатой диаграмме и гистограмме.
Используйте общий источник данных AdventureWorks2008R2 и следующий запрос:
SELECT PER.FirstName + ' ' + PER.LastName AS Employee, DATEPART(Year, SOH.OrderDate) AS [Year], DATEPART(Month, SOH.OrderDate) AS [MonthNumber], DATENAME(Month, SOH.OrderDate) AS [Month], PC.Name AS Category, SUM(DET.LineTotal) AS Sales FROM Sales.SalesOrderHeader SOH INNER JOIN [Sales].[SalesPerson] SP ON SP.[BusinessEntityID] = SOH.[SalesPersonID] INNER JOIN Sales.SalesOrderDetail DET ON SOH.SalesOrderID = DET.SalesOrderID INNER JOIN [HumanResources].[Employee] E ON SOH.[SalesPersonID] = E.[BusinessEntityID] INNER JOIN [Person].[Person] PER ON PER.[BusinessEntityID] = SP.[BusinessEntityID] INNER JOIN Production.Product P ON DET.ProductID = P.ProductID INNER JOIN Production.ProductSubcategory PS ON P.ProductSubcategoryID = PS.ProductSubcategoryID INNER JOIN Production.ProductCategory PC ON PS.ProductCategoryID = PC.ProductCategoryID WHERE (DATEPART(Year, SOH.OrderDate) <= @ReportYear) AND (DATEPART(Month, SOH.OrderDate) = @ReportMonth) AND (SOH.SalesPersonID = @EmployeeID) GROUP BY PER.FirstName + ' ' + PER.LastName, DATEPART(Year, SOH.OrderDate), DATEPART(Month, SOH.OrderDate), DATENAME(Month, SOH.OrderDate), PC.Name
Общий набор данных появится в обозревателе решений.
В области данных отчета создайте набор данных с именем EmpSalesMonth2008R2.
В диалоговом окне Свойства набора данных выберите Использовать общий набор данных и щелкните набор данных, только что созданный в обозревателе решений.
Создание набора данных SalesEmployees2008R2
Создание набора данных со списком доступных значений для сотрудников
В обозревателе решений добавьте общий набор данных с именем SalesEmployees2008R2.
Этот набор данных предоставляет допустимые значения параметра @EmployeeID.
Используйте общий источник данных AdventureWorks2008R2 и следующий запрос:
SELECT s.[BusinessEntityID], p.[FirstName] + N' ' + p.LastName AS Employee, e.[JobTitle] FROM [Sales].[SalesPerson] s INNER JOIN [HumanResources].[Employee] e ON e.[BusinessEntityID] = s.[BusinessEntityID] INNER JOIN [Person].[Person] p ON p.[BusinessEntityID] = s.[BusinessEntityID]
Общий набор данных появится в обозревателе решений.
В области данных отчета создайте набор данных с именем SalesEmployees2008R2.
В диалоговом окне Свойства набора данных выберите Использовать общий набор данных и щелкните набор данных, только что созданный в обозревателе решений.
Настройка параметров отчета
Общие наборы данных содержат запросы набора данных с переменными запроса для параметров ReportYear, ReportMonth и EmployeeID. Соответствующие параметры запроса создаются автоматически для каждой переменной запроса. По умолчанию для свойств каждого параметра отчета задается тип данных String, отдельное значение и список допустимых значений либо отсутствие значения по умолчанию. При необходимости можно настроить каждый параметр вручную.
Изменение порядка расположения параметров
Изменение порядка расположения параметров на панели инструментов средства просмотра отчетов
В области данных отчета щелкните ShowAll.
На панели инструментов области данных отчета нажимайте кнопку Вниз, пока параметр не окажется на последнем месте в списке.
Щелкните ReportMonth.
Нажимайте кнопку Вверх, пока параметр не окажется на первом месте в списке.
Настройка параметра ReportMonth
Настройте параметр @ReportMonth, чтобы он мог принимать значения только из набора заданных значений. Значением по умолчанию должно быть одно из этих значений, иначе отчет не будет запускаться автоматически.
Настройка параметра отчета @ReportMonth
В области данных отчета разверните узел Параметры.
Откройте Свойства параметра @ReportMonth.
На странице Общие измените Тип данных на Integer.
На странице Доступные значения выберите Указать значения.
Добавьте записи для всех 12 месяцев. В поле Метка введите название месяца, а в поле Значение — порядковый номер месяца. Например, первой записью будет январь и 1. Последней записью будет декабрь и 12. Заполните все 12 значений.
На странице Значения по умолчанию выберите Указать значения. В поле Значения введите 7.
С помощью этого значения по умолчанию будет задан июль. При наличии у всех параметров отчета значений по умолчанию отчет запускается автоматически при первом просмотре.
Настройка параметра ReportYear
Настройка параметра отчета @ReportYear
Откройте Свойства параметра @ReportYear.
На странице Общие измените Тип данных на Integer.
На странице Значения по умолчанию выберите Указать значения.
Добавьте значение. В поле Значения введите 2007.
Настройка параметра EmployeeID
Настройка параметра отчета @EmployeeID
Откройте Свойства параметра @EmployeeID.
На странице Общие измените Запрос на Сотрудник.
Измените Тип данных на Integer.
На странице Доступные значения выберите Получать значения из запроса.
В поле Набор данных выберите SalesEmployees2008R2.
В поле Значение выберите BusinessEntityID.
В поле Метка выберите Employee.
На странице Значения по умолчанию выберите Указать значения. В поле Значения введите 283. Это значение является идентификатором для сотрудника по имени David Campbell.
Добавление описания сценария
Добавление описания сценария
В текстовом поле описания сценария замените имеющийся текст следующим текстом:
Как менеджер по продажам AdventureWorks, я хочу сравнить продажи по каждой категории продуктов за этот месяц с сезонными продажами за прошлые годы.
Графики и спарклайн-графики отображают годовые продажи по всем категориям.
Матрица с индикаторами отображает текущие продажи относительно квот. Измените значения квот на панели инструментов средства просмотра отчетов.
Столбчатые диаграммы и гистограммы показывают продажи в каждой категории.
В следующих занятиях будут созданы ссылки слов в тексте на взаимосвязанные области данных.
Отображение источника данных, набора данных и значений параметра
Можно отобразить текст команды запроса набора данных и значения, выбранные пользователем для каждого параметра отчета. Чтобы не загромождать отчет, поместите эти сведения в текстовых полях в скрываемом по условию прямоугольном контейнере на последней странице.
Добавление прямоугольника
Добавьте прямоугольник внизу отчета, над нижним колонтитулом.
В свойствах Прямоугольника выполните следующие действия.
На странице Общие выберите Вставить разрыв страницы.
На странице Видимость выберите Отображать или скрывать в зависимости от выражения и введите: =NOT Parameters!ShowAll.Value
На следующих шагах после заполнения каждого текстового поля добавьте его в прямоугольник. При необходимости расширьте прямоугольник. Используя прямоугольник в качестве контейнера, можно легко перемещать все текстовые поля как один блок.
Добавление текстового поля со значениями параметра
В текст отчета добавьте текстовое поле со следующим текстом на отдельных строках:
Месяц отчета: [@ReportMonth] [@ReportMonth.Label]
Год отчета: [@ReportYear]
Идентификатор сотрудника: [@EmployeeID] [@EmployeeID.Label]
Перетащите текстовое поле в прямоугольник и при необходимости измените размеры.
Добавление текстового поля со сведениями об источнике данных и наборе данных
В тексте отчета добавьте текстовое поле с именем DataSourceandDatasets, содержащее следующий текст:
-
Источник данных AdventureWorks2008R2:
Создайте заполнитель с именем AdventureWorks2008R2 и следующим значением: =DataSources!AdventureWorks2008R2.DataSourceReference
Набор данных EmployeeSalesYearOverYear2008R2:
Создайте заполнитель с именем EmployeeSalesYearOverYear2008R2 и следующим значением: =DataSets!EmployeeSalesYearOverYear2008R2.CommandText.
Набор данных EmployeeSalesDetail2008R2:
Создайте заполнитель с именем EmployeeSalesDetail2008R2 и следующим значением: =DataSets! EmployeeSalesDetail2008R2.CommandText.
Набор данных EmpSalesMonth2008R2.
Создайте заполнитель с именем EmpSalesMonth2008R2 и следующим значением: =DataSets! EmpSalesMonth2008R2.CommandText.
Отформатируйте текст нужным образом. Например, сделайте название набора данных подчеркнутым.
Перетащите текстовое поле в прямоугольник и при необходимости измените размеры.
Добавление описания
Добавление описания
В нижнем колонтитуле страницы замените текст в текстовом поле описания следующим текстом:
Назначение: Сводный отчет. Отображает продажи в годовом исчислении: по всем категориям, по отдельным категориям и по квотам. Включает в себя диаграммы (графики, спарклайны, столбчатые диаграммы с разрывами шкалы, гистограммы), табликс (переключение строк, группы строк, индикаторы на уровне таблицы и группы), групповые переменные и переменные отчета, прямоугольные контейнеры, общие наборы данных, общий источник данных, пользовательский код для цвета линий в диаграммах, закладки, действие детализации, многозначные параметры и параметры для управления условной видимостью текстовых полей и переключением строк.
Щелкните фон отчета, чтобы отобразить раздел Свойства отчета на панели свойств.
В поле Описание вставьте текст описания.
Добавление заголовка отчета
Добавление заголовка отчета
В заголовке страницы добавьте текстовое поле со следующим текстом из двух строк:
Sales Report for [@EmployeeID.Label]
[@ReportMonth.Label], [@ReportYear]
Примените требуемое форматирование.
Предварительный просмотр отчета
Предварительный просмотр и проверка отчета
Просмотрите отчет.
Убедитесь, что отчет запускается автоматически.
С помощью панели инструментов средства просмотра отчетов проверьте следующее.
Поле Месяц отчета имеет раскрывающийся список со всеми месяцами. Значение по умолчанию — июль.
Год отчета имеет значение по умолчанию 2007.
Поле Сотрудник имеет раскрывающийся список с именами сотрудников. Значение по умолчанию — David Campbell.
В заголовке страницы отображаются эмблема, заголовок отчета и имя отчета.
После щелчка переключателя отображается текст сценария.
Если присвоить параметру ShowAll значение True и запустить отчет, значения параметра, сведения об источнике данных и наборе данных и описание появятся на последней странице отчета.
Развертывание отчета
Развертывание отчета
В обозревателе решений щелкните правой кнопкой мыши проект и выберите Развернуть. Проверьте наличие ошибок в строке состояния среды BI Development Studio или на панели вывода.
Примечание
Поскольку отчет зависит от общих наборов данных, при первом развертывании отчета необходимо развернуть весь проект.
В браузере перейдите на сервер отчетов или сайт SharePoint и убедитесь, что общие источники данных, общие наборы данных и отчеты находятся в нужных папках, а также что отчеты можно просматривать.
Следующие шаги
Создание проекта отчета и базового отчета завершено. Теперь можно создать образец отчета. Дополнительные сведения см. в разделе Учебники. Создание образцов отчетов AdventureWorks 2008R2 (SSRS).
См. также