【JSP开源代码栏目提醒】:网学会员在JSP开源代码频道为大家收集整理了“基于Jasperreport技术的动态报表研究应用论文 - 讲义教程“提供大家参考,希望对大家有所帮助!
毕业设计(
论文) 设计(
论文)题目:基于Jasperreport技术的动态报表 的研究及应用 学生姓名 学生学号 专业班级 指导老师 院长 系主任 年5 月 18 毕业设计
论文 第I页 基于Jasperreport技术的动态报表的研究及应用 摘 要 在大型MIS系统中报表是非常重要、不可或缺的组成部分。
由于报表涉及相当复杂的业务逻辑,程序员缺少充足的时间去设计。
专有设计的报表模块通用性极差,因此,很多公司、团体都推出了报表类库、中间件的产品或者技术。
甚至针对中国式报表也有专门的报表产品出现。
但是对于一些MIS系统开发,大量使用商业报表产品进行开发成本较高,扩展性弱,正是在这种背景下,
开源报表JasperReport脱颖而出。
JasperReport是一个强大的
开源报表工具,它可以传送丰富的报表内容到显示器、打印机或者PDF、HTML、XLS、CSV、XML文件,能用简单灵活的方法创建便于打印的分页文档。
它完全使用Java编写,可以在各种Java应用中用来创建动态报表内容。
本文在对JasperReport
开源工具的的原理及工作方式进行了详细的研究之后,结合iReport(它是jasperreport的一个可视化的开发工具)的各种优点和java
代码的灵活性,设计实现了网络流量整形系统中的报表模块。
这个应用可以作为JasperReport实现大型MIS系统中报表模块的成功实例,而且
开源的特点可以使其进一步开发,更好地适应特定的应用。
JasperReport iReport 报表工具 Java 毕业设计
论文 第II页 Research and Application on Jasperreport-Based Dynamic Report ABSTRACT Report is a indispensable part in a large MIS system. As report involves very complex business logic programmers lack of adequate time to design. Proprietary module designed to statements of general poor so many companies and organizations have launched a statement of class libraries middleware products or technologies. Even against Chinese statements have specialized products in the statements. But for some MIS systems development large-scale use of commercial products statements higher development costs expansion of the weak it is against this background that the revenue statements JasperReport come to the fore. JasperReport is a powerful open-source reporting tools and it can send rich content to monitors printers or PDF HTML XLS CSV XML documents simple and flexible method can be used to create print-friendly page of the document. It is fully prepared to use Java Java applications in a variety of statements used to create dynamic content. In this paper after detailed study of the JasperReport with all the advantages of iReport it is a visual development tools of jasperreport and the flexibility of java code finished design and implementation of report part of the network traffic shaping system . Application of this can be seen as a successful example of JasperReport implement the report part of large MIS system and the open-source characteristic can raise to further development better adapted to specific applications. Key Words: JasperReport iReport reportingtools Java 毕业设计
论文 第III页 目 录 1绪论 .................................................................................................................................. 1 1.1 课题背景 .................................................................................................................. 1 1.2 报表工具的发展现状 ............................................................................................. 1 1.3
论文组织结构 ......................................................................................................... 3 2基于JasperReport技术的动态报表的研究 ................................................................ 3 2.1 JasperReport报表原理及工作流程 ....................................................................... 3 2.1.1 JasperReport报表原理和特点 ......................................................................... 3 2.1.2 JasperReport工作流程 ..................................................................................... 4 2.1.3 JasperReport的数据源的准备 ......................................................................... 5 2.2 iReport介绍.............................................................................................................. 6 2.2.1 iReport简介 ....................................................................................................... 6 2.2.2 iReport的使用 ................................................................................................... 7 2.3 相关技术 .................................................................................................................. 8 2.3.1 Java ..................................................................................................................... 8 2.3.2 XML ................................................................................................................... 8 3系统需求分析 ............................................................................................................... 10 3.1系统功能介绍 ........................................................................................................ 10 3.2 网络行为报告功能 ............................................................................................... 10 4 网络流量整形系统报表设计及实现 ......................................................................... 12 4.1 系统的实现架构 ................................................................................................... 12 4.1.1系统体系结构 .................................................................................................. 12 4.1.2 报表开发环境 ................................................................................................. 13 4.1.3 报表模板设计 ................................................................................................. 13 4.2 报表实现 ................................................................................................................ 15 4.2.1
JSP界面表现层............................................................................................... 15 4.2.2 Servlet控制层 ................................................................................................. 16 毕业设计
论文 第IV页 4.2.3 javabean数据模型层 ...................................................................................... 18 4.3 报表的输出............................................................................................................ 20 5 结论 ............................................................................................................................... 25 5.1 总结 ........................................................................................................................ 25 5.2 展望 ........................................................................................................................ 25 致谢 ................................................................................................................................... 26 参考文献 ........................................................................................................................... 27 毕业设计
论文 第1页 1绪论 1.1 课题背景 随着Internet的接入的普及和带宽的增加,一方面员工上网的条件得到改善,另一方面也给企业带来更高的网络使用危险性、复杂性和混乱。
在全世界企业网络使用情况的调查中发现,非法使用邮件、浏览非法Web网站、下载音乐、电影等数字文件,或者在线观看收听流媒体的员工正在增加,令网络管理者头疼不已。
这些员工随意使用网络将导致三个问题: 1工作效率低下、2网络性能恶化、3网络违法行为。
企业网作为一个开放的网络系统,运行状况愈来愈复杂。
企业的IT管理者如何及时了解网络运行基本状况,并对网络整体状况作出基本的分析,发现可能存在的问题(如病毒,木马造成的网络异常)快速的故障定位,这一切都是对企业网信息安全管理的挑战。
本课题所在的项目是开发保障网络系统,对网络流量进行统计、分析以及对网络进行安全控制的软件系统。
该系统设计使用ForeceView FlowShaper流量整形系统--基于Netflow数据流的网络数据实时监控与分析产品。
由于系统数据量巨大,分析需求复杂,为了帮助该系统提供完善、丰富的报表展现,提出了本课题要求--使用Jasperreport技术实现报表展现。
报表制作在日常应用中非常普遍,随着无纸化的推进,电子报表的制作成为了办公自动化中一个很重要的部分。
其中,报表工具的使用起着非常关键的作用。
当前的报表工具主要分为两种:一种是手工开发,它的特点是灵活方便,可以更好地与特定的应用环境相适应,但是需要耗费一定的开发时间。
另一种是利用目前已有工具提供的接口进行开发。
它的特点是节省时间,提高工作效率。
1.2 报表工具的发展现状 在很多实际的项目里,报表都是十分重要的组成部分,例如把查询结果以报 毕业设计
论文 第2页 表形式呈现出来。
这里所提到的报表可不是简单的二维表,而是拥有复杂表头的、多维的、可以在运行期从数据库中自动读取数据、可自动分页、拥有丰富页面元素(图片,超链接等)、支持分组和交叉表、支持打印、最好还能导出到Excel或Word????但是显而易见,报表功能越强大、提供的服务越丰富,其复杂度也就越高,所以仅靠手工方式生成报表是不能满足需要的。
当前市场上常用的报表工具有很多,人们了解最多的还是EXCEL,它是MS Office 套装中的一个组件,在一些简单的报表系统中,常常利用它提供的接口进行二次开发,但它不太适合制作Web 报表。
在这方面,润乾、杰表、Crystal Report、Style Report 等Web 报表工具支持得很好。
其中,润乾、Style Report 支持跨平台操作,前者还提供了强大的Java 开发接口。
Crystal Report 在.NET 方面提供了比较完善的开发接口,但是在Java平台上,多数的实现都是要收费的,而且其Eclipse插件的资源消耗十分惊人。
另外,还出现了一种基于控件的低端Web 报表产品如数巨、明宇,但是它们在开发Web 报表方面有一定缺陷。
目前J2EE技术在国内的B/S应用开发中占主导地位,对JAVA的支持也是报表工具的一个重要考查指标。
从这个意义上讲,报表工具可以分为纯JAVA 和非纯JAVA 两种 (所有支持B/S应用的报表工具都能支持JAVA)。
相比之下,纯JAVA产品具有明显的优势。
产品能够与J2EE应用完全无缝结合以达到最高的运行效率、安装部署很轻松简单(其机制与应用本身完全一致);同时还可充分利用J2EE应用服务器强大的集群平衡负载及共享管理的能力,适合支持用户数众多的大型应用系统;由于JAVA的跨平台能力,还能让整个应用系统轻松地从低端体系向高端体系迁移,系统容量变大时只要更换硬件、操作系统及数据库等系统部件而无需或很少需要重写软件。
而非纯JAVA产品则相反,经常只能在Windows下运行(个别国外产品宣称支持UNIX但部署极为复杂)、同样的应用在不同规模下可能需要两套解决方案,或在大型应用中除了UNIX主服务器外还必须专门部署Windows作为报表服务器显得体系结构非常古怪;产品也不能和J2EE的应用无缝结合、沟通需要沟通额外的网络协议导致运行效率较低,而且由于不能享受应用服务器的集群机制(国外产品常常有自己的集群机制但没有J2EE应用服务器专业),难以支持多用户的大型应用1。
毕业设计
论文 第3页 JasperReport是JasperSoft公司的一款
开源的报表解决方案。
通过JasperReport,用户就可以方便的定制、设计、生成项目所需要的各种报表。
它是一种功能非常强大的报表工具,是纯Java编写的,与以上报表工具相比较,有其自身的特点和优势: (1)开放源
代码。
可以更灵活地定制此报表工具实现特定功能。
(2)功能强大。
无论是复杂样式的固定报表,还是子报表、交叉报表,各种线段的运用,图形的嵌入,数据源连接的多样性,数据预览和模板编译,无不体现其强大的功能,而且其
开源的特性使它的功能不断得到扩展。
通过与iReport 结合,脱离了编写XML的复杂过程,很好地实现了报表的设计。
(3)类库基于Java 技术,更好地适用于B/S 架构的Web 系统,而且能输出打印机及生成XLS、RTF、HTML、PDF、XML 等多种格式的报表文件2。
1.3
论文组织结构 本文先对Jasperreport报表的原理,工作流程及Ireport设计模板等方面做了深入而细致的研究与分析。
在理论研究的基础上,本文用基于JasperReport技术的动态报表对网络整形系统的报表模块进行了设计实现。
2基于JasperReport的动态报表的研究 2.1 JasperReport报表原理及工作流程2.1.1 JasperReport报表原理和特点 报表分析的过程是将整个报表的数据分成不同部分和指标,并找出有关指标的关系,以达到对企业各方面及总体上的认识,报表能很直观和及时地发现问题。
JasperReports是一个功能强大的报表产生工具,他有能力描述丰富内容到屏幕上、到打印机或到PDF、HTML、XLS、CSV和XML文件,并集成了Jfreechart图标制作库,可以在报表中嵌入柱状图,折线图,饼图等许多图形。
它是完全用 毕业设计
论文 第4页 Java编写的,并可在各种Java应用包括J2EE或Web应用中用来产生动态内容。
报表的生成、预览、打印、导出等主要功能都在net.sf.jasperreports.engine包中的对应类中实现。
使用net.sf.jasperreports.engine.JasperCompileManager类的静态方法可完成对XML报表的编译工作。
JasperReport借由定义于XML文档中的report design进行数据组织。
这些数据可能来自不同的数据源,包括关系型数据库、Collections、Java对象数组。
通过实现简单的接口,用户就可以将report library插入到订制好的数据源中。
在实际应用中要输出不同的格式还需要几个不同的类库,例如输出成PDF格式需要itext一1.3.jar,支持中文还需要i.textAsian.jar,输出成XSL表需要Pio—bin一2.3.jar等3。
其主要目的是以一种简单而灵活的方式来帮助创建导向的页面。
它具有纯Java编写的特点,使它具有良好的跨平台和兼容性。
它还有一款与之配套的前端的图形界面页面制作工具Ireport,Ireport可以用拖拽的方式完成各种图表,报表,子报表等复杂报表的制作。
也正由于Jasperreport的强大功能和其
开源的特性,我们在本系统中选择Jasperreport作为报表工具。
2.1.2 JasperReport工作流程 图2.1为Jasperreport的工作流程。
黑框为JasperReport产生一个报表所要用到的主要的类,红框为产生黑框里这些类的实例所用到的类方法。
图2.1 Jasperreport的工作流程 JasperReport是按照一个预定义的XML文档来组织报表的数据,这些数据来源多样,包括关系数据库、Java容器对象collection和arrays,描述报表设计的XML文件的编译,通过执行JasperManager类的compileReport方法。
通过编译,报表设计被装载入一个报表设计对象中,然后系列化并存储在磁盘上JasperReport。
毕业设计
论文 第5页 当应用程序想以数据来填充特定的报表设计时会使用这个已系列化的对象。
事实上,报表设计的编译意指描述报表设计的XML文件中定义的所有Java表达式的编译。
为了检查报表设计的一致性,在编译时做各种检验。
结果被准备用来填充报表设计,然后被用来以不同的数据集产生文档。
为了填充一个报表设计,可使用JasperManager类的fillReportxxx方法。
这些方法接受作为参数的报表设计对象,或描述特定报表设计对象的文件,在一个系列化的格式中,从其中接受数据填充报表的数据库JDBC链接结果是一个描述准备用来打印文档的对象JasperPrint,并可被以一个系列化格式存储在磁盘上4。
为以后使用,可分发到打印机、到屏幕或转换到一个PDF,HTML,XLS,CSV或XML文档。
简而言之就是设计一个报表从XML 文件开始(一般由iReport 设计完成),这一步主要是定义报表的布局和变量的设置,经过分析后提交到JasperDesign 类。
然后,经过编译送到JasperReport 类,在此处经过变量一致性检查和优化操作后,产生一个临时的模板文件(.jasper 文件),这个文件经过程序中填入数据就可以生成一张完整的报表了,填充数据的.jasper 文件被送到JasperPrint 类。
此时,可以通过JasperPrintManager 类在显示器中显示或是打印出报表,也可以通过JasperExportManager 类生成PDF、HTML、XML等格式的文件5。
2.1.3 JasperReport的数据源的准备 数据源的准备是报表系统中最重要的一部分,为了要为报表装填数据,我们需要为报表引擎提供所需的数据,或者至少告诉它怎样去获取数据。
通常情况下,我们一般有两种选择,一是选择数据库连结的数据源,JasperReport通常需要接受一个JRDataSource对象作为报表的数据源,这个类与报表的数据源有关。
只要能够恰当地实现它的一些接口,用户就可以在报表中使用各种数据源。
报表装填的时候, 由报表引擎负责对数据进行解释和获取。
当报表装填的时候,报表引擎都会在后台生成提供一个该接口的实例。
同时作为更为强大的功能,JasperReport能直接用JDBC从关系数据库中获取数据。
通过这种方式,我们就可以直接在报表设计中写入SQL查询语句,让报表在运行期自动获取所需的数据来装填报表而不需要做额外的工作。
在报表中,可以使用元素来引入查询。
如果这 毕业设计
论文 第6页 个元素存在,则出现在报表参数声明之后,报表field之前6。
但这样一来,就必然会损失一些程序的灵活性,比如查询语句或数据库连接需要修改的时候我们就不得不重新填入相应的内容并编译报表。
所以在工作中我们可以采用另外一种方式,即用JavaBean的集合(Collection或Array)来充当数据源。
例如,本系统的数据库中的表“cfg_static_name”中的属性在我填入sql语句之后自动显示在了下面。
对于简单的报表来说,这样做确实很方便。
但是如果SQL查询或数据库连接有变动的话,就需要重新填入SQL语句或数据库连接的信息,并编译报表设计,这显然是在损失了灵活性之后所获得的方便。
此时第二种方式要优于第一种。
2.2 iReport介绍 说起JasperReport不得不先介绍一下iReport。
iReport 也是
开源组织sf.net 中的一款免费软件,其主要作用是用来以可视化的方式设计生成JasperReport 所使用的报表格式文件,因为JasperReport 本身并未提供很好的可视化报表设计工具,iReport 的出现正好弥补了这个缺陷。
2.2.1 iReport简介 进行模板设计时,如果手动书写XML 文件,既可能出现书写错误,而且看上去也不直观。
繁琐的XML标记和功能API在提供强大的动态及可扩展开发的同时也带来了超高的复杂性,在没有免费文档的情况下,手工编写报表设计所需的XML文件是极其不明智的。
不过正如JBuider(或其他可视化开发工具)编写SwingGUI时一样,我们可以采用iReport进行可视化的的损失简直可以忽略不计了。
当然,如果确实需要、且看到纷繁复杂的XML报表模板文件时你不会晕倒的话,自己动手确实可以获得所需的灵活性。
和JasperReport一样,iReport也是Sourceforg上的
开源项目。
它的出现,主要是为了降低JasperReport的使用难度,为用户提供可视化的报表设计工具。
它采用纯Java 开发, 图形化编辑XML 文件,支持PDF, RTF, XML,XLS,CSV, HTM 等多种文件格式输出,同时支持子报表、交叉报表等复杂报表的设计,具有数据预览功能,并集成了JFreeChart 图表制作库,可在表中.