`
oscar999
  • 浏览: 216897 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

jasperReport学习

 
阅读更多


mysql> CREATE TABLE `mysqlcode` (
-> `id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
-> `content` VARCHAR( 255 ) NOT NULL
-> ) TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;




CREATE TABLE admin (
admin_name char(20) NOT NULL,
admin_password char(20) NOT NULL
) TYPE=MyISAM,
default character set gbk;










类net.sf.jasperreports.engine.design.JasperDesign

之所以从这个类开始,是因为它的实例是jasperreport用于报表产生的原始类,比如,该类实例在用于产生报表的xml文件被解析后获得,或者不产生xml文档而是由调用jasperreport的应用程序产生。在所给的例子中有一个(noxmldesign)就是在不产生xml文件的情况下动态生成该实例的一个例子。所有该类的实例都属于报表的填充和产生以前产生的,所以我们称之为原始类。



类net.sf.jasperreports.engine.design.jasperreport

该类实例表现了报表设计对象,是作为报表的编译过程的结果而被实例化,是向报表中填充数据的准备。在报表的编译过程中协同验证报表元素的合法性,一致性;同时创建了临时文件存储报表中所有的变量,表达式。编译过程中会先查找classpath中tools.jar或者Ant进行编译,编译结果以字节码的形式存储,并且在填充数据时用于判断多种产生报表的形式

类net.sf.jasperreports.engine.design.JasperCompileManager

该类允许用户从文件,流等多种形式编译xml,允许直接传递JasperDesign对象并接收相应的JasperReport对象,它是将报表设计xml文件编译为等待填充的报表文件的入口类。其他方法:验证报表合法性,构建JasperDesign类的实例也是十分有用的,尤其是针对可视化编辑器

类net.sf.jasperreports.engine.design.JasperPrint

报表填充完毕后产生该类的实例,这个对象可以被JasperReport内置报表浏览工具浏览,或者序列化存储、发送等。该类的实例表现了JasperReport的报表输出;除了作为标准格式以页面形式存储外还可以转化为PDF, HTML, XML等多种形式。

类net.sf.jasperreports.engine.design.JRDataSource

就报表数据来说,JasperReport是十分灵活的,提供多种数据源,针对各种数据源都有相应的编程接口,每次报表填充时,都会产生特定场景的引擎实例

net.sf.jasperreports.view.JasperViewer
此类用来预览生成的报表(generated reports.)。

net.sf.jasperreports.view.JasperDesignViewer
此类用来预览报表设计(view the report design)。

JasperReports做报表有一下步骤:

1、 报表设计,可以用ireport可视化工具来实现,生成xml文件。完成后,可以直接到步骤3,直接编译xml文件。
2、 如果已经存在报表设计文件(xml文件),可以用 net.sf.jasperreports.engine.xml.JRXmlLoader.load()方法载入报表设计,该方法返回 JasperDesign对象,通过JasperDesign对象,可以修改报表设计,比如:添加、删除字段,添加、删除变量,添加、删除分组,等等。
3、 完成报表设计后,接下来就可以编译报设计,编译报表设计可以用类 net.sf.jasperreports.engine.JasperCompileManager的compileReport()方法来实现,该方法可以编译xml文件或JasperDesign对象,产生JasperReport对象,JasperReport对象可序列化,能够保存为文件(通常是.jasper文件)。类net.sf.jasperreports.engine.JasperCompileManager还可以把报表转化为报表设计文件(xml文件)。得到JasperReport对象(可从.jasper文件实例化一个JasperReport对象)后,给报表填充数据产生 JasperPrint对象。JasperPrint对象可序列化,保存为文件。有了JasperPrint对象后,可以打印、浏览、转换为其他格式的文件,如:PDF,HTML,XML,XLS,CSV等等,这些操作就是我们想得到的最终结果。尽管JasperPrintManager类可以导出为 PDF,XML文件,但是不赞成使用JasperPrintManager类来导出,建议用JasperExportManager类来导出PDF, HTML,XML文件;要导出XLS和CSV文件,用专业的导出类 net.sf.jasperreports.engine.export.JRXlsExporter类和 net.sf.jasperreports.engine.export.JRCsvExporter类

字段(Fields): 是数据库抽取出来的,希望在报表中出现的数据库内容。比如一个ID的所有值。$F{filedsName}

参数(Parameters):这是你的应用需要提供给报表的入口,比如你 希望在报表被解释的时候提供Where语句的条件值。那么就可以 使用参数$P{parameterName}

