Ireport制定模板:
先要告诉Ireport报表中间包含的数据及其类型
package com.yohn.other;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRAbstractBeanDataSourceProvider;
import net.sf.jasperreports.engine.data.JRBeanArrayDataSource;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import com.accp.pojos.Dep;
import com.accp.pojos.Users;
// 模拟数据源,告诉ireport报表获取集合中间的数据的名称和格式
public class MyDataSourcePrivoder extends JRAbstractBeanDataSourceProvider {
//写一个无参的构造函数
public MyDataSourcePrivoder() {
super(Users.class);//将你集合中间对象的类型传入
}
//产生一些模拟数据出来
public JRDataSource create(JasperReport jr)
throws JRException {
List<Users> ls=new ArrayList();
for(int i=0;i<5;i++){
Users us=new Users();
us.setBirthday(new Date());
us.setDep(new Dep());
us.setId(i);
us.setPwd("abcd");
us.setSex(1);
us.setUsername("accp"+i);
ls.add(us);
}
return new JRBeanCollectionDataSource(ls);
}
public void dispose(JRDataSource arg0) throws JRException {
}
}
将类编译,然后将MyDataSourcePrivoder 该类和相关类(Users,Dep)配置到ireport中间