您的位置:首页 > 编程语言 > ASP

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

2017-02-16 12:40 453 查看
javabean作为数据源

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

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

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

[java] view
plain copy

 





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

[java] view
plain copy

 





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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: