Jasper+ireport动态报表学习(三)javabean作为数据源

来源:互联网 发布:c语言中assert 编辑:程序博客网 时间:2024/04/30 01:02

javabean作为数据源


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

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


1、看看实体类 getXXX() setXXX()就滤过了

[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. package org.share.domain.tree.entity;  
  2.   
  3. import java.io.Serializable;  
  4. import java.util.ArrayList;  
  5. import java.util.List;  
  6.   
  7. public class UserInfo implements Serializable {  
  8.   
  9.     private static final long serialVersionUID = -7171469571123003370L;  
  10.     private String user_id;  
  11.     private String user_name;  
  12.     private String age;  
  13.     private String phone;  
  14.     private String address;  
  15.   
  16.     public static List<UserInfo> getListUserInfo(){  
  17.     UserInfo u= new UserInfo();  
  18.     u.setAddress("aaaaaaaaaaaaa");  
  19.     u.setAge("2");  
  20.     u.setPhone("1232423423");  
  21.     u.setUser_name("aaaaa");  
  22.     List<UserInfo> user=new ArrayList<UserInfo>();  
  23.     user.add(u);  
  24.     user.add(u);  
  25.     return user;  
  26.     }   
  27. }  


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文件 没其他操作:

[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. @RequestMapping(value="/csd",method=RequestMethod.GET)  
  2.     public void createFilePdfsd(HttpServletRequest request){  
  3.         //路径动态录入需要生产的pdf文件位置  
  4.         String fileepath=request.getSession().getServletContext().getRealPath("template/repConReport.pdf");  
  5.         try{  
  6.             //判断文件是否存在  
  7.               File f=new File(fileepath);  
  8.               if(!f.exists()){  
  9.                   f.createNewFile();  
  10.               }  
  11.               //自定义数据源  
  12.               Map<String, Object> parameters=new HashMap<String, Object>();  
  13.   
  14.               //获取Javabean list  
  15.               List<UserInfo> userList= UserInfo.getListUserInfo();  
  16.               //数据源为javabean  
  17.               JRDataSource data= new JRBeanCollectionDataSource(userList);  
  18.               //设置数据  
  19.               parameters.put("beans", data);  
  20.               //模板文件  
  21.               String ctxpathIreport=request.getSession().getServletContext().getRealPath("jasper/report5.jasper");  
  22.               File reportFile=new File(ctxpathIreport);  
  23.               //实际中编译报表很耗时,采用Ireport编译好的报表  
  24.               JasperReport jasperReport=(JasperReport)JRLoader.loadObject(reportFile);    
  25.               //填充数据  
  26.               JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport, parameters, new JREmptyDataSource());  
  27.               //导出pdf文件  
  28.               JasperExportManager.exportReportToPdfFile(jasperPrint,fileepath);  
  29.           }catch (Exception e) {  
  30.             e.printStackTrace();  
  31.           }  
  32.     }  

8、效果图效果图如下:

0 0
原创粉丝点击