樹形分組(也稱逐級展開或鑽取)是統計報表中常見的一種功能和樣式,常利用樹形報表實現維度鑽取功能,逐級查看更細粒度的指標數據,那么如何根據維度層次和最細粒度的指標數據,匯總生成這樣一個樹形結構報表統計報表呢?
下面將使用葡萄城報表 Table 控件實現樹形結構報表,並設置進度條顯示功能。
一、報表模板
二、數據源結構
三、實現思路
1. 使用Table控件,按照級別字段分組;
2. 對不同級別的數據,添加縮進
3. 設置隱藏或展開狀態
四、報表實現
1. 新建RDL 報表模板
2. 添加數據源和數據集
3. 添加 Table 控件
3.1 綁定數據字段
3.2 綁定數據字段
3.2.1 選中“Table”,在屬性窗口中,選擇“屬性對話框”
3.2.2 選擇“詳細數據分組”標簽,輸入表達式:=【編號】;上級分組:=【上級編號】;點擊確定。
設置“可見性”選擇“可見性可以通過其他報表元素進行切換”,輸入TextBoxName:TextBox4;
3.2.4 選中“項目名稱”單元格,設置“Padding”的Left 屬性值為:=2 + (Level() * 20) & "pt"
4. 設置進度條
4.1 添加區間顏色函數(如果項目進度<0.2 則表示緊急,顯示為紅色標識等)
4.1.1 選中 “腳本”選項,輸入以下代碼:
Function GetColor(ByVal value As Double) As String If(value < 0.2) Then Return "Red" ElseIf(value < 0.4) Then Return "#F37A5A" ElseIf(value < 0.6) Then Return "#FFE022" ElseIf(value < 0.8) Then Return "#B5E610" Else Return "#00B338" End If End Function
4.2 添加Image 控件。
為“計划完成進度”和“實際完成進度”單元格,添加Image 控件,將Image 控件直接拖拽到單元格中
4.2.1 為 Image 設置值
1. 設置 Source屬性為”Database”
2. 設置Value 屬性為“=DataBar(Fields!計划完成進度.Value,0,1,0,Code.GetColor( Fields!計划完成進度.Value))
5. 設置進度條
5.1 添加行號腳本代碼
Private Dim Counter As Integer = 0 Public Function GetCounter() As Integer Me.Counter = Me.Counter + 1 return Me.Counter End Function
5.2 設置單元格值為:=Code.GetCounter()
6. 調整一下字體和顯示樣式
最終效果
轉載請注明出自:葡萄城報表
相關閱讀: