Java报表开发FineReport教程:[6]按段分组
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汇总-个数,不扩展,居中,其余默认
设计器预览模板,此时会将所有年龄都扩展出来,我们希望将年龄分成段显示。
![Java报表开发FineReport教程:[6]按段分组](https://exp-picture.cdn.bcebos.com/4080a927ac53068877f4bd7e57e8904801fc966c.jpg)
3、 自定义条件分组设置
选中年龄数据列所在单元格,数据设置修改为分组>高级,点击后面的自定义按钮,弹出自定义分组对话框,选择条件分组:
我们将年龄分成四段,分别如下:
组1:命名为小于20岁,条件为年龄小于20;
组2:命名为20~30岁,条件为年龄大于等于20 and 年龄小于30;
组3:命名为30~40岁,条件为年龄大于等于30 and 年龄小于40;
组4:命名为大于40岁,条件为年龄大于等于40。
![Java报表开发FineReport教程:[6]按段分组](https://exp-picture.cdn.bcebos.com/994f412043715fdbc6f8a18e468920c5270f8c6c.jpg)
4、保存并预览
保存模板,设计器中点击分页预览,效果如上。模板效果在线查看请点击CusGroup_2.cpt
5、 强制分组
由预览效果可以看到,由于没有符合“小于20岁”的年龄,因此没有显示出“小于20岁”这一组,若希望即使没有符合的的数据,显示出所有定义的分组的话,可以在自定义分组界面选择强制分组,结果如下:
![Java报表开发FineReport教程:[6]按段分组](https://exp-picture.cdn.bcebos.com/274e9635dd8a59debddf90b5b370d5413b8c846c.jpg)
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:168
阅读量:185
阅读量:50
阅读量:195
阅读量:62