用Java报表工具FineReport实现数据表由纵表转为横表的方法

一. 横表&纵表 数据库表按照存储的数据结构不同区分为横表与纵表,尽管二者数据结构不同,但是通过java报表工具FineReport可以方便实现纵表转为横表结构。通过如下数据的存储我们分别对横表与纵表进行简单介绍:

横表:
横向报表
纵表:
纵向报表
由上面两张图中可以看出,若我们要将每种产品的信息罗列在报表中展示,使用横表将会非常方便,直接将各字段拖进报表设计器对应标题的单元格即可,字段间不需要考虑任何逻辑关系(默认有扩展关系)如下图:将字段拖入报表单元格
预览如下:
报表预览
二. FineReport实现纵表转为横表显示 使用纵表时,想达到下图的效果,也很简单:
报表单元格条件设置
按照下列表格将数据集的字段拖入对应单元格内,并作相应的设置。
单元格 列名 基本属性设置
A2 字段编号 默认
B1 名称 从左到右扩展,其余默认
B2 属性 不扩展,其余默认
只需要设置名称字段为横向扩展,逻辑关系使用默认的,在展示数据时,就会对应选择出字段编号为A2,名称为B1的属性值,如下图所示:报表实现 便达到了数据库表为纵表时转变为横表显示。 三. 润乾实现纵表转为横表显示 参考润乾官网—知识库中—数据库为纵表时转为横表展现的设计方法:定义了两个数据集ds1,ds2,都取用数据库中的那个纵表:
定义数据集
B2:=ds1.dselect(字段编号) //相当于select distinct ……,取所有不重复的”字段编号”值,或者用=ds1.group(字段编号)用字段编号分组
C1:=ds1.dselect(名称) //取所有不重复的”名称”值
C2:=ds2.select(属性,,ds2.字段编号==B2&&ds2.名称==C1) //用横轴”字段编号”,纵轴”名称”作为筛选条件,把唯一的”属性”值取出来 。
结果预览如下:
报表预览
四. 总结 由上可以看出,FineReport报表与润乾都可以使用简单的交叉报表来实现数据库表为纵表时转变为横表来显示:操作都很简单,步骤也基本类似。 润乾报表使用数据表字段时默认为列表型,而FineReport报表默认为分组,后者更贴近用户的需求,大部分用户制作的是复杂的自由报表,所以通常需要合并相同项。
立即发现·数据价值

推荐阅读

→ 怎样用图表分析数据(一) → 信息化管理系统在企业中的价值 → 3步搞定销售分析报表 → 一款简单、实时、酷炫的图表制作软件 → 报表平台对CRM系统价值几何 → jasperReport+Ireport和FineReport报表的对比 → 3张报表搞定财务分析 → FineReport报表和水晶报表的比较 → 对企业而言,为何要选择优质的内部报表系统? → 谈谈数据决策平台搭建的必要性
版权所有©2017 南京帆软软件有限公司 | 苏ICP备14031611号-3
返回顶部