在线报表设计实战系列 – ⑥矩表高级应用

葡萄城报表是一套强大的报表开发和系统搭建工具,既能与您开发的报表软件项目紧密集成,也可独立部署运行,支持多数据源,具有无编码、灵活、稳定等特性,可以帮您快速搭建专业的报表软件系统,实现各类报表的设计、管理、权限控制、数据填报、负载均衡及跨平台发布。

葡萄城报表提供了两个表格类报表元素:普通表格和矩表。前者用于表格列固定不变的应用场合,后者用于表格列根据数据记录动态设置的应用场合。
矩表实现动态列的关键是列分组,事实上,矩表也可以不设置动态列,这样就可以用矩表实现普通表格的效果。尤其是,在多层表头的表格中,如果存在跨行的列标题纵向合并,就需要用矩表来实现。

下面介绍这种特殊矩表报表的设计实现方法。

(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日之前,购买葡萄城控件团队授权企业授权的用户,不仅可以享受到优惠的价格,还可获赠葡萄城技术专家根据客户项目需求提供的定制培训服务。老客户推荐新客户成单,也将获得“客户推荐双重感恩礼”。

点击此处,了解更多。

转载请注明出自:葡萄城报表

时间: 2024-11-05 20:43:10

在线报表设计实战系列 – ⑥矩表高级应用的相关文章

在线报表设计实战系列 – ②制作表格类报表

葡萄城报表是一套强大的报表开发和系统搭建工具,既能与您开发的报表软件项目紧密集成,也可独立部署运行,支持多数据源,具有无编码.灵活.稳定等特性,可以帮您快速搭建专业的报表软件系统,实现各类报表的设计.管理.权限控制.数据填报.负载均衡及跨平台发布. 本文基于<在线报表设计实战系列>的第一篇文章--准备数据源(微信第二条),主要介绍表格类报表的设计方法和步骤. 1. 创建数据集 上一节介绍了数据源的定义.定义数据源的目的是确定从何处读取数据,具体读取什么数据,则由数据集的定义来确定. 点击系统管

在线报表设计实战系列 – ①准备数据源

葡萄城报表是一套强大的报表开发和系统搭建工具,既能与您开发的报表软件项目紧密集成,也可独立部署运行,支持多数据源,具有无编码.灵活.稳定等特性,可以帮您快速搭建专业的报表软件系统,实现各类报表的设计.管理.权限控制.数据填报.负载均衡及跨平台发布. 葡萄城报表自 v11.2 版本,隆重推出基于 HTML5 技术的在线报表设计器,从此报表设计工作跨进"在线"时代,那么在线设计器究竟该如何使用呢? 我们将推出<在线报表设计实战系列>,来帮助用户更好的了解和使用在线设计器.本文是

在线报表设计实战系列 – ⑦制作图表类报表

葡萄城报表是一套强大的报表开发和系统搭建工具,既能与您开发的报表软件项目紧密集成,也可独立部署运行,支持多数据源,具有无编码.灵活.稳定等特性,可以帮您快速搭建专业的报表软件系统,实现各类报表的设计.管理.权限控制.数据填报.负载均衡及跨平台发布. 图表是数据可视化的工具,广泛应用于各种数据分析应用场景.在线设计器的主要设计目标之一,就是允许业务管理人员简单方便地设计各类图表. 设计一个图表类报表的大致步骤如下: (1)创建数据集. (2)添加图表控件. (3)设置X与Y轴数据字段. (4)外观

[.NET领域驱动设计实战系列]专题一:前期准备之EF CodeFirst

一.前言 从去年已经接触领域驱动设计(Domain-Driven Design)了,当时就想自己搭建一个DDD框架,所以当时看了很多DDD方面的书,例如领域驱动模式与实战,领域驱动设计:软件核心复杂性应对之道和领域驱动设计C# 2008实现等书,由于当时只是看看而已,并没有在自己代码中进行实现,只是初步了解一些DDD分层的思想和一些基本概念,例如实体,聚合根.仓储等概念,今年有机会可以去试试面试一个架构岗位的时候,深受打击,当面试官问起是否在项目中使用过DDD思想来架构项目时,我说没有,只是了解

简单4步教你用在线表格设计用户调研收集表

用在线表格设计用户调研收集表?在线表格还可以做这个?大家肯定有很多疑问,今天小编就来给你一一解答,只需要简单的4步,就可轻松设计一套用户调研收集表. 1:我们使用百度浏览器搜索"蜘蛛表格"官网,进入官网点击免费使用或者右上角注册 2:点击注册之后弹如入第二个页面,完成以下填写信息之后注册,会提示你注册成功,登录之后会进入后台. 3:然后新建应用-新建模板应用-用户调研模板-使用模板-修改相关参数及调研问题. 4:相关参数设置完成点击发布表单-创建生成链接,用户调研系统就做好了,可分享链

NET 领域驱动设计实战系列总结

NET 领域驱动设计实战系列总结 一.引用 其实在去年本人已经看过很多关于领域驱动设计的书籍了,包括Microsoft .NET企业级应用框架设计.领域驱动设计C# 2008实现.领域驱动设计:软件核心复杂性应对之道.实现领域驱动设计和Asp.net 设计模式等书,但是去年的学习仅仅限制于看书,当时看下来感觉,领域驱动设计并没有那么难,并且感觉有些领域驱动设计的内容并没有好的,反而觉得有点华而不实的感觉,所以去年也就放弃了领域驱动设计系列的分享了,但是到今年,在博客园看到还是有很多人写领域驱动的

[.NET领域驱动设计实战系列]专题十一:.NET 领域驱动设计实战系列总结

一.引用 其实在去年本人已经看过很多关于领域驱动设计的书籍了,包括Microsoft .NET企业级应用框架设计.领域驱动设计C# 2008实现.领域驱动设计:软件核心复杂性应对之道.实现领域驱动设计和Asp.net 设计模式等书,但是去年的学习仅仅限制于看书,当时看下来感觉,领域驱动设计并没有那么难,并且感觉有些领域驱动设计的内容并没有好的,反而觉得有点华而不实的感觉,所以去年也就放弃了领域驱动设计系列的分享了,但是到今年,在博客园看到还是有很多人写领域驱动的文章,以及介绍了领域驱动设计相关的

[.NET领域驱动设计实战系列]专题二:结合领域驱动设计的面向服务架构来搭建网上书店

一.前言 在前面专题一中,我已经介绍了我写这系列文章的初衷了.由于dax.net中的DDD框架和Byteart Retail案例并没有对其形成过程做一步步分析,而是把整个DDD的实现案例展现给我们,这对于一些刚刚接触领域驱动设计的朋友可能会非常迷茫,从而觉得领域驱动设计很难,很复杂,因为学习中要消化一个整个案例的知识,这样未免很多人消化不了就打退堂鼓,就不继续研究下去了,所以这样也不利于DDD的推广.然而本系列可以说是刚接触领域驱动设计朋友的福音,本系列将结合领域驱动设计的思想来一步步构建一个网

[.NET领域驱动设计实战系列]专题十:DDD扩展内容:全面剖析CQRS模式实现

一.引言 前面介绍的所有专题都是基于经典的领域驱动实现的,然而,领域驱动除了经典的实现外,还可以基于CQRS模式来进行实现.本专题将全面剖析如何基于CQRS模式(Command Query Responsibility Segregation,命令查询职责分离)来实现领域驱动设计. 二.CQRS是什么? 在介绍具体的实现之前,对于之前不了解CQRS的朋友来说,首先第一个问题应该是:什么是CQRS啊?你倒是详细介绍完CQRS后再介绍具体实现啊?既然大家会有这样的问题,所以本专题首先全面介绍下什么是