Диаграммы "дерево" и "солнечные лучи" в отчете с разбивкой на страницы в SQL Server Reporting Services (построитель отчетов)

Область применения: Построитель отчетов (SSRS) Power BI конструктор отчетов построитель отчетов в SQL Server Data Tools

Визуализации "дерево" и "солнечные лучи" построителя отчетов SQL Server прекрасно подходят для визуального представления иерархических данных в отчете с разбивкой на страницы. В этой статье описывается добавление диаграммы "дерево" или "солнечные лучи" в отчет. В ней также приводится пример запроса AdventureWorks, который поможет вам приступить к работе.

Диаграмма "Дерево"

Диаграмма "дерево" делит область диаграммы на прямоугольники, представляющие разные уровни и относительные размеры иерархии данных. Эта схема аналогична ветвям дерева, начинающимся от ствола и разделяющимся на ветви меньшего и меньшего размера. Каждый прямоугольник разбивается на более мелкие прямоугольники, представляющие следующий уровень в иерархии. Прямоугольники верхнего уровня дерева упорядочены так, что самый большой прямоугольник находится в левом верхнем углу диаграммы, а самый маленький — в правом нижнем углу. В прямоугольнике следующий уровень, помимо прочего, упорядочивается в виде прямоугольников от левого верхнего угла до правого нижнего угла.

Например, на приведенном ниже рисунке показан пример дерева, на котором юго-западная территория является наибольшей, а Германия — наименьшей. На юго-западной территории область шоссейных велосипедов больше области горных велосипедов.

ssrs_treemap_example

Вставка диаграммы "дерево" и настройка образца данных AdventureWorks

Примечание.

Перед добавлением диаграммы в отчет создайте источник данных и набор данных. Образец данных и образец запроса см. в разделе Образец данных AdventureWorks.

  1. Щелкните правой кнопкой мыши область конструктора, а затем выберите Вставить>Диаграмма. Щелкните значок Дерево.

    ssrs_treemap_icon

  2. Измените положение и размер диаграммы. Для использования с образцом данных достаточно начать с диаграммы шириной в 12 см.

  3. Добавьте следующие поля из образца данных.

    • Значения: LineTotal
    • Группы категорий (в следующем порядке):
      1. ИмяКатегории
      2. SubcategoryName
    • Группы рядов: TerritoryName

    ssrs_treemap_example_properties

  4. Чтобы оптимизировать размер страницы для общей схемы диаграммы "дерево", задайте положение условных обозначений внизу.

  5. Чтобы добавить подсказки, в которых указывается подкатегория и общая сумма, щелкните правой кнопкой мыши LineTotal и выберите пункт Свойства рядов.

    ssrs_visualization_seriesproperties

    Задайте для свойства Tooltip следующее значение:

    =Fields!SubcategoryName.Value &": " &Format(Sum(Fields!LineTotal.Value),"C")  
    

    Дополнительные сведения см. в статье Отображение всплывающих подсказок для ряда (построитель отчетов и службы SSRS).

  6. Измените заголовок диаграммы по умолчанию на Продажи по категориям и по территории.

  7. Количество отображаемых значений меток зависит от размера шрифта, размера общей области диаграммы и размера определенных прямоугольников. Чтобы видеть больше меток, измените значение свойства Шрифт метки поля LineTotal на 10 пунктов вместо значения по умолчанию 8 пунктов.

Диаграмма Sunburst

На диаграмме "солнечные лучи" иерархия представлена рядом кругов. Верхний уровень иерархии находится в центре, а более низкие уровни представлены кольцами вокруг него. Самый низкий иерархический уровень представляет внешнее кольцо.

ssrs_sunburst_example

Вставка диаграммы "солнечные лучи" и настройка образца данных AdventureWorks

Примечание.

Перед добавлением диаграммы в отчет создайте источник данных и набор данных. Образец данных и образец запроса см. в разделе Образец данных AdventureWorks.

  1. Щелкните правой кнопкой мыши область конструктора, а затем выберите Вставить>Диаграмма. Щелкните значок Солнечные лучи.

    ssrs_sunburst_icon

  2. Измените положение и размер диаграммы. Для использования с образцом данных достаточно начать с диаграммы шириной в 12 см.

  3. Добавьте следующие поля из образца данных.

    • Значения: LineTotal
    • Группы категорий (в следующем порядке):
      1. ИмяКатегории
      2. SubcategoryName
      3. SalesReasonName
    • Группы рядов: TerritoryName

    ssrs_treemap_example_properties

  4. Чтобы оптимизировать размер страницы для общей схемы диаграммы "солнечные лучи", задайте положение условных обозначений внизу.

  5. Измените заголовок диаграммы по умолчанию на Продажи по категориям и по территории с причинами покупки.

  6. Чтобы добавить значения групп категорий в диаграмму "солнечные лучи" в виде меток, задайте свойства меток Visible=true и UseValueAsLabel=false.

    Отображаемые значения меток зависят от размера шрифта, размера общей области диаграммы и размера определенных прямоугольников. Чтобы видеть больше меток, измените значение свойства Шрифт метки поля LineTotal на 10 пунктов вместо значения по умолчанию 8 пунктов.

    ssrs_sunburst_linetotalproperties

  7. Если требуется другой диапазон цветов, измените свойство диаграммы Palette .

    ssrs_visualization_palette

Примеры данных AdventureWorks

В этом разделе приводятся пример запроса и основные инструкции по созданию источника данных и набора данных в построителе отчетов. Если в вашем отчете уже имеются источник данных и набор данных, этот раздел можно пропустить.

Запрос возвращает подробные данные заказа на продажу AdventureWorks с территорией продажи, категорией продукта, подкатегорией продукта и данными о причине покупки.

  1. Получение данных.

    Примеры кода Transact-SQL в этой статье используют AdventureWorks2022 базу данных или AdventureWorksDW2022 пример базы данных, которую можно скачать с домашней страницы примеров и проектов сообщества Microsoft SQL Server.

  2. Создание источника данных.

    1. В области Данные отчета щелкните правой кнопкой мыши элемент Источники данных и выберите команду Добавить источник данных.

    2. Установите флажок Использовать соединение, внедренное в отчет.

    3. В качестве типа соединения выберите Microsoft SQL Server.

    4. Введите строку подключения к серверу и базе данных. Например:

      Data Source=[server name];Initial Catalog=AdventureWorks2022  
      
    5. Чтобы проверить подключение, нажмите кнопку Проверить подключение, а затем кнопку ОК.

    Дополнительные сведения о создании источника данных см. в статье Добавление и проверка подключения к данным (построитель отчетов и службы SSRS).

  3. Создание набора данных.

    1. В области Данные отчета щелкните правой кнопкой мыши элемент Наборы данных и выберите команду Добавить набор данных.

    2. Установите флажок Использовать набор данных, внедренный в отчет.

    3. Выберите созданный источник данных.

    4. Выберите тип запроса Текст, а затем скопируйте и вставьте следующий запрос в текстовое поле Запрос:

      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  
      
    5. Нажмите ОК.

    Дополнительные сведения о создании набора данных см. в статье Создание общего или внедренного набора данных (построитель отчетов и службы SSRS).