Treemap- und Sunburst-Diagramme in einem paginierten Bericht in SQL Server Reporting Services (Berichts-Generator)

Gilt für: Microsoft Report Builder (SSRS) Power BI Report Builder Berichts-Designer in SQL Server Data Tools

Die Treemap- und Sunburst-Visualisierungen des SQL Server-Berichts-Generators sind gut für die visuelle Darstellung von hierarchischen Daten in einem paginierten Bericht geeignet. In diesem Artikel wird erklärt, wie Sie ein Treemap- oder Sunburst-Diagramm zu einem Bericht hinzufügen. Außerdem beinhaltet er eine AdventureWorks-Beispielabfrage, um Sie bei den ersten Schritten zu unterstützen.

Treemap-Diagramm

In einem Treemap-Diagramm wird die Diagrammfläche in Rechtecke unterteilt, die die verschiedenen Ebenen und die relative Größe der Datenhierarchie darstellen. Die Darstellung ähnelt dem Geäst eines Baums, das am Stamm beginnt und sich in immer feinere Zweige aufspaltet. Jedes Rechteck wird in kleinere Rechtecke aufgespalten, die die nächste Hierarchieebene darstellen. Die größten Rechtecke des Treemap-Diagramms werden mit dem größten Rechteck in der oberen linken Ecke des Diagramms angeordnet. Diese Rechtecke stellen die oberste Hierarchieebene dar. Die Rechtecke sind nach absteigender Hierarchie angeordnet, und das kleinste Rechteck befindet sich in der unteren rechten Ecke. Innerhalb eines Rechtecks sind die Rechtecke ebenfalls der Hierarchie entsprechend von oben links nach unten rechts angeordnet.

In der folgenden Abbildung eines Beispiel-Treemap-Diagramms ist das Gebiet „Southwest“ (Südwesten) das größte und „Germany“ (Deutschland) das kleinste. Innerhalb des Südwestens ist das Feld „Road Bikes“ (Rennräder) größer als das für „Mountain Bikes“.

ssrs_treemap_example

Einfügen eines Treemap-Diagramms und Einrichten der Adventureworks-Beispieldaten

Hinweis

Bevor Sie Ihrem Bericht ein Diagramm hinzufügen, erstellen Sie eine Datenquelle und ein Dataset. Beispieldaten und eine Beispielabfrage finden Sie im Abschnitt Sample AdventureWorks data (Adventureworks-Beispieldaten).

  1. Klicken Sie mit der rechten Maustaste auf die Designoberfläche und anschließend auf Einfügen>Diagramm. Klicken Sie auf das Treemap-Symbol.

    ssrs_treemap_icon

  2. Passen Sie die Position und Größe des Diagramms an. Für die Verwendung mit den Beispieldaten wird ein Diagramm mit einer Breit von 5 Zoll empfohlen.

  3. Fügen Sie die folgenden Felder aus den Beispieldaten hinzu:

    • Werte: LineTotal
    • Kategoriegruppen (in der folgenden Reihenfolge):
      1. CategoryName
      2. SubcategoryName
    • Seriengruppen: TerritoryName

    ssrs_treemap_example_properties

  4. Um die Seitengröße für ein Treemap-Diagramm anzupassen, positionieren Sie die Legende ans Ende.

  5. Klicken Sie mit der rechten Maustaste auf LineTotal und anschließend auf Reiheneigenschaften, um QuickInfos hinzuzufügen, die die Unterkategorie und die Zeilensumme anzeigen.

    ssrs_visualization_seriesproperties

    Legen Sie die Eigenschaft QuickInfo auf den folgenden Wert fest:

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

    Weitere Informationen finden Sie unter Anzeigen von QuickInfos für eine Reihe in einem paginierten Bericht (Berichts-Generator).

  6. Ändern Sie den Standarddiagrammtitel in Categorized Sales by Territory (Verkäufe nach Kategorie und Territorium).

  7. Die Anzahl der angezeigten Beschriftungswerte wird durch die Größe der Schriftart, die Gesamtgröße der Diagrammfläche und die Größe der jeweiligen Rechtecke beeinflusst. Um weitere Bezeichnungen anzuzeigen, ändern Sie die LineTotal-Eigenschaft Bezeichnungsschriftart von 8 Punkt (standardmäßig eingestellt) in 10 Punkt.

Sunburst-Diagramm

In einem Sunburst-Diagramm wird die Hierarchie durch eine Reihe von Kreisen dargestellt. Die höchste Ebene der Hierarchie liegt im Zentrum, während die niedrigeren Hierarchieebenen Ringe sind, die außerhalb des Zentrums angezeigt werden. Die unterste Hierarchieebene befindet sich im äußersten Ring.

ssrs_sunburst_example

Einfügen eines Sunburst-Diagramms und Einrichten der Adventureworks-Beispieldaten

