JasperReport简介

JasperReport是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,XML,Excel(通过POI或JExcelAPI实现)和Rtf(通过POI实现)格式。该库完全由Java写成,可以用于在各种Java应用程序,包括J2EE,Web应用程序中生成动态内容。它的主要目的是辅助生成面向页面的(page
oriented),准备付诸打印的文档。JasperReport借由定义于XML文档中的report design进行数据组织。这些数据可能来自不同的数据源,包括关系型数据库,collections,java对象数组。通过实现简单的接口,用户就可以将report library插入到订制好的数据源中。用JasperReport进行报表开发的过程如下所示(Version=1.0):

目前JasperReport最新的版本是1.2.7,可以到Sourceforg网站下载其整个工程及代码。其工程文件目录下的demo子目录中包含很多定义良好的例子,可以实现各种所需功能。鉴于它的文档收费,想学习使用JasperReport的话我们也只能以这些demo作为学习资料了。

但是繁琐的XML标记和功能API在提供强大的动态及可扩展开发的同时也带来了超高的复杂性,在没有免费文档的情况下,手工编写报表设计所需的XML文件是极其不明智的。不过正如我们用JBuilder(或其他可视化开发工具)编写SwingGUI时一样,我们可以采用iReport进行可视化的报表设计来避免和可怕的XML文件及实现细节打交道。虽然可能会损失一些动态生成报表的灵活性,但是大多数情况下,我们只需要静态的设计框架和动态的装填数据而很少需要动态的报表框架,所以和我们所获得的方便相比,这些小小的损失简直可以忽略不计了。当然如果确实需要,且看到下面的东西你不晕的话,自己动手确实可以获得所需的灵活性。

注明:上述所述纯属转载。

报表文件的生成是需要经历一个过程:自己编写(或使用ireport生成)的jrxml文件,jrxml文件实质上就是一个没有填充数据的源报表模板,需要将该文件编译生成(可执行、可填充数据的)报表文件(*.jasper),然后填充数据(成为一个实例),最后打印或显示出来。

报表文件的生成主要可分为两种路线:一、对象路线    二、文件路线(自己命名)

一、对象路线

1.jrxml文件经过JasperCompileManager编译生成JasperReport对象

2. 使用JasperFillManager对JasperReport对象填充数据生成JasperPrint对象

3. JasperExportManager将JasperPrint对象输出到指定的文件,即生成需要的的目标报表。

例:

JasperReport jp=JasperCompileManager.compileReport("jrxml/my.jrxml"); //编译生成JasperReport对象

Map<String, Object> map=new HashMap<String,Object>();//给报表进行参数传递

JasperPrint jasperPrint=JasperFillManager.fillReport(jp, map,new JREmptyDataSource());//填充数据

JasperExportManager.exportReportToPdfFile(jasperPrint, "jrxml/1.pdf"); //输出目标报表

二、文件路线

1. 使用JasperCompileManager将jrxml文件编译成为Jasper文件(编译)

2. 使用JasperFillManager将Jasper文件生成Jrprint文件(填充数据)

3. 使用JasperExport将jrprint文件到处为目标文件(HTML、PDF等)(输出)

例:

//使用jrxml文件生成jasper文件

JasperCompileManager.compileReportToFile("jrxml/report1.jrxml", "jrxml/test.jasper");

//使用Jasper文件生成jrprint文件,返回jrprint 文件的位置

String str=JasperFillManager.fillReportToFile("jrxml/test.jasper", new HashMap());

System.out.println(str);

//使用jrprint生成xml、HTML、PDF文件,返回生成文件的路径

String s=JasperExportManager.exportReportToHtmlFile(str);

System.out.println(s);

我们在实际的开发中并不直接使用jrxml文件,而是使用ireport生成的好的jasper文件。

时间: 2024-11-05 14:42:56

JasperReport简介的相关文章

如何使用jasper生成pdf报表

1.1   iReport与JasperReport简介 JasperReport是报表的引擎部分,界面设计是用iReport. JasperReport是一个报表制作程序,用户按照它制定的规则编写一个XML文件, 然后得到用户需要输出的格式文件.它支持输出的文件格式包括PDF,HTML,XML,XLS,CSV等等. 1.2   工作流程简介 JasperReport的工作流程:首先有个xml文件,从xml文件编译出.jasper类型的文件, 而以后我们真正要使用的就是编译后的jasper文件.

