星期一, 9月 30, 2013

[SSRS] 階梯狀報表

傳統資料表報表會將父群組放在報表的相鄰資料行中,而階梯狀報表會在相同的資料欄中,顯示父群組底下縮排的詳細資料列或子群組。

以下實作是為了顯示各分公司各部門的事病假報表
  • DataSet T-SQL 語法
USE [AdventureWorks2012]
GO

IF OBJECT_ID('Leave') IS NOT NULL
 DROP TABLE Leave

CREATE TABLE Leave (Branch nchar(4) , DepName nchar(20) , EmpName nchar(20) , personal numeric(4,1) , Sick numeric(4,1))
INSERT INTO Leave (Branch,DepName,EmpName,Personal,Sick) VALUES
  (N'台北',N'MIS',N'MIS-1',0.0,0.0)  ,
  (N'台北',N'MIS',N'MIS-2',8.0,8.0)  ,
  (N'台北',N'HR',N'HR-1',8.0,0.0)    ,
  (N'台中',N'Sales',N'Sales-1',0.0,4.0)   ,
  (N'台中',N'Sales',N'Slaes-2',8.0,8.0)  ,
  (N'台中',N'Marketing',N'Marking-1',8.0,4.0)  ,
  (N'高雄',N'Accounting',N'Accounting-1',0.0,0.0)  ,
  (N'高雄',N'Accounting',N'Accounting-2',0.0,0.0)  ,
  (N'高雄',N'Accounting',N'Accounting-3',0.0,0.0)  ,
  (N'高雄',N'Design',N'Design-1',0.0,0.0)  ,
  (N'高雄',N'Design',N'Design-2',0.0,0.0) 

  • 建立父群組
資料列 => 加入群組 => 父群組

[SSRS] 階梯狀報表-1

群組依據為 [DepName] 並勾選[加入群組頁首]

[SSRS] 階梯狀報表-2

重覆上述步驟加入 Branch 群組,結果如下圖所示

[SSRS] 階梯狀報表-3
  • 把資料移至資料欄
刪除綠色框框的資料欄並把紅色框框設為 Branch、橘色框框設為 DepName

[SSRS] 階梯狀報表-4

點選 Branch Group 欄位 => 滑鼠右鍵 => 刪除資料行,同樣步驟刪除 DepName Group、Branch column 和 DepName column

[SSRS] 階梯狀報表-5

設定 Branch 和 DepName 為其資料來源

[SSRS] 階梯狀報表-6

設定完後的報表

[SSRS] 階梯狀報表-7
  • 縮排設定
點選 DepName => 滑鼠右鍵 => 文字方塊屬性

[SSRS] 階梯狀報表-8

文字方塊屬性 => 對齊 => 填補選項 => 把 DepName 設定為 20 pt

[SSRS] 階梯狀報表-9

同樣步驟設定 EmpName,填補選項設為 40 pt,設定結果如下

[SSRS] 階梯狀報表-10

縮排單位除了 pt 外,還有其他單位可以使用,整理如下

單位
說明
in
英吋(1 英吋 = 2.54 公分)
cm
公分
mm
公厘
pt
點(1 = 172 英吋)
pc
Picas 1 picas = 12 點)

  • 整理版面並預覽設定結果
[SSRS] 階梯狀報表-11

沒有留言:

張貼留言