使用JavaBean作为数据源构造JasperReport子报表样式如下:
构造我的JavaBean如下(get,set方法省略):
public class Person {
private String name;
private String age;
private String sex;
private String telephone;
}
public class Depart {
private String subTitle;
private String depart_name;
private List<Person> personList = null;
}
构造我们的Service:
public class DepartService {
public List<Depart> getAllDepart() {
List<Depart> departList = new ArrayList<Depart>();
List<Person> personList = null;
Depart depart = new Depart("测试一", "开发部");
personList = new ArrayList<Person>();
personList.add(new Person("小博", "22", "男", "123456"));
personList.add(new Person("张三", "21", "男", "321456"));
personList.add(new Person("李四", "24", "女", "654321"));
personList.add(new Person("王五", "23", "男", "123456"));
depart.setPersonList(personList);
departList.add(depart);
depart = new Depart("测试二", "研发部");
personList = new ArrayList<Person>();
personList.add(new Person("小博", "22", "男", "123456"));
personList.add(new Person("李四", "24", "女", "654321"));
depart.setPersonList(personList);
departList.add(depart);
departList.add(depart);
return departList;
}
}
构造我们的Servlet:
public class JRPDFServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
DepartService departMght = new DepartService();
List<Depart> departList = departMght.getAllDepart();
ServletContext servletContext = this.getServletConfig().getServletContext();
File departJasperFile = new File(servletContext.getRealPath("/jasper/Main_Department_List.jasper"));
// 设置子报表的路径
String root_path = servletContext.getRealPath("/");
root_path = root_path.replace("\\", "\\\\");
root_path = root_path + "jasper\\\\";
Map<String, String> parameters = new HashMap<String, String>();
JasperPrint jasperPrint = null;
try {
JasperReport departJasperReport = (JasperReport) JRLoader
.loadObject(departJasperFile.getPath());
parameters.put("SUBREPORT_DIR", root_path);
jasperPrint = JasperFillManager.fillReport(departJasperReport,
parameters, new JRBeanCollectionDataSource(departList));
} catch (JRException e) {
e.printStackTrace();
}
if (null != jasperPrint) {
FileBufferedOutputStream fbos = new FileBufferedOutputStream();
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, fbos);
exporter
.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
try {
exporter.exportReport();
fbos.close();
if (fbos.size() > 0) {
response.setContentType("application/pdf");
response.setContentLength(fbos.size());
ServletOutputStream ouputStream = response
.getOutputStream();
try {
fbos.writeData(ouputStream);
fbos.dispose();
ouputStream.flush();
} finally {
if (null != ouputStream) {
ouputStream.close();
}
}
}
} catch (JRException e1) {
e1.printStackTrace();
} finally {
if (null != fbos) {
fbos.close();
fbos.dispose();
}
}
}
}
}
在web.xml配置servlet如下:
<servlet>
<servlet-name>JRPDFServlet</servlet-name>
<servlet-class>com.mengya.servlet.JRPDFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>JRPDFServlet</servlet-name>
<url-pattern>/JRSubPDFServlet</url-pattern>
</servlet-mapping>
页面调用:
<h3 align="center"><a href="JRSubPDFServlet">子表报</a></h3>
主要是报表设计如下面附件图片。
- lib1.rar (5.8 MB)
- 描述: 所需要jar包1
- 下载次数: 514
- lib2.rar (6.5 MB)
- 描述: 所需要jar包2
- 下载次数: 894
- 大小: 27.5 KB
- 大小: 10.3 KB
- 大小: 20.3 KB
- 大小: 22.2 KB
- 大小: 41.2 KB
- 大小: 49.8 KB
- 大小: 43.7 KB
分享到:
相关推荐
下载包含程序源码,lib包,ireport创建模板操作文档,说明。程序可以在java myeclipse环境下直接运行。jasperreport版本6.3.1,ireport为5.6.0
IREPORT使用JAVABEAN作为报表数据源IREPORT使用JAVABEAN作为报表数据源IREPORT使用JAVABEAN作为报表数据源
在网上找了很多ireport基于...对于bean中的子报表集合数据源怎么获取,始终不成功。现经过尝试终于弄明白是怎么回事了,上传以供分享。因从事IT工作,经常下载无积分,所有收一点点积分。祝大家研究顺利,共同进步!
ireport+jasperrepot+javabean实现可视化报表的项目源文件
jasperreport报表开发小结,使用ireport设计报表模板,javabean作为数据源,整合springboot实现在线预览和导出各种格式的报表
JasperReports作为一种优秀且开源的报表引擎,不利用太...本示例比较简单,采用的数据源即为JavaBean,而没有采用复杂的数据库,其实原理是一样的。只是传递给JasperReports的参数随着连接方式的变化而略加修改而已。
JasperReports作为一种优秀且开源的报表引擎,不利用太...本示例比较简单,采用的数据源即为JavaBean,而没有采用复杂的数据库,其实原理是一样的。只是传递给JasperReports的参数随着连接方式的变化而略加修改而已。
ireport java sql 报表 javabean与 ireport结合使用
实例中通过利用自定义javabean数据源实现报表实例,其中有代码和文档,还有项目中所需要的jar包,不需要重新下载jasper获取jar包
图示ireport中使用javabean作数据源开发基于jasperreports报表过程
NULL 博文链接:https://sunnymod.iteye.com/blog/815330
ireport中使用javabean作数据源开发jasperreports报表的详细过程 附有图片
是一款报表打印组件,是开放源代码组织 中的一个 报表打印工程, JasperReport sf.net 由于 本身并未提供很好的可视化报表设计工具, JasperReport 在之后推出了 iReport ,作为 报表模版编辑软件,具有以下突出的...
使用JavaBean连接数据库,详细讲述如何操作
iReport使用JavaBean做数据源
ireportjasperreport开源报表中使用javabean作为数据源的详细实.docx
使用javabean输入输出流对文件进行读取、修改、清空,使用javabean进行封装,使用流技术更加方便
webwork下jasperreport的subreport使用套打 javabean作为数据源。