用实体类实现报表数据填充
创建一个实体类
上一节已经介绍了如何传入参数填充报表,这一节要用另一个数据源来填充报表,也就是上一节介绍到的jasper.fill()方法的第三个参数JRDataSource,JavaBeanColletion可以用来生成一个JRDataSource的实现 类,所以我们可以传入实体类对象集合来实现报表数据填充。
这个实体类很简单,就是学生的各科成绩,排名等这些参数。
public class StudentScore {
private String name;
private String id;
private String rank;
private String yuwne;
private String shuxue;
private String english;
private String shengwu;
private String wuli;
private String huaxue;
private String rankone;
public StudentScore(String name, String id, String rank, String yuwne, String shuxue, String english,
String shengwu, String wuli, String huaxue, String rankone) {
super();
this.name = name;
this.id = id;
this.rank = rank;
this.yuwne = yuwne;
this.shuxue = shuxue;
this.english = english;
this.shengwu = shengwu;
this.wuli = wuli;
this.huaxue = huaxue;
this.rankone = rankone;
}
}
创建一个可以生成Bean对象的Jar包
注意:在模板设计中,Jaspersoft studio只能识别Jar包文件,如果要在模板中加入实体类对象集合作为数据源,就必须将生成实体类对象集合的一个工具类,还有实体类本身打包成一个Jar然后在Jaspersoft studio中导入该Jar包,否则studio是读不到这个实体类的对象的。
该工具类由一个静态方法组成,该方法返回实体类对象的集合,一定要记住该静态方法名,后面会用到。
package test.bean;
import java.util.ArrayList;
public class StudentBeanFactory {
public static ArrayList<StudentScore> getBeanCollection(){
ArrayList<StudentScore> dataList=new ArrayList<>();
dataList.add(new StudentScore("王小白", "95279527", "3", "102", "113", "108", "80", "82", "83", "6"));
dataList.add(new StudentScore("王小红", "95289528",