在IReport中是Javabean作为数据源 因为在项目中用到报表功能学习了这个Ireport做为报表设计,期初遇到很多问题,最后还是出来了
8、效果图效果图如下:
初次研究 网上也看了很多文章杂七杂八 来点简单的 关注重点一些基本操作就不在描述了
1、看看实体类 getXXX() setXXX()就滤过了
package org.share.domain.tree.entity;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class UserInfo implements Serializable {
private static final long serialVersionUID = -7171469571123003370L;
private String user_id;
private String user_name;
private String age;
private String phone;
private String address;
public static List<UserInfo> getListUserInfo(){
UserInfo u= new UserInfo();
u.setAddress("aaaaaaaaaaaaa");
u.setAge("2");
u.setPhone("1232423423");
u.setUser_name("aaaaa");
List<UserInfo> user=new ArrayList<UserInfo>();
user.add(u);
user.add(u);
return user;
}
}
3、我用了个list控件 加上一个矩形控件 如图
4、把Javabean中的字段添加到list控件中的数据源中 如图
5、将字段添加到控件上 如图
6、给组件list设置数据源 connection/datasource expression 表达式:$P{REPORT_PARAMETERS_MAP}.get("beans") 因为我后台map中设置的名就叫beans
7、后台代码 我用的是spingmvn 只有来生成pdf文件 没其他操作:
@RequestMapping(value="/csd",method=RequestMethod.GET)
public void createFilePdfsd(HttpServletRequest request){
//路径动态录入需要生产的pdf文件位置
String fileepath=request.getSession().getServletContext().getRealPath("template/repConReport.pdf");
try{
//判断文件是否存在
File f=new File(fileepath);
if(!f.exists()){
f.createNewFile();
}
//自定义数据源
Map<String, Object> parameters=new HashMap<String, Object>();
//获取Javabean list
List<UserInfo> userList= UserInfo.getListUserInfo();
//数据源为javabean
JRDataSource data= new JRBeanCollectionDataSource(userList);
//设置数据
parameters.put("beans", data);
//模板文件
String ctxpathIreport=request.getSession().getServletContext().getRealPath("jasper/report5.jasper");
File reportFile=new File(ctxpathIreport);
//实际中编译报表很耗时,采用Ireport编译好的报表
JasperReport jasperReport=(JasperReport)JRLoader.loadObject(reportFile);
//填充数据
JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport, parameters, new JREmptyDataSource());
//导出pdf文件
JasperExportManager.exportReportToPdfFile(jasperPrint,fileepath);
}catch (Exception e) {
e.printStackTrace();
}
}
8、效果图效果图如下: