在线报表设计实战系列 – ⑥矩表高级应用
葡萄城报表是一套强大的报表开发和系统搭建工具,既能与您开发的报表软件项目紧密集成,也可独立部署运行,支持多数据源,具有无编码、灵活、稳定等特性,可以帮您快速搭建专业的报表软件系统,实现各类报表的设计、管理、权限控制、数据填报、负载均衡及跨平台发布。
葡萄城报表提供了两个表格类报表元素:普通表格和矩表。前者用于表格列固定不变的应用场合,后者用于表格列根据数据记录动态设置的应用场合。
矩表实现动态列的关键是列分组,事实上,矩表也可以不设置动态列,这样就可以用矩表实现普通表格的效果。尤其是,在多层表头的表格中,如果存在跨行的列标题纵向合并,就需要用矩表来实现。
下面介绍这种特殊矩表报表的设计实现方法。
(1)创建数据集
从报表管理门户(http://localhost:8080 )点击【创建报表】,进入新报表的设计页面。点击右边栏的【数据】选项卡,再点击【数据集】右侧的【添加】。
在【新建数据集】下方,选中之前创建好的示例数据源,再点击【添加】按钮,如下图:
在数据集编辑对话框中,输入SQL语句:
select * from 奖金明细 where 年份=2014
验证查询语句后点击【确定】,保存数据集的定义。
数据集的字段列表如下图:
(2)实现思路
原始数据如下图:
期望的报表展示方式如下图:
这是典型的中国式复杂报表,具体体现在:不仅是多层表头,而且表头中不仅有横向单元格合并(如【教育事业费】),还有纵向单元格合并(如【合计】)。
实现思路:
由于普通表格不支持纵向单元格合并,因此,尽管本报表并不需要根据某个字段设置动态列,还是应该采用矩表来设计。在具体设计中,不设置列分组即可。
(3)添加矩表
从左侧工具箱中拖放一个【矩表】,先在第二行第一个单元格绑定【学校类别】字段,此操作同时也设置了行分组依据为【学校类别】字段,如下图:
右键点击【学校类别】单元格,选择【行分组】-【子级分组】,绑定【学校名称】字段,此操作同时也设置了行分组的子级分组依据为【学校名称】字段,如下图:
注意现在矩表的第三列没有绑定任何字段,这也意味着,本报表只有行分组,没有设置列分组。
(4)添加静态列
右键单击【学校名称】,选择【列操作】-【在分组内-右侧】,如下图:
矩表将增加一个无分组的普通列。重复此操作,添加多个无分组静态列,然后绑定数据字段,如下图:
为实现多层表头,右键单击表头单元格,选择【行操作】-【上方】,插入一个新的表头行,如下图:
重复此操作,使得表头行总共有5行,如下图:
(5)设置合并单元格
选中需要合并的多个单元格,右键单击,选择【单元格】-【合并单元格】,在合并后的单元格内填写表头文字,在末行(数据行)的单元格内绑定数据字段或表达式,例如,第三列末行单元格内的表达式为:=Fields!教育人员经费.Value+Fields!教育日常公用经费.Value+ Fields!教育标准化建设经费.Value+ Fields!教育信息化建设经费.Value,表示【教育事业费】合计金额,如下图:
注意在合并单元格中,一部分是横向合并,一部分是纵向合并。
(6)设置汇总行
右键单击末行【学校类别】单元格,选择【汇总操作】-【在分组前显示汇总】,如下图:
对末行第二列的【学校名称】做同样的操作,如下图:
将文字“汇总”修改为“合计”,然后合并【汇总】与【学校名称】两个单元格,将内容修改为【总合计】,将绑定字段单元格内的表达式都改为Sum()表达式,如将【=Fields!教育标准化建设经费.Value+Fields!教育信息化建设经费.Value】改为【=sum(Fields!教育标准化建设经费.Value+Fields!教育信息化建设经费.Value)】,如下图:
(7)设置外观格式
选中标题行、合计行、【学校类别】单元格,设置不同的背景色,如下图:
预览效果如下:
至此,一个仅有静态列的复杂表头的报表就设计完成了。
定制培训加量全心送!凡在2017年12月31日之前,购买葡萄城控件团队授权和企业授权的用户,不仅可以享受到优惠的价格,还可获赠葡萄城技术专家根据客户项目需求提供的定制培训服务。老客户推荐新客户成单,也将获得“客户推荐双重感恩礼”。
点击此处,了解更多。
转载请注明出自:葡萄城报表