树形分组(也称逐级展开或钻取)是统计报表中常见的一种功能和样式,常利用树形报表实现维度钻取功能,逐级查看更细粒度的指标数据,那么如何根据维度层次和最细粒度的指标数据,汇总生成这样一个树形结构报表统计报表呢?
下面将使用葡萄城报表 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. 调整一下字体和显示样式
转载请注明出自:葡萄城报表
来源: http://www.cnblogs.com/powertoolsteam/p/tree_report.html