首页 > Web开发 > 详细

JasperReports入门教程(五):分组打印

时间:2020-11-28 14:29:33      阅读:26      评论:0      收藏:0      [点我收藏+]

JasperReports入门教程(五):分组打印


背景

在报表打印中,常有的一个打印需求是一个数据集按照某一个维度(字段)来分组打印表格,分组打印多个表格,并且统计一些合集信息。本章我们做一个例子,按照年级来分组打印每个年级的成绩信息,每个年级的学生总数。

方案分析

分组可以通过创建模板Group的方式来按照某一个字段分组,每个分组要打印的聚合信息可以通过创建Variable变量来实现。下面我们实现它。

数据源结构

[{"grade":"1年级学生信息","name":"1-1","score":"1","sex":"男"},{"grade":"1年级学生信息","name":"1-2","score":"2","sex":"男"},
{"grade":"2年级学生信息","name":"2-1","score":"1","sex":"男"},{"grade":"2年级学生信息","name":"2-2","score":"2","sex":"男"},
{"grade":"3年级学生信息","name":"3-1","score":"1","sex":"男"},{"grade":"3年级学生信息","name":"3-2","score":"2","sex":"男"}]

添加字段Field

前面的教程都讲过如何添加Field,这里就略过。去掉模板中多余的Band

添加的Field如下

技术分享图片

添加分组Group

1.在左侧报表上右键->Create Group 新建一个Group Band
选择Create Group from expression直接按照表达式来分组,表达式一般是选择一个字段,即按照选择的字段来分组
也可以选择Create Group from a report object,这样后续在添加的Group Header中一样可以设置分组表达式。

技术分享图片

2.选择Field中选择grade字段作为分组表达式依据

技术分享图片

3.然后next,勾选上Add the Group Header,Add the Group Footer后,Finish完成。

技术分享图片

技术分享图片

4.添加好的Group如下所示,分组表达式为grade字段,可以修改为其他字段,如果在第1步中选择了Create Group from a report object,同样可以在这里设置分组表达式

技术分享图片

在Group Header上添加打印信息

1.拖拽grade字段到Group1 Group Header 1上,此时会出现3个选项

  • No Calculation Funtion 没有计算函数,就是直接打印字段
  • Count 计数函数,打印分组数据的总数
  • Distinct Count 唯一计数函数,打印分组数据的总数,但是过滤掉重复的数据

一般默认选择No Calculation Funtion,如果需要计算的字段,可以后续在单独添加

技术分享图片

在Detail1中添加打印列表字段

前面的教程都讲过如何添加打印Field,这里就略过。添加好后如下图

技术分享图片

打印合计数据

在分组打印中,一般会打印总数,合计总金额之类的数据,下面我们按照grade分组后,打印总人数,和年级的平均成绩

1.首先添加计算变量 grade_count,类型是Integer,因为是计算总数,所以右侧的Calculation要选择Count函数,Expression选择grade
下面的Reset Type表示计算范围,因为是按照分组计算,所以选择创建的分组[Group] Group1,如果是按照页来计数要选择Page
添加Group分组时在Variable中会自动添加一个合计总数的变量Group1_COUNT,和grade_count一样的逻辑

技术分享图片

2.同第1步添加变量 grade_avg,类型是Integer,计算年级的平均成绩,Expression选择score分数字段

技术分享图片

3.添加总人数grade_count和平均分grade_avg到 Group Footer

技术分享图片

代码开发

本节代码和报表模板地址

JasperReports入门教程(五):分组打印

原文:https://www.cnblogs.com/xyyz120/p/14052395.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!