Hinweis

Bevor Sie Ihrem Bericht ein Diagramm hinzufügen, erstellen Sie eine Datenquelle und ein Dataset. Beispieldaten und eine Beispielabfrage finden Sie im Abschnitt Sample AdventureWorks data (Adventureworks-Beispieldaten).

  1. Klicken Sie mit der rechten Maustaste auf die Designoberfläche und anschließend auf Einfügen>Diagramm. Klicken Sie auf das Sunburst-Symbol.

    ssrs_sunburst_icon

  2. Passen Sie die Position und Größe des Diagramms an. Für die Verwendung mit den Beispieldaten wird ein Diagramm mit einer Breit von 5 Zoll empfohlen.

  3. Fügen Sie die folgenden Felder aus den Beispieldaten hinzu:

    • Werte: LineTotal
    • Kategoriegruppen (in der folgenden Reihenfolge):
      1. CategoryName
      2. SubcategoryName
      3. SalesReasonName
    • Seriengruppen: TerritoryName

    ssrs_treemap_example_properties

  4. Um die Seitengröße für ein Sunburst-Diagramm zu optimieren, positionieren Sie die Legende ans Ende.

  5. Ändern Sie den Standarddiagrammtitel auf Categorized Sales by Territory, with sales reason (Verkäufe nach Kategorie und Territorium, unter Berücksichtigung des Kaufgrunds).

  6. Um dem Sunburst-Diagramm die Werte der Kategoriegruppen hinzuzufügen, legen Sie die Beschriftungseigenschaften wie folgt fest: Visible=true und UseValueAsLabel=false.

    Die angezeigten Beschriftungswerte werden durch die Größe der Schriftart, die Gesamtgröße der Diagrammfläche und die Größe der jeweiligen Rechtecke beeinflusst. Um weitere Bezeichnungen anzuzeigen, ändern Sie die LineTotal-Eigenschaft Bezeichnungsschriftart von 8 Punkt (standardmäßig eingestellt) in 10 Punkt.

    ssrs_sunburst_linetotalproperties

  7. Wenn Sie den Farbbereich ändern möchten, verändern Sie im Diagramm die Eigenschaft Palette .

    ssrs_visualization_palette

AdventureWorks-Beispieldaten

Dieser Abschnitt enthält eine Beispielabfrage und die grundlegenden Schritte zum Erstellen einer Datenquelle und eines Datasets im Berichts-Generator. Wenn Ihr Bericht bereits eine Datenquelle und ein Dataset enthält, können Sie diesen Abschnitt überspringen.

Die Abfrage gibt detaillierte AdventureWorks-Daten zu Verkaufsaufträgen mit Daten zum Vertriebsgebiet, der Produktkategorie, der Unterkategorie des Produkts und dem Verkaufsgrund aus.

  1. Rufen Sie die Daten ab.

    In den Transact-SQL-Codebeispielen in diesem Artikel wird die Beispieldatenbank AdventureWorks2022 verwendet. Diese können Sie von der Homepage Microsoft SQL Server Samples and Community Projects herunterladen.

  2. Erstellen Sie eine Datenquelle.

    1. Klicken Sie unter Berichtsdaten mit der rechten Maustaste auf die Datenquellen, und klicken Sie anschließend auf Datenquelle hinzufügen.

    2. Klicken Sie auf In meinem Bericht eingebettete Verbindung verwenden.

    3. Wählen Sie als Verbindungstyp die Option Microsoft SQL Server aus.

    4. Geben Sie die Verbindungszeichenfolge für Ihren Server und Ihre Datenbank ein. Beispiel:

      Data Source=[server name];Initial Catalog=AdventureWorks2022  
      
    5. Klicken Sie zunächst auf die Schaltfläche Verbindung testen und anschließend auf OK, um die Verbindung mit der Datenbank zu prüfen.

    Weitere Informationen zum Erstellen einer Datenquelle finden Sie unter Hinzufügen und Prüfen einer Datenverbindung (Berichts-Generator und SSRS).

  3. Erstellen Sie ein Dataset.

    1. Klicken Sie unter Berichtsdaten mit der rechten Maustaste auf Datenquellen, und wählen Sie Dataset hinzufügen aus.

    2. Wählen Sie Ein in den eigenen Bericht eingebettetes Dataset verwendenaus.

    3. Klicken Sie auf die von Ihnen erstellte Datenquelle.

    4. Klicken Sie auf den Abfragetyp Text, kopieren Sie die folgende Abfrage, und fügen Sie sie in das Textfeld Abfrage ein:

      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. Klicken Sie auf OK.

    Weitere Informationen zum Erstellen eines Datasets finden Sie unter Erstellen eines freigegebenen oder eingebetteten Datasets (Berichts-Generator und SSRS).

Siehe auch