生成报表(转)

使用JasperReport+iReport进行WEB开发           一.JasperReport和iReport简介:  1.JasperReport简介 JasperReport是一个强大.灵活的报表生成工具,是开放源代码组织sf.net中的一个java 报表打印工程.能够展示丰富的页面内容,并将之转换成PDF,HTML,XML,Excel(通过POI或JExcelAPI实现)和Rtf(通过POI实现)格式.该库完全由Java写成,可以用于在各种Java应用程序,包括J2EE,We

利用jasperReport制作web报表

作者:54dabang E-mail:[email protected] 一 前言 一直发现在网上寻找资源比较繁琐,前段时间在制作jasperReport报表时候出现了很多问题.特别是在一些细节方面,特别耗费时间.特此写下此文,希望对和我一样在初期阶段学习的同学能少走一些弯路. 二 内容简介 1)给出自己制作的jasperReport的视图效果,方便对报表工具初期学习的选择. 2)自己制作报表的测试源码和所有相关学习资料,对应所有jar包,jasperReport版本. 3)快速开发报表的一些建

JAVA实用案例之文件导出(JasperReport踩坑实录)

写在最前面 想想来新公司也快五个月了,恍惚一瞬间. 翻了翻博客,因为太忙,也有将近五个多月没认真总结过了. 正好趁着今天老婆出门团建的机会,记录下最近这段时间遇到的大坑-JasperReport. 六月份的时候写过一篇利用poi文件导入导出的小Demo,JAVA实用案例之文件导入导出(POI方式). 虽然简单,但是企业应用的原理基本上也就是这样,只不过是封装的更好些,不像我之前写的那样每个Cell都需要定义,其实poi的方式也是我目前最推崇的方式之一了.主要原因是jxl不支持xlsx,Jaspe

Android网络通讯简介

网络通信应该包含三部分的内容:发送方.接收方.协议栈.发送方和接收方是参与通信的主体,协议栈是发送方和接收方进行通信的契约.按照服务类型,网络通信可分为面向连接和无连接的方式.面向连接是在通信前建立通信链路,而通信结束后释放该链路.无连接的方式则不需要在通信前建立通信连接,这种方式不保证传输的质量. Android提供了多种网络通信的方式,如Java中提供的网络编程,在Android中都提供了支持.Android中常用的网络编程方式如下: 针对TCP/IP协议的Socket和ServerSock

微信红包的架构设计简介

@来源于QCon某高可用架构群整理,整理朱玉华. 背景:有某个朋友在朋友圈咨询微信红包的架构,于是乎有了下面的文字(有误请提出,谢谢) 概况:2014年微信红包使用数据库硬抗整个流量,2015年使用cache抗流量. 微信的金额什么时候算? 答:微信金额是拆的时候实时算出来,不是预先分配的,采用的是纯内存计算,不需要预算空间存储.. 采取实时计算金额的考虑:预算需要占存储,实时效率很高,预算才效率低. 实时性:为什么明明抢到红包,点开后发现没有? 答:2014年的红包一点开就知道金额,分两次操作

JSON 简介

ylbtech-JSON: JSON 简介 JSON:JavaScript Object Notation(JavaScript 对象表示法) JSON是存储和交换文本信息的语法,类似 XML. JSON 比 XML 更小.更快.更易解析. JSON 实例 { "employee":[ {"firstName":"John","lastName":"Doe"}, {"firstName"

Docker简介

Docker简介 什么是Docker: 正所谓Docker的英文本意为"搬运工",所以在我们的世界里,可以理解为Docker搬运的是装满任意类型的APP的集装箱,开发者可以通过Docker将APP变成一种标准化的.可移动植的.自动管理的组件.它用一种新的方式实现了轻量级的虚拟机,专业术语成为应用容器(Application Container) Docker的优势: 1.利用率高 ·Docker对系统资源的利用率很高,一台主机可以同时运行数千个Docker容器 2.可以快速的交付应用程

kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)

问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的原因是什么? 3.kafka集群consumer和producer状态信息是如何保存的? 4.partitions设计的目的的根本原因是什么? 一.入门 1.简介 Kafka is a distributed,partitioned,replicated commit logservice.它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现.k