SQL Server Reporting Services 的編頁報表中的樹狀圖和放射環狀圖 (報表產生器)
適用於:Microsoft 報表產生器 (SSRS) Power BI Report Builder SQL Server Data Tools 中的報表設計師
SQL Server 報表產生器的樹狀圖和放射環狀視覺效果非常適合在編頁報表中以視覺方式呈現階層資料。 此文章是如何將樹狀圖或放射環狀圖新增到報表的概觀。 本文也包含可協助您開始使用的 AdventureWorks 範例查詢。
樹狀圖圖表
樹狀圖圖表會將圖表區域分割成矩形,該矩形代表資料階層的不同層級與相對大小。 樹狀圖類似樹上的樹枝,從主幹開始,分割為越來越小的分支。 每個矩形會分成較小的矩形,表示階層中的下一個層級。 最上層的樹狀圖矩形的排列方式是,最大的矩形排列在圖表左上角,最小的矩形在右下角。 在矩形中,更高的下一層級也會從左上到右下排列矩形。
例如,在下列範例樹狀圖中,Southwest (西南) 的領域最大,而 Germany (德國) 最小。 Southwest (西南) 當中,Road Bikes (公路自行車) 比 Mountain Bikes (登山自行車) 大。
插入樹狀圖圖表並設定範例 Adventureworks 資料
注意
在您新增圖表到報表前,請先建立資料來源和資料集。 如需範例資料和範例查詢,請參閱範例 AdventureWorks 資料。
以滑鼠右鍵按一下設計介面,然後選取 插入>圖表。 選取樹狀圖圖示。
重新調整圖表位置及大小。 若要搭配範例資料使用,5 英吋寬的圖表是不錯的起點。
從範例資料新增下列欄位:
- 值:LineTotal
- 類別目錄群組 (依下列順序):
- CategoryName
- SubcategoryName
- 序列群組:TerritoryName
若要對樹狀圖的一般形狀最佳化頁面大小,請將圖例位置設定為底部。
若要新增顯示子類別和總金額的工具提示,以滑鼠右鍵按一下 [LineTotal] 然後選取 [數列屬性]。
將 Tooltip 屬性設為下列值:
=Fields!SubcategoryName.Value &": " &Format(Sum(Fields!LineTotal.Value),"C")
如需詳細資訊,請參閱在數列上顯示工具提示 (報表產生器及 SSRS)。
將預設圖表標題變更為「按領域分類的銷售量」。
顯示的標籤值數目會受字型大小、整體圖表區域大小,和特定矩形的大小影響。 若要看到更多標籤,將 LineTotal 的 Label Font 屬性從預設的 8pt 變更為 10pt。
放射環狀圖表
在放射環狀圖中,階層會以一系列的圓形來表示。 在中心是階層的最高層級,階層的較低層級則會顯示為中心之外的環。 最低層級的階層在環形外部。
插入放射環狀圖表並設定範例 Adventureworks 資料
注意
在您新增圖表到報表前,請先建立資料來源和資料集。 如需範例資料和範例查詢,請參閱範例 AdventureWorks 資料。
以滑鼠右鍵按一下設計介面,然後選取 [插入]>[圖表]。 選取 [放射環狀圖] 圖示。
重新調整圖表位置及大小。 若要搭配範例資料使用,5 英吋寬的圖表是不錯的起點。
從範例資料新增下列欄位:
- 值:LineTotal
- 類別目錄群組 (依下列順序):
- CategoryName
- SubcategoryName
- SalesReasonName
- 序列群組:TerritoryName
若要對放射環狀圖表的一般形狀最佳化頁面大小,請將圖例位置設定為底部。
將預設圖表標題變更為「按領域分類的銷售量 (包含銷售原因)」。
若要新增類別群組的值到放射環狀圖作為標籤,請設定標籤屬性 Visible=true 和 UseValueAsLabel=false。
顯示的標籤值會受字型大小、整體圖表區域大小,和特定矩形的大小影響。 若要看到更多標籤,將 LineTotal 的 Label Font 屬性從預設的 8pt 變更為 10pt。如果您想要不同的色彩範圍,請變更圖表的 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)。
相關內容
- 共用資料集設計檢視 (報表產生器)
- 在數列上顯示工具提示 (報表產生器及 SSRS)
- 教學課程:Power BI 中的樹狀圖
- Treemap:Microsoft Research Data Visualization Apps for Office (樹狀圖:適用於 Office 之 Microsoft 研究的資料視覺效果應用程式)