iReport学习二:javabean作为数据源

在IReport中是Javabean作为数据源 因为在项目中用到报表功能学习了这个Ireport做为报表设计,期初遇到很多问题,最后还是出来了

初次研究 网上也看了很多文章杂七杂八 来点简单的 关注重点一些基本操作就不在描述了


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;
	} 
}


2、打开软件 将javabean所在class添加到工具中的classpath中,我这里用的是maven  选择后点击保存


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、效果图效果图如下:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值