Диаграммы "дерево" и "солнечные лучи" в отчете с разбивкой на страницы в SQL Server Reporting Services (построитель отчетов)
Область применения: Построитель отчетов (SSRS) Power BI конструктор отчетов построитель отчетов в SQL Server Data Tools
Визуализации "дерево" и "солнечные лучи" построителя отчетов SQL Server прекрасно подходят для визуального представления иерархических данных в отчете с разбивкой на страницы. В этой статье описывается добавление диаграммы "дерево" или "солнечные лучи" в отчет. В ней также приводится пример запроса AdventureWorks, который поможет вам приступить к работе.
Диаграмма "Дерево"
Диаграмма "дерево" делит область диаграммы на прямоугольники, представляющие разные уровни и относительные размеры иерархии данных. Эта схема аналогична ветвям дерева, начинающимся от ствола и разделяющимся на ветви меньшего и меньшего размера. Каждый прямоугольник разбивается на более мелкие прямоугольники, представляющие следующий уровень в иерархии. Прямоугольники верхнего уровня дерева упорядочены так, что самый большой прямоугольник находится в левом верхнем углу диаграммы, а самый маленький — в правом нижнем углу. В прямоугольнике следующий уровень, помимо прочего, упорядочивается в виде прямоугольников от левого верхнего угла до правого нижнего угла.
Например, на приведенном ниже рисунке показан пример дерева, на котором юго-западная территория является наибольшей, а Германия — наименьшей. На юго-западной территории область шоссейных велосипедов больше области горных велосипедов.
Вставка диаграммы "дерево" и настройка образца данных AdventureWorks
Примечание.
Перед добавлением диаграммы в отчет создайте источник данных и набор данных. Образец данных и образец запроса см. в разделе Образец данных AdventureWorks.
Щелкните правой кнопкой мыши область конструктора, а затем выберите Вставить>Диаграмма. Щелкните значок Дерево.
Измените положение и размер диаграммы. Для использования с образцом данных достаточно начать с диаграммы шириной в 12 см.
Добавьте следующие поля из образца данных.
- Значения: LineTotal
- Группы категорий (в следующем порядке):
- ИмяКатегории
- SubcategoryName
- Группы рядов: TerritoryName
Чтобы оптимизировать размер страницы для общей схемы диаграммы "дерево", задайте положение условных обозначений внизу.
Чтобы добавить подсказки, в которых указывается подкатегория и общая сумма, щелкните правой кнопкой мыши LineTotal и выберите пункт Свойства рядов.
Задайте для свойства Tooltip следующее значение:
=Fields!SubcategoryName.Value &": " &Format(Sum(Fields!LineTotal.Value),"C")
Дополнительные сведения см. в статье Отображение всплывающих подсказок для ряда (построитель отчетов и службы SSRS).
Измените заголовок диаграммы по умолчанию на Продажи по категориям и по территории.
Количество отображаемых значений меток зависит от размера шрифта, размера общей области диаграммы и размера определенных прямоугольников. Чтобы видеть больше меток, измените значение свойства Шрифт метки поля LineTotal на 10 пунктов вместо значения по умолчанию 8 пунктов.
Диаграмма Sunburst
На диаграмме "солнечные лучи" иерархия представлена рядом кругов. Верхний уровень иерархии находится в центре, а более низкие уровни представлены кольцами вокруг него. Самый низкий иерархический уровень представляет внешнее кольцо.
Вставка диаграммы "солнечные лучи" и настройка образца данных AdventureWorks
Примечание.
Перед добавлением диаграммы в отчет создайте источник данных и набор данных. Образец данных и образец запроса см. в разделе Образец данных AdventureWorks.
Щелкните правой кнопкой мыши область конструктора, а затем выберите Вставить>Диаграмма. Щелкните значок Солнечные лучи.
Измените положение и размер диаграммы. Для использования с образцом данных достаточно начать с диаграммы шириной в 12 см.
Добавьте следующие поля из образца данных.
- Значения: LineTotal
- Группы категорий (в следующем порядке):
- ИмяКатегории
- SubcategoryName
- SalesReasonName
- Группы рядов: TerritoryName
Чтобы оптимизировать размер страницы для общей схемы диаграммы "солнечные лучи", задайте положение условных обозначений внизу.
Измените заголовок диаграммы по умолчанию на Продажи по категориям и по территории с причинами покупки.
Чтобы добавить значения групп категорий в диаграмму "солнечные лучи" в виде меток, задайте свойства меток Visible=true и UseValueAsLabel=false.
Отображаемые значения меток зависят от размера шрифта, размера общей области диаграммы и размера определенных прямоугольников. Чтобы видеть больше меток, измените значение свойства Шрифт метки поля LineTotal на 10 пунктов вместо значения по умолчанию 8 пунктов.Если требуется другой диапазон цветов, измените свойство диаграммы Palette .
Примеры данных AdventureWorks
В этом разделе приводятся пример запроса и основные инструкции по созданию источника данных и набора данных в построителе отчетов. Если в вашем отчете уже имеются источник данных и набор данных, этот раздел можно пропустить.
Запрос возвращает подробные данные заказа на продажу AdventureWorks с территорией продажи, категорией продукта, подкатегорией продукта и данными о причине покупки.
Получение данных.
Примеры кода Transact-SQL в этой статье используют
AdventureWorks2022
базу данных илиAdventureWorksDW2022
пример базы данных, которую можно скачать с домашней страницы примеров и проектов сообщества Microsoft SQL Server.Создание источника данных.
В области Данные отчета щелкните правой кнопкой мыши элемент Источники данных и выберите команду Добавить источник данных.
Установите флажок Использовать соединение, внедренное в отчет.
В качестве типа соединения выберите Microsoft SQL Server.
Введите строку подключения к серверу и базе данных. Например:
Data Source=[server name];Initial Catalog=AdventureWorks2022
Чтобы проверить подключение, нажмите кнопку Проверить подключение, а затем кнопку ОК.
Дополнительные сведения о создании источника данных см. в статье Добавление и проверка подключения к данным (построитель отчетов и службы SSRS).
Создание набора данных.
В области Данные отчета щелкните правой кнопкой мыши элемент Наборы данных и выберите команду Добавить набор данных.
Установите флажок Использовать набор данных, внедренный в отчет.
Выберите созданный источник данных.
Выберите тип запроса Текст, а затем скопируйте и вставьте следующий запрос в текстовое поле Запрос:
SELECT Sales.SalesOrderHeader.SalesOrderID, Sales.SalesOrderHeader.OrderDate, Sales.SalesOrderDetail.SalesOrderDetailID, Sales.SalesOrderDetail.ProductID, Sales.SalesOrderDetail.LineTotal, Sales.SalesOrderDetail.UnitPrice, Sales.SalesOrderDetail.OrderQty, Production.Product.Name, Production.Product.ProductNumber, Sales.SalesTerritory.TerritoryID, lower(Sales.SalesTerritory.Name) AS TerritoryName, Production.ProductSubcategory.Name AS SubcategoryName, Production.ProductCategory.Name AS CategoryName, Sales.SalesReason.SalesReasonID, Sales.SalesReason.Name AS SalesReasonName FROM Sales.SalesOrderDetail INNER JOIN Sales.SalesOrderHeader ON Sales.SalesOrderDetail.SalesOrderID = Sales.SalesOrderHeader.SalesOrderID INNER JOIN Production.Product ON Sales.SalesOrderDetail.ProductID = Production.Product.ProductID INNER JOIN Sales.SalesTerritory ON Sales.SalesOrderHeader.TerritoryID = Sales.SalesTerritory.TerritoryID AND Sales.SalesOrderHeader.TerritoryID = Sales.SalesTerritory.TerritoryID AND Sales.SalesOrderHeader.TerritoryID = Sales.SalesTerritory.TerritoryID INNER JOIN Production.ProductSubcategory ON Production.Product.ProductSubcategoryID = Production.ProductSubcategory.ProductSubcategoryID AND Production.Product.ProductSubcategoryID = Production.ProductSubcategory.ProductSubcategoryID AND Production.Product.ProductSubcategoryID = Production.ProductSubcategory.ProductSubcategoryID INNER JOIN Production.ProductCategory ON Production.ProductSubcategory.ProductCategoryID = Production.ProductCategory.ProductCategoryID AND Production.ProductSubcategory.ProductCategoryID = Production.ProductCategory.ProductCategoryID AND Production.ProductSubcategory.ProductCategoryID = Production.ProductCategory.ProductCategoryID INNER JOIN Sales.SalesOrderHeaderSalesReason ON Sales.SalesOrderHeader.SalesOrderID = Sales.SalesOrderHeaderSalesReason.SalesOrderID AND Sales.SalesOrderHeader.SalesOrderID = Sales.SalesOrderHeaderSalesReason.SalesOrderID AND Sales.SalesOrderHeader.SalesOrderID = Sales.SalesOrderHeaderSalesReason.SalesOrderID AND Sales.SalesOrderHeader.SalesOrderID = Sales.SalesOrderHeaderSalesReason.SalesOrderID INNER JOIN Sales.SalesReason ON Sales.SalesOrderHeaderSalesReason.SalesReasonID = Sales.SalesReason.SalesReasonID AND Sales.SalesOrderHeaderSalesReason.SalesReasonID = Sales.SalesReason.SalesReasonID AND Sales.SalesOrderHeaderSalesReason.SalesReasonID = Sales.SalesReason.SalesReasonID AND Sales.SalesOrderHeaderSalesReason.SalesReasonID = Sales.SalesReason.SalesReasonID
Нажмите ОК.
Дополнительные сведения о создании набора данных см. в статье Создание общего или внедренного набора данных (построитель отчетов и службы SSRS).