多语言展示
当前在线:1099今日阅读:175今日分享:29

报表开发工具FineReport:[6]按段分组

按段分组是一个比较典型的高级分组报表样式,其分组是根据数据的值段来分的,比如按照分数段、年龄段、时间段等,属于某个值区间的记录归到一个组里显示,如下图:
工具/原料
1

报表开发工具:FineReport

2

电脑

方法/步骤
1

新建报表,添加数据集新建工作薄,添加数据集ds1,SQL语句为SELECT 雇员ID, 职务, strftime('%Y','now')-strftime('%Y',出生日期) +1 AS 年龄 FROM [雇员]。雇员表中存的是雇员的出生日期,因此在SQL中我们使用SQL函数strftime('%Y','now')-strftime('%Y',出生日期) +1根据出生日期计算出员工的年龄。

2

表样设计如下图制作报表:数据列设置如下:单元格数据集数据列属性A3ds1职务从上到下扩展,居中,其余默认B2ds1年龄从左到右扩展,居中,其余默认B3ds1雇员ID汇总-个数,不扩展,居中,其余默认设计器预览模板,此时会将所有年龄都扩展出来,我们希望将年龄分成段显示。

3

自定义条件分组设置选中年龄数据列所在单元格,数据设置修改为分组>高级,点击后面的自定义按钮,弹出自定义分组对话框,选择条件分组:我们将年龄分成四段,分别如下:组1:命名为小于20岁,条件为年龄小于20;组2:命名为20~30岁,条件为年龄大于等于20 and 年龄小于30;组3:命名为30~40岁,条件为年龄大于等于30 and 年龄小于40;组4:命名为大于40岁,条件为年龄大于等于40。

4

保存并预览保存模板,设计器中点击分页预览,效果如上。模板效果在线查看请点击CusGroup_2.cpt

5

强制分组由预览效果可以看到,由于没有符合“小于20岁”的年龄,因此没有显示出“小于20岁”这一组,若希望即使没有符合的的数据,显示出所有定义的分组的话,可以在自定义分组界面选择强制分组,结果如下:已完成的模板,可参见%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\GroupReport\CusGroup_2.cpt。

推荐信息