用Java报表工具FineReport层次坐标实现分条件设置行高

文 | 帆软数据应用研究院 2011-03-14 19:52:47

在中国式复杂web报表设计中,常常有一些涉及动态单元格间计算的问题,并根据动态单元格构建条件实现更为复杂的需求。FineReport报表工具提供了层次坐标和条件属性的结合使用来实现这种需求
下图为一张未设置条件属性的报表
未设置条件属性的报表
要求:当某地区的“收费站”为多个时,则显示“小计”一栏;当某地区的“收费站”只有一个,则不显示“小计”一栏,即“龙溪收费站”不需要显示“小计”一栏。所需效果如下图所示
分条件设置行高的报表
下面便来看看用Web报表工具FineReport实现如图所示效果的全过程
1.报表表样设计
报表表样设计
此时预览报表效果就是未添加任何条件的一个简单分组报表,如下图
简单分组报表
2.添加条件属性
条件属性面板如下
为了实现“小计”一栏能够分情况显示,就需要用到FineReport报表的“条件属性”,即B2单元格扩展出的结果等于1的时候,“小计”一行行高为0,否则“小计”一行正常显示。
则此条件的公式为count(B2[!0]{A2==$A2})==1
其中,A2==$A2指A2单元格扩展出的当前格子
B2[!0]指B2单元格扩展出的所有格子
B2[!0]{A2==$A2}则是指A2单元格扩展的当前格子对应的B2扩展的所有单元格
count(B2[!0]{A2==$A2})则是给B2扩展的格子计数。
3.报表效果预览
如下图所示,预期报表效果已经实现
报表效果预览

 

免费试用FineReport

阅读次数:1,687


返回顶部