博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JasperReport:声明周期
阅读量:2161 次
发布时间:2019-05-01

本文共 3231 字,大约阅读时间需要 10 分钟。

JasperReport的开发步骤

JasperReport生命周期

通常我们提到PDF报表的时候,浮现在脑海中的是最终的PDF文档文件。在JasperReports中,这只是报表生命周期的最后阶段。通过JasperReports生成PDF报表一共要经过三个阶段,我们称之为 JasperReport的生命周期,这三个阶段为:设计(Design)阶段、执行(Execution)阶段以及输出(Export)阶段,如下图所示:

1. 设计阶段(Design):所谓的报表设计就是创建一些模板,模板包含了报表的布局与设计,包括执行计算的复杂公式、可选的从数据源获取数据的查询语句、以及其它的一些信息。模板设计完成之后,我们将模板保存为JRXML文件(JR代表JasperReports),其实就是一个XML文件。

2. 执行阶段(Execution):使用以JRXML文件编译为可执行的二进制文件(即.Jasper文件)结合数据进行执行,填充报表数据

3. 输出阶段(Export):数据填充结束,可以指定输出为多种形式的报表

JasperReport原理简述

1. JRXML:报表填充模板,本质是一个XML.

JasperReport已经封装了一个dtd,只要按照规定的格式写这个xml文件,那么jasperReport就可以将其解析最终生成报表,但是jasperReport所解析的不是我们常见的.xml文件,而是.jrxml文件,其实跟xml是一样的,只是后缀不一样。

2. Jasper:由JRXML模板编译生成的二进制文件,用于代码填充数据。

解析完成后JasperReport就开始编译.jrxml文件,将其编译成.jasper文件,因为JasperReport只可以对.jasper文件进行填充数据和转换,这步操作就跟我们java中将java文件编译成class文件是一样的

3. Jrprint:当用数据填充完Jasper后生成的文件,用于输出报表。

这一步才是JasperReport的核心所在,它会根据你在xml里面写好的查询语句来查询指定是数据库,也可以控制在后台编写查询语句,参数,数据库。在报表填充完后,会再生成一个.jrprint格式的文件(读取jasper文件进行填充,然后生成一个jrprint文件)

4. Exporter:决定要输出的报表为何种格式,报表输出的管理类。

5. Jasperreport可以输出多种格式的报表文件,常见的有Html,PDF,xls等

4.0.0
com.learn
jr-demo
1.0-SNAPSHOT
net.sf.jasperreports
jasperreports
6.5.0
org.olap4j
olap4j
1.2.0
com.lowagie
itext
2.1.7
org.apache.poi
poi
4.0.1
org.apache.poi
poi-ooxml
4.0.1
org.apache.poi
poi-ooxml-schemas
4.0.1
package com.learn.jr;import net.sf.jasperreports.engine.JREmptyDataSource;import net.sf.jasperreports.engine.JasperCompileManager;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.view.JasperViewer;import java.util.HashMap;public class PDFTest {    public static void main(String[] args) {        showPdf();    }    public static void createJasper(){        try{            String path = "C:\\Users\\leon\\Desktop\\00\\test01.jrxml";            JasperCompileManager.compileReportToFile(path);        }catch(Exception e){            e.printStackTrace();        }    }    public static void createJrprint(){        try{            String path = "C:\\Users\\leon\\Desktop\\00\\test01.jasper";            //通过空参数和空数据源进行填充            JasperFillManager.fillReportToFile(path,new HashMap(),new JREmptyDataSource());        }catch(Exception e){            e.printStackTrace();        }    }    public static void showPdf(){        try{            String path = "C:\\Users\\leon\\Desktop\\00\\test01.jrprint";            JasperViewer.viewReport(path,false);        }catch(Exception e){            e.printStackTrace();        }    }}

 

转载地址:http://jqkzb.baihongyu.com/

你可能感兴趣的文章
Java并发指南3:并发三大问题与volatile关键字,CAS操作
查看>>
Java并发指南4:Java中的锁 Lock和synchronized
查看>>
Java并发指南5:JMM中的final关键字解析
查看>>
Java并发指南6:Java内存模型JMM总结
查看>>
Java并发指南7:JUC的核心类AQS详解
查看>>
Java并发指南8:AQS中的公平锁与非公平锁,Condtion
查看>>
Java网络编程和NIO详解6:Linux epoll实现原理详解
查看>>
Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理
查看>>
Java网络编程与NIO详解8:浅析mmap和Direct Buffer
查看>>
Java网络编程与NIO详解10:深度解读Tomcat中的NIO模型
查看>>
Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)
查看>>
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
查看>>
深入理解JVM虚拟机3:垃圾回收器详解
查看>>
深入理解JVM虚拟机4:Java class介绍与解析实践
查看>>
深入理解JVM虚拟机5:虚拟机字节码执行引擎
查看>>
深入理解JVM虚拟机6:深入理解JVM类加载机制
查看>>
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
查看>>
深入理解JVM虚拟机9:JVM监控工具与诊断实践
查看>>
深入理解JVM虚拟机10:JVM常用参数以及调优实践
查看>>
深入理解JVM虚拟机11:Java内存异常原理与实践
查看>>