jasperreport开发实例及问题
来源:互联网 发布:交通事故数据统计 编辑:程序博客网 时间:2024/06/17 06:14
JasperReports共涉及的类:
JasperCompileManager:这是一个与编译有关的类,利用它提供的一些编译方法,允许我们将一个报表设计文档*.jrxml 文件编译成一个二进制的报表文件 *.jasper文件。此外,也允许使用一个JasperDesign 实例(*.jrxml文件在内存中的形式)作为报表设计文件。
JasperFillManager:这个类是用于填充报表的,所谓填充报表就是为报表的数据查询提供数据库连接,给报表的参数设值等。报表填充之前是*.jasper文件,经过填充后就成为了*.jrprint 文件--这就是一份可显示或者可导出成报表的文件。
JasperPrintManager:用于将一个*.jrprint 文件完成打印。
JasperExportManager:用于将可显示的报表导出成各种格式的报表文件,主要导出成pdf、xml 格式的文档。
JasperRunManager:这个类可以直接将*.jasper 文件导出成各种格式的报表文件,只要是导出成pdf、html文档。
JRXxxExporter:这是一系列的文件导出器,他们用于将*.jrprint 文件导出成对应格式的报表文件,例如,JRPDFExporter可将*.jrprint 导出成一个pdf文档。
当开发人员生成不同的文件时,不同文件在JasperReports中也有对应的类。不同文件有如下3个类来对应:
JasperDesign:对应报表设计文件在内存中的形式,也就是对应*.jrprint 文件
JasperReport:对应二进制报表文件在内存中的形式,也就是对应*.jasper文件
JasperPrint:对应可显示报表设计文件在内存中的形式,也就是对应*.jrprint文件
代码段:
package testone;import javax.swing.JFrame;import net.sf.jasperreports.engine.JREmptyDataSource;import net.sf.jasperreports.engine.JRException;import net.sf.jasperreports.engine.JRExporterParameter;import net.sf.jasperreports.engine.JasperCompileManager;import net.sf.jasperreports.engine.JasperExportManager;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.engine.JasperPrint;import net.sf.jasperreports.engine.JasperRunManager;import net.sf.jasperreports.engine.export.JRXlsExporter;import net.sf.jasperreports.engine.export.JRXlsExporterParameter;import net.sf.jasperreports.engine.util.JRLoader;import net.sf.jasperreports.view.JRViewer;public class MyCompile {/** * @param args * @throws Exception * 开发步骤: * 1.开发人员开发报表设计文件,可利用iReport 工具,生成*.jrxml文件 * 2.使用JasperReport提供的JasperCompileManager工具把*.jrxml文件编译成*.jasper文件 * 3.使用jasperReport 提供的JasperFillManager 工具把*.jasper文件编译成*.jrprint文件 * 4.使用导出管理器jasperExportManaer 或者各种格式的文件导出器JRXxxExport将*.jrprint文件导出成各种格式的报表文件 */public static void main(String[] args){compile();fill();export1();//export2();//export3();//view();}public static void compile(){try {JasperCompileManager.compileReportToFile("static.jrxml","static.jasper");System.out.println("成功编译成jasperReport文件 *.jasper");} catch (JRException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void fill(){try {//填充时,即使没有使用数据源,也必须指定一个新建的JREmptyDataSource实例,而不能直接用nullJasperFillManager.fillReportToFile("static.jasper",null,new JREmptyDataSource());System.out.println("成功填充成一个报表文件*.jrprint");} catch (JRException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/* * 利用JasperExportManager 生成pdf、html或者xml格式的文件(不能生成xls格式文件) */public static void export1(){try {JasperExportManager.exportReportToPdfFile("static.jrprint","static1.pdf");System.out.println("成功生成pdf报表文件");} catch (JRException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/* * 利用JRXxxExport将*.jrprint文件导出成各种格式的报表文件 * */public static void export2(){try {JasperPrint jasperPrint=(JasperPrint)JRLoader.loadObject("static.jrprint");JRXlsExporter export=new JRXlsExporter();export.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);export.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,"static.xls");export.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);export.exportReport();System.out.println("成功生成xls报表文件");} catch (JRException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/* * 利用JasperRunManager,可把*.jasper文件直接生成html、pdf格式文件 */public static void export3(){try {JasperRunManager.runReportToPdfFile("static.jasper", "static2.pdf",null,new JREmptyDataSource());System.out.println("成功生成xls报表文件");} catch (JRException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/* * 利用JRViewer可直接预览*.jrprint文件 */public static void view(){try {JRViewer jr=new JRViewer("static.jrprint",false);JFrame jf=new JFrame("报表预览");jf.add(jr);jf.pack();jf.setVisible(true);} catch (JRException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}在这里,static.jrml 可以在iReport自己随便制作一个,毕竟这个例子中没有涉及到数据库连接。如果你就这么拷贝进去,肯定会出错,因为要引入很多的jar包
如果出现以下情况:不是其他原因,就是你的jar包没有导入完全,我的导入必须的jar包之后是这样:并且只少不多,根据你自身的配置还需要加点
出现java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException错误,但是在整个程序中没有使用groovy,那么可能是在其他包中需要使用这个class,同时参考:http://sunky045.javaeye.com/blog/503315
1.
spring+jasperReport生成PDF格式的报表时报
java.lang.NoSuchMethodError: com.lowagie.text.pdf.PdfWriter.setRgbTransparencyBlending(Z)V异常
Excle 应用:
java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFCellStyle
出现上述错误提示加入 poi-3.2-FINAL-20081019.jar
4.
net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font :
pdfFontName : STSong-Light
pdfEncoding : UniGB-UCS2-H
isPdfEmbedded : false
出现上述错误提示加入
iTextAsian.jar
5.
java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester
出现上述错误提示加入
commons-digester-1.7.jar iReport/lib 功能简述:解析 xml 文件;
6.
java.lang.NoClassDefFoundError: org/apache/commons/collections/ArrayStack
出现上述错误提示加入
commons-beanutils-1.7.jar iReport/lib
7.
java.lang.NoClassDefFoundError: org/apache/commons/collections/ReferenceMap
出现上述错误提示加入
commons-collections-2.1.jar iReport/lib
- jasperreport开发实例及问题
- Spring MVC 整合irpeort(JasperReport) 5.6 开发及问题总结
- javaWeb+JasperReport报表开发简单实例
- 写JasperReport过程中出现的一些问题及解决方法
- 接触jasperreport 后,开发过程中的几个小问题
- JasperReport 配置及问题解决!
- JasperReport开发手册:jasperreport系列产品简介
- JasperReport开发笔记
- JasperReport开发笔记
- Struts2+JasperReport开发
- iReport+JasperReport报表开发
- iReport/JasperReport问题总结
- jasperreport一些问题
- iReport+jasperreport小问题
- Webwork使用JasperReport入门实例
- jasperreport插件dynamicreports使用实例
- jasperreport开发手册--ireport教程
- Ireport+jfreechart+Jasperreport开发图表
- tomcat修改端口号
- 动态库的加载与测试
- codeforce_219B Special Offer! Super Price 999 Bourles!
- iOS 系统汉化的plist设置
- CSS中定义a:hover , a:visited , a:actived
- jasperreport开发实例及问题
- Cocos2d-x cocostudio UIButton控件setEnabled(false)方法失效解决办法
- oc
- linux中fork()函数详解(原创!!实例讲解)
- 哈弗曼树
- check_postgres脚本集
- 一种快速加载大文件的方法
- duilib作为播放器的ui嵌入到mfc中使用
- 多线程编程4-------面试题增加信号