大家周一好,中国式复杂报表开发教程又来咯!
在一些统计报表中,我们常利用树形报表实现维度钻取功能,逐级钻取查看更细粒度的指标数据,那么如何根据维度层次和最细粒度的指标数据,汇总生成树形结构报表统计报表呢?
本文主要介绍如何使用ActiveReports 设计开发树形结构报表,并设置进度条显示功能。
报表模板:
数据源结构:
实现思路:
1. 使用Table控件,按照级别字段分组;
2. 对不同级别的数据,添加缩进
3. 设置隐藏或展开状态
报表实现:
1. 新建RDL 报表模板
2. 添加数据源和数据集
3. 添加Table 控件
3.1 绑定数据字段
3.2 设置详细数据分组
3.2.1 选中“Table”,在属性窗口中,选择“属性对话框”
3.2.2 选择“详细数据分组”标签,输入表达式:=【编号】;上级分组:=【上级编号】;点击确定。
设置“可见性”选择“可见性可以通过其他报表元素进行切换”,输入TextBoxName:TextBox4;
3.2.3 选中“项目名称”单元格,设置“Padding”的Left 属性值为:=2 + (Level() * 20) & "pt"
4. 设置进度条
4.1 添加区间颜色函数;
如果项目进度<0.2 则表示紧急,显示为红色标识等;
选中 “脚本”选项,输入以下代码:
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 控件直接拖拽到单元格中
现在,为 Image 设置值:
首先,设置 Source属性为”Database”;
然后,设置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. 调整样式
到这里,报表的整体结构都已创建完成了,需要做的就是调整报表样式。
报表模板预览
网址:
目录:1. 常规报表-》Excel 表格类-》施工进度报告
登录名:Demo
密码: 123456
免费试用
请通过以下方式联系葡萄城,获取ActiveReports的免费试用版,及本文涉及的模板和源码。
微信:GrapeCityDT
邮件:marke
关于葡萄城控件
葡萄城是一家跨国软件研发集团,专注控件领域近30年,是全球最大的控件提供商,也是微软认证的金牌合作伙伴。
往期中国式复杂报表开发教程
(1)类 Excel 单维度交叉表
(2)类 Excel 多维度交叉表
(3)类 Excel 复合数据透视表
(4)类 Excel 复杂表头报表
(5)类 Excel 多层分组统计