变量(Variables):这是报表只能够一些逻辑运算的表现,比如统计值。$V{variablesName}每种对象的定义格式如每个对象的后面说明,比如定义一个变量(Variables),
那么表达式就写成$V{ variablesName },报表中出现的就是这个变量的名称。

JasperReport填充数据有多种方法,不过最常用的就2种:一是直接在jrxml文件里嵌入sql语句,二是创建一个自己的数据源,记得这个数据源从JRDataSource继承而来.JRDataSource有个方法一定要实现,即next以及getFieldValue,具体参见其API


2.中文问题的解决
在JAVA中,用ireport是个不错的报表设计工具咯,可视化操作,但也有中文问题。典型的是加入itext后,中文显示乱码,并且导出到PDF后也乱码,解决方法经过探索后有如下方法解决:
1 在ireportlib目录下,添加iText亚洲语言包(http://itext.sourceforge.net/downloads/iTextAsian.jar.),itext-1.01.jar;
2 在itext文本的属性框中,设置字体的属性为:
font name: SansSerif
PDF font name: STSong-Light;
pdfEncoding =UniGB-UCS2-H
将PDF embedeed encoding前的勾选上,并在下拉表中选择UniGB-UCS2-V (Chinese Simplified)
这样就可以解决了

a、iReport的输出格式····
iReport的预览输出格式可以支持以下几种:
PDF、HTML、CSV、JAVA2D、Excel、纯文字、JRViewer,其中最常用的是PDF、JRViewer。
本文以JRViewer为例子。JRViewer是直接以C/S方式作为报表的输出格式,在JFrame框架下输出。Jasperreport提供默认的JRViewer输出类。
b、报表的动态对象变量、参数、字段····
在使用iReport的过程中会碰到很多与变量(Variables)、参数(Parameters)、字段(Fields)这些有关的内容,我们要介绍这些对象的使用和意义:
·字段(Fields):是数据库抽取出来的,希望在报表中出现的数据库内容。
比如一个ID的所有值。$F{ filedsName }
·参数(Parameters):这是你的应用需要提供给报表的入口,
比如你希望在报表被解释的时候提供Where语句的条件值,
那么就可以使用参数(Parameters)。$P{ parameterName }
·变量(Variables):这是报表中一些逻辑运算的表现,比如统计值。$V{ variablesName }
每种对象的定义格式如每个对象的后面说明,比如定义一个变量(Variables),
那么表达式就写成$V{ variablesName },报表中出现的就是这个变量的名称。


一个报表的结构大致是几个部分:title、pageHeader、columnHeader、detial、columnFooter、pageFooter、summary、groupHeader、groupfooter。
·Title:每个报表一般会有一个名字,比如×××销售报表,title就是搁置这个名称的最好地方了,当然你也可以根据需要搁置在合适的地方。
·pageHeader:报表的一些公共要素,比如页码、创建时间、创建人等信息放置在这里是比较好的选择。
·columnHeader:无可非议的这里是放置列的名称,记住不是列数据。
·Detial:放置需要循环的数据,比如销售记录数据。
·columnFooter:放置列级别的统计计算值或是列的说明。
·pageFooter:放置页级别的统计值或是页的说明。
·Summary:可能需要对几页(你的报表可能有几个页组成)的统计值。比如50个销售记录共占用了3页,那么放置这些统计记录的统计值最好的地方就是summary。
·groupHeader:每个表的内容可能需要根据某个属性进行划分显示内容和计算内容,比如希望以月份为单位每组分开显示销售记录,那么就可以定义一个组(组的定义参考后文),groupHeader就是放置组说明或是组标志最好的地方。
·Groupfooter:放置组的统计或是说明 <iframe width="490" scrolling="no" height="150" frameborder="0" align="middle" style="width: 490px; height: 150px;" src="http://www.blogbao.com/script.aspx?userid=45735&amp;AdType=0&amp;AdstyleID=49847&amp;Direction=1" marginheight="0" marginwidth="0"> </iframe>
分享到:
评论

相关推荐

    jasperReport学习文档资料.rar

    本资料包"jasperReport学习文档资料.rar"是针对JasperReports及其配套设计工具iReport的学习资源集合,对于想要掌握报表开发的IT人员来说极具价值。 首先,iReport是JasperReports的主要设计工具,提供了一个图形化...

    jasperReport学习资料

    **JasperReport学习资料概述** JasperReport是一款强大的开源报表工具,主要用来设计和生成静态或动态的报表。它能够支持各种数据源,包括数据库、XML文件、Java对象等,并且能够导出报表为PDF、HTML、Excel等多种...

    JasperReport 学习之路

    ### JasperReport 学习之路 #### 一、简介与背景 JasperReport是一种基于Java的报表生成技术,它被广泛应用于企业级应用中用于生成复杂且格式化良好的PDF文档。对于初学者而言,掌握JasperReport的核心概念和技术...

    JasperReport 学习必备手册

    JasperReport 学习必备手册

    jasperreport学习 之 javabean封装成list作为数据源.pdf

    总而言之,JasperReport学习之JavaBean封装成List作为数据源的教程,不仅提供了一套完整的实现流程,还强调了在实际开发中实践和应用的重要性。通过本文档的学习,开发者将能够快速掌握如何将复杂的业务数据封装为...

    JasperReport学习之路

    JasperReport学习之路 网上摘录

    jasperreport学习资料(附jasperreport API).

    这个压缩包文件包含了jasperreport的学习资料和API文档,是学习和掌握JasperReport的重要资源。 JasperReport的核心概念: 1. 报表模板:报表的布局和样式在设计时就被定义好,存储为`.jrxml`文件。这些模板包含了...

    iReport&JasperReport学习教程--内含四套(PDF版)

    iReport和JasperReport是两个在Java开发领域中用于创建和设计报表的重要工具。它们主要用于生成动态、交互式的业务报表,帮助企业分析数据并作出决策。本教程将带你深入理解这两个工具的功能、用法以及如何结合使用...

    Jasperreport for java developers(从入门到精深)

    此书是收费的,也是现在最新版、最完整的Jasperreport学习资料,像现在网站上的一些入门、实例、应用等都是本书所包含在内的(当然只是知识点一样,例子或源码并不是绝对的)。由于此书前段时间在网上提供下载导致...

    Jasperreport+ireport学习笔记3

    标题与描述概述的知识点主要集中在使用JasperReport与iReport工具进行报表设计,特别是如何在报表中集成图表功能。以下是对这一主题的深入探讨: ### JasperReport与iReport简介 JasperReport是一款开源的报表工具...

    jasperreport for java developer

    在学习JasperReport时,你需要了解以下几个关键知识点: 1. **报表设计基础**:理解报表的基本结构,如字段、表达式、变量、团体和样式。 2. **JRXML文件**:报表的定义存储在JRXML文件中,这是一个XML格式,包含...

    jasperReport测试例子

    这个测试例子是关于如何使用jasperReport进行报表设计和开发的实践代码和学习资源集合。通过这个测试项目,我们可以深入理解jasperReport的工作原理,以及如何在Java应用程序、JSP或Web环境中集成报表功能。 ...

    JasperReport实例导入可用

    **JasperReport 实例导入详解** JasperReport 是一个开源的报表工具,它允许开发者创建复杂的报告设计,并在各种应用程序中嵌入...学习和掌握 JasperReport 能极大地提升开发效率,使你在数据分析和展示方面得心应手。

    JasperReport报表设计总结

    ### JasperReport报表设计总结 ...通过本文的学习,读者可以更好地理解和掌握如何使用JasperReport进行报表设计与开发。随着对JasperReport的深入了解,开发者可以充分利用其强大的功能来满足各种复杂的报表需求。

    jasperreport

    同时,可能还包含了示例代码和文档,帮助开发者理解和学习如何使用JasperReport。 总的来说,JasperReport是一个功能强大的报表工具,它提供了丰富的设计元素和灵活的数据处理方式,使得即使复杂的业务报表也能轻松...

    ireport+jasperreport API

    1. JasperReport API:学习如何创建和填充jasperReport模板,理解JRDesign对象和JRFillDataset的概念,它们是报表生成的核心。 2. 动态表头:通过使用Group和HeaderFooter元素,可以实现根据数据变化的表头,提供更...

    基于Jasperreport动态单元格合并模板

    通过分析这些模板,可以学习如何配置JRXML,以及如何在代码中处理动态合并逻辑。 在实际应用中,开发人员需要根据业务需求灵活运用这些技巧,以生成满足需求的复杂报表。同时,JasperReport与其他BI工具(如Jasper...

    iReport与JasperReport简介

    **五、学习资源** 对于初学者,可以从官方文档和社区资源入手。"iReport中文详细教程.pdf"是一个很好的起点,它涵盖了iReport的基础知识和进阶技巧,可以帮助读者快速上手。 总的来说,iReport和JasperReport是Java...

    jasperreport 6.4.1报表动态列,以及生成导出html

    这个特定的压缩包文件包含了一个关于如何实现jasperreport动态列以及生成HTML导出的示例,对于使用Eclipse进行Java开发的人员来说,这是一个非常实用的学习资源。 动态列的概念在于,报表的列数不是固定的,而是...

Global site tag (gtag.js) - Google Analytics