java(ireport+jasperreport)创建报表
2010-08-20 17:33
435 查看
首先,确定你的ireport和jasperreport的版本是否一致,不一致会出现意外问题(如:detail的数据不显示,我就被这个折磨的很久...)
jar有commons-logging.jar/groovy.jar/asm.jar/mysql-connector-java.jar/jasperreports.jar/poi-3.5-FINAL.jar/log4j.jar/ognl.jar
理论知识不介绍,直接操作:
这里说一下,报表的数据源有两种形式,1.对数据库的查询结果,在ireport里需要创建数据库的连接,编写查询语句,将查询结果赋给field字段,而java传给一个Connection;2.JavaBean提供的list(Bean)数据,ireport中只需要建立$F{Bean的属性名称},拖入编辑面板。
一)
1。ireport软件中建立报表模板,
1)建立一个对Mysql数据库的连接
![](http://blog.csdn.net/tigerq326/article/details/C:/Documents and Settings/Administrator/桌面/截图工具/保存的图片信息/16 点 11 分 15 秒.bmp)
(由于图片不能上传,写下ireport中的操作:Connection/Datasources---new Database JDBC connection)
2)创建查询,点击ok结果会自动转为field类型(Report query)
![](http://blog.csdn.net/tigerq326/article/details/C:/Documents and Settings/Administrator/桌面/截图工具/保存的图片信息/16 点 25 分 48 秒.bmp)
3)将Fields中的filed拖入编辑面板,至于布局啥的,不多说
而后,点击小锤子compile report编译,将文件XXX.jasper拷贝放入java工程中某位置(在哪不要求,能够得到其path就可以)
下面就是java编码了
二)
1.数据对象类
2.
参考资料:】
http://express.ruanko.com/ruanko-express_3/webpage/tech-overnight_1.html
http://blog.163.com/pqg_iloveyou/blog/static/33351875200710610411367/?fromdm&fromSearch&isFromSearchEngine=yes
报表属性设置:http://cctv663.blog.163.com/blog/static/10119212200721552441765/
jar有commons-logging.jar/groovy.jar/asm.jar/mysql-connector-java.jar/jasperreports.jar/poi-3.5-FINAL.jar/log4j.jar/ognl.jar
理论知识不介绍,直接操作:
这里说一下,报表的数据源有两种形式,1.对数据库的查询结果,在ireport里需要创建数据库的连接,编写查询语句,将查询结果赋给field字段,而java传给一个Connection;2.JavaBean提供的list(Bean)数据,ireport中只需要建立$F{Bean的属性名称},拖入编辑面板。
一)
1。ireport软件中建立报表模板,
1)建立一个对Mysql数据库的连接
![](http://blog.csdn.net/tigerq326/article/details/C:/Documents and Settings/Administrator/桌面/截图工具/保存的图片信息/16 点 11 分 15 秒.bmp)
(由于图片不能上传,写下ireport中的操作:Connection/Datasources---new Database JDBC connection)
2)创建查询,点击ok结果会自动转为field类型(Report query)
![](http://blog.csdn.net/tigerq326/article/details/C:/Documents and Settings/Administrator/桌面/截图工具/保存的图片信息/16 点 25 分 48 秒.bmp)
3)将Fields中的filed拖入编辑面板,至于布局啥的,不多说
而后,点击小锤子compile report编译,将文件XXX.jasper拷贝放入java工程中某位置(在哪不要求,能够得到其path就可以)
下面就是java编码了
//文件保存地址 File resultExcel = new File("./WebContent/WEB-INF/" + "/reportfile/employee.xls"); try { String url ="jdbc:mysql://127.0.0.1:3306/bbs" ; Class.forName("org.gjt.mm.mysql.Driver").newInstance(); Connection conn= DriverManager.getConnection(url,"root","123"); JasperPrint jasperPrint = JasperFillManager.fillReport("./WebContent/WEB-INF/" + "/jasper/XXXX.jasper", null, conn); JRXlsExporter exporter = new JRXlsExporter(); exporter .setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); // 删除记录最下面的空行 exporter.setParameter( JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, true); // 显示边框 exporter.setParameter( JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, true); // 删除多余的ColumnHeader exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, false); exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, resultExcel.toString()); exporter.exportReport(); conn.close(); System.out.println("Success !"); } catch (Exception e) { System.out.println("wrong !"); e.printStackTrace(); }
二)
1.数据对象类
package com.qqtech.pojo; public class User{ public String name; public String password ; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setAge(String password) { this.password = password; } public User(String n){ this.name = n; this.password = "123"; } }
2.
List<User> list = new ArrayList<User>(); User user; for(int i=0;i<10;i++){ user = new User("User"+i); list.add(user); } JRBeanCollectionDataSource _source = new JRBeanCollectionDataSource( list); File resultExcel = new File("./WebContent/WEB-INF/" + "/reportfile/user.xls"); try { JasperPrint jasperPrint = JasperFillManager.fillReport("./WebContent/WEB-INF/" + "/jasper/user.jasper", null, _source); JRXlsExporter exporter = new JRXlsExporter(); exporter .setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); // 删除记录最下面的空行 exporter.setParameter( JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, true); // 显示边框 exporter.setParameter( JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, true); // 删除多余的ColumnHeader exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, false); exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, resultExcel.toString()); exporter.exportReport(); System.out.println("Success !"); } catch (Exception e) { System.out.println("wrong !"); e.printStackTrace(); }
参考资料:】
http://express.ruanko.com/ruanko-express_3/webpage/tech-overnight_1.html
http://blog.163.com/pqg_iloveyou/blog/static/33351875200710610411367/?fromdm&fromSearch&isFromSearchEngine=yes
报表属性设置:http://cctv663.blog.163.com/blog/static/10119212200721552441765/
相关文章推荐
- 使用JasperReport和iReport制作java报表- -(转)
- Java开源报表JasperReport、iReport 使用详解
- Java开源报表JasperReport、iReport4.5.1使用详解(三)
- 【iReport+JasperReport】3.在Java工程中用jasper导出Excel报表
- Java开源报表JasperReport、iReport4.5.1使用详解(三)
- 【iReport+JasperReport】2.在Java工程中利用jasper导出PDF报表
- 使用JasperReport和iReport制作java报表
- Java开源报表JasperReport、iReport4.5.1使用详解(三)
- 使用JasperReport和iReport制作java报表
- 使用JasperReport和iReport制作java报表
- Java开源报表JasperReport、iReport4.5.1使用详解(二)
- JasperReport(3)——Java简单使用IReport生成的文件建立报表
- Java开源报表JasperReport、iReport4.5.1使用详解(三)
- java下开源报表工具(JasperReport)调研记录
- 用开源技术jasperreport做打印,第一步使用ireport设计报表
- JAVA开源报表技术:JasperReports和iReport 入门
- 用cewolf,ireport+jasperReport进行图表,报表的打印
- Java开源报表JasperReport、iReport4.5.1使用详解(五)Table组件
- Java 使用 iReport 导出报表
- Java开源报表JasperReport、iReport4.5.1使用详解(五)Table组件