Java报表开发技术—JasperReports开发流程
2013-01-13 20:38
381 查看
使用JasperReports报表开发工具,报表引擎的整个工作过程如下图所示:
JasperReports 报表引擎工作原理图
为了让读者进一步了解上述原理,先写一段简单的代码进行分析,我们假设已经完成了JRXML报表的创建工作,下述代码是通过这个模板文件创建一个JasperReports报表,程序的具体代码如下:
请对照JasperReports
报表引擎工作原理图,分析上述代码
步骤 (1):
调用JRXmlLoader中的load()方法来加载这个模版文件,这个方法可以把JRXML模版文件解析为JasperDesign对象。
步骤 (2):
得到对象JasperDesign对象以后,就可以对这个对象进行编译,通过JasperCompileManager提供的compileReport方法就可以编译得到JasperReport模板对象。
步骤 (3):
在完成模板的编译工作以后,就可以得到一个JasperReport类型的对象,通过向这个对象中填充数据,就可以得到完整的JasperReports报表。在填充报表模板的时候,需要调用JasperFillManager提供的fillReport方法,这个方法可以填充指定的报表模板,并返回一个JasperPrint报表对象;在(3)这行代码中,填充模板使用的参数是一个空的HashMap对象,使用的数据源是一个空的数据源。
步骤 (4):
模板填充工作完成以后,就得到一个JasperPrint类型的报表对象,这个对象就是已经成功创建的报表,可以利用JasperReports内置的查看工具查看这个报表,也可以通过打印、导出文件的方式进行查看。在上述代码中,我们调用JasperExportManager中的方法,选择把报表导出到PDF文件中。
JasperReports 核心类
参考书籍:《Java报表开发技术深入解析》
JasperReports 报表引擎工作原理图
为了让读者进一步了解上述原理,先写一段简单的代码进行分析,我们假设已经完成了JRXML报表的创建工作,下述代码是通过这个模板文件创建一个JasperReports报表,程序的具体代码如下:
/** * * @author 源神 * 注明:开头省略了import ... */ public class HelloWorld { public static void main(String[] args) { try { //步骤(1) 加载报表设计模块文件 JasperDesign jasperDesign = JRXmlLoader.load("HelloWord.jrxml"); //步骤(2) 编译报表模板 JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); //步骤(3) 填充报表 JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(), new JREmptyDataSource()); //步骤(4) 导出报表 JasperExportManager.exportReportToPdfFile(jasperPrint, "HelloWord.pdf"); } catch (JRException e) { e.printStackTrace(); } } }
请对照JasperReports
报表引擎工作原理图,分析上述代码
步骤 (1):
调用JRXmlLoader中的load()方法来加载这个模版文件,这个方法可以把JRXML模版文件解析为JasperDesign对象。
步骤 (2):
得到对象JasperDesign对象以后,就可以对这个对象进行编译,通过JasperCompileManager提供的compileReport方法就可以编译得到JasperReport模板对象。
步骤 (3):
在完成模板的编译工作以后,就可以得到一个JasperReport类型的对象,通过向这个对象中填充数据,就可以得到完整的JasperReports报表。在填充报表模板的时候,需要调用JasperFillManager提供的fillReport方法,这个方法可以填充指定的报表模板,并返回一个JasperPrint报表对象;在(3)这行代码中,填充模板使用的参数是一个空的HashMap对象,使用的数据源是一个空的数据源。
步骤 (4):
模板填充工作完成以后,就得到一个JasperPrint类型的报表对象,这个对象就是已经成功创建的报表,可以利用JasperReports内置的查看工具查看这个报表,也可以通过打印、导出文件的方式进行查看。在上述代码中,我们调用JasperExportManager中的方法,选择把报表导出到PDF文件中。
类 名 | 作 用 |
net.sf.jasperreports.engine.design.JasperDesign | 原始的模版对象,可以通过解析JRXML文件得到,也可以通过JasperReports提供的API动态创建 |
net.sf.jasperreports.engine.JasperReport | 经过编译的报表模板对象 |
net.sf.jasperreports.engine.JasperCompileManager | 编译原始模板对象,返回JasperReport对象 |
net.sf.jasperreports.engine.JasperPrint | 报表对象,可以通过填充报表模板得到该对象 |
net.sf.jasperreports.engine.JRDataSource | 要向报表模板中填充的数据 |
net.sf.jasperreports.engine.JRResultSetDataSource | 要向报表模板中填充的关系数据库数据 |
net.sf.jasperreports.engine.data.JRBeanArrayDataSource | 要向报表模板中填充的JavaBean数据 |
net.sf.jasperreports.engine.JREmptyDataSource | 要向报表模板中填充的空数据,主要用来调试程序 |
net.sf.jasperreports.engine.JasperFillManager | 填充报表模板,返回JasperPrint对象 |
net.sf.jasperreports.engine.JasperPrintManager | 打印报表文件 |
net.sf.jasperreports.engine.JasperExportManager | 导出报表文件,支持PDF、HTML、CSV、XML等格式 |
net.sf.jasperreports.view.JRView | 用来查看使用JasperReports类库创建的报表 |
net.sf.jasperreports.view.JasperViewer | 用来查看报表的工具 |
net.sf.jasperreports.view.JasperDesignViewer | 用来查看报表模板的工具 |
net.sf.jasperreports.engine.util.JRLoader | 用来加载序列化对象 |
net.sf.jasperreports.engine.util.JRSaver | 用来序列化对象 |
net.sf.jasperreports.engine.xml.JRXmlLoader | 加载JRXML文件,返回JasperDesign对象 |
相关文章推荐
- JAVA开源报表技术:JasperReports和iReport 入门
- Jasperreports6.3.1+Jaspersoft studio6.3.1进行报表开发实战教程(四)-java输出报表
- JAVA开源报表技术:JasperReports和iReport 实战
- JasperReports给java web报表开发人员带来希望
- Jasperreports6.3.1+Jaspersoft studio6.3.1进行报表开发实战教程(四)-java输出报表
- JAVA开源报表技术:JasperReports和iReport 入门
- JasperReports报表的开发流程
- JasperReports报表的开发流程
- 利用Java技术开发Web网络课件浅议
- Jasperreports6.3.1+Jaspersoft studio6.3.1进行报表开发实战教程(三)-传参模板设计
- Jasperreports6.3.1+Jaspersoft studio6.3.1进行报表开发实战教程(五)
- 223_尚学堂_高淇_java300集最全视频教程_JVM核心机制_线程上下文类加载器_web服务器类加载机制_OSGI技术模块开发原理介绍
- Jasperreports6.3.1+Jaspersoft studio6.3.1进行报表开发实战教程(八)-Mysql数据源
- 粤嵌JAVA实时网络培训,让你拥有高超的软件开发技术
- java开发中用到的技术(持续更新.....)
- Java开发报表——Grid++Report 报表设计器
- JasperReports 5.0.1 发布,Java 报表工具
- 水晶报表 10 Java 支持概览及技术白皮书资源
- OpenJWeb(1.6) Java Web应用快速开发平台技术白皮书
- 转炉流程轴承钢技术的开发是轴承钢的冶炼时间缩短