Jasper+ireport动态报表学习(三)javabean作为数据源
2017-02-16 12:40
453 查看
javabean作为数据源
在IReport中是Javabean作为数据源 因为在项目中用到报表功能学习了这个Ireport做为报表设计,期初遇到很多问题,最后还是出来了
初次研究 网上也看了很多文章杂七杂八 来点简单的 关注重点一些基本操作就不在描述了
1、看看实体类 getXXX() setXXX()就滤过了
[java] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
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 选择后点击保存
![](https://img-blog.csdn.net/20160924182010122)
3、我用了个list控件 加上一个矩形控件 如图
![](https://img-blog.csdn.net/20160924182047935)
4、把Javabean中的字段添加到list控件中的数据源中 如图
![](https://img-blog.csdn.net/20160924182135827)
5、将字段添加到控件上 如图
![](https://img-blog.csdn.net/20160924182216406)
6、给组件list设置数据源 connection/datasource expression 表达式:$P{REPORT_PARAMETERS_MAP}.get("beans") 因为我后台map中设置的名就叫beans
![](https://img-blog.csdn.net/20160924182303795)
7、后台代码 我用的是spingmvn 只有来生成pdf文件 没其他操作:
[java] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
@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、效果图效果图如下:
在IReport中是Javabean作为数据源 因为在项目中用到报表功能学习了这个Ireport做为报表设计,期初遇到很多问题,最后还是出来了
初次研究 网上也看了很多文章杂七杂八 来点简单的 关注重点一些基本操作就不在描述了
1、看看实体类 getXXX() setXXX()就滤过了
[java] view
plain copy
![](https://code.csdn.net/assets/CODE_ico.png)
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
![](https://code.csdn.net/assets/CODE_ico.png)
@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、效果图效果图如下:
相关文章推荐
- Codeforces Round #397 by Kaspersky Lab and Barcelona Bootcamp (Div. 1 + Div. 2 combined)
- [转]ASP.NET MVC实现POST方式的Redirect
- Jasper+ireport动态报表学习(二)使用数据库作为数据源进行报表绘制
- Jasper+ireport动态报表学习(一)
- raspberrypi——C多文件编程
- ASP.NET MVC+Entity Framework code first 迁移
- VS2015安装ASP.NET MVC4
- Asp.Net MVC学习总结(一)——Asp.Net MVC简单入门
- ASP.NET MVC用存储过程批量添加修改数据操作
- aspx、ashx、asmx文件处理请求效率比较
- 报表工具JasperReports入门教程
- Asp.net文件下载(Response.WriteFile)时文件名的中文乱码
- ASP.NET MVC用存储过程批量添加修改数据
- 关于快速开发:网红妹纸,给了我一个idea!
- C#-WebForm-★ASP.NET中的母版页★
- ASP.NET Core中的Startup类
- asp.net MVC-- viewbag和viewdata的区别
- Asp.net mvc 知多少(六)
- asp.net core mvc权限控制:分配权限
- ASP.NET MVC 5 (七-1)依赖项注入(DI)容器-Ninject