- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于JFreeReport报表设计器实现技术
基于JFreeReport报表设计器实现技术
[摘要]报表始终是所有信息系统中不可或缺的内容,尤其是在国内的应用系统中,报表更是占据着相当重要的地位。本文提出了一个基于JFreeReport报表设计器的设计方案,并给出了基于Swing的实现过程。在设计过程中主要使用了Swing、XML持久化保存、MVC设计模式、软件工程等技术。
[关键词]JFreeReport;报表生成;设计模式;XML持久化保存
[中图分类号]TP311[文献标识码]A[文章编号]1008-4738(2007)02-0087-03??
1 基于JFreeReport报表背景与简介
企业信息化过程中需要处理大量的有关多维数据集的信息,而表现数据信息处理结果的一种理想的方式就是数据报表。报表定义文件是生成复杂报表的重要文件,主要描述如何使用指定的格式生成复杂的报表,对于JFreeReport定义数据报表格式所需的XML文件通常是由人工输入编写的,对于格式较为简单的报表还可以接受,但是对于大型数据库报表,数据报表关系格式复杂而且字段数量较多,人工输入易出错又繁琐,本文研究的报表设计器就是针对JFreeReport报表生成内核进行开发的。
2系统整体设计
2.1系统整体框架与MVC模式
基于Java的Swing技术,设计器内核使用JFreeReport,用于绘制和输出各种复杂的统计报表。设计器的主要工作是将用户对报表的设计意图通过报表生成内核的API传递至报表生成内核,再将报表生成的结果实时反馈给用户。报表生成后,应该能够持久化保存。此外,根据当前流行的数据库报表的功能,系统也要具备将报表转换成诸如PDF、HTML等其他文件格式的功能。让用户对于事实数据具有全面的分析和了解,增加数据流通为企业带来的效益。
为了能够方便地重用组件并且体现模块的独立性,把整个系统组件分解组织成11个类包,只要得到这个包文件,其他类也可以引用该包中的所有类并使用里面的某些组件。该类包分别为:datasource(数据源包),dbutilities(数据库工具包),io(磁盘操作包),jfdmainfrm(系统主窗体包),reportgenerate(报表生成包),tools(系统所需的其他工具类),wmvc(MVC包,包含有MVC模式所需的基础支持类,它是系统的底层基类)。
MVC模式的优点在于这种方法鼓励重用,而不是重新设计。有相同机理的组件,只要改写不相同的模型部分,便能制造出不同功效的组件,而不用重新设计每个组件,缩短和减轻了设计工作的时间和难度。因此选择了MVC设计模式作为系统的主体架构[1]。
MVC模式基本实现过程为:
(1)控制器;
(2)控制器新建一个或多个视图对象,并将它们与模型相关联;
(3)控制器改变模型的状态;
(4)当模型的状态改变时,模型将会自动刷新与之相关的视图。
Java通过专门的类Observable及Observer接口来实现MVC模式。Model类必须继承Observable类,View类必须实现接口Observer。正是由于实现了上述结构,当模型发生改变时,模型就会自动刷新与之相关的视图。其UML序列图可以表示为图1。
图1 MVC模式时序图
在系统具体实现时,首先建立视图类WmvcView,它继承了Obsever抽象类,重载了update()和updateView()方法。然后构造模型类WmvcModel,它继承自Observable抽象类,重载了addView(),deleteView()和notifyViews()方法。通过addView()方法,模型将实例化视图并且将视图与模型建立关系。最后创建控制器WmvcControllor类,它实现了ActionListener和ItemListener两个接口,重写actionPerformed()和itemStateChanged()方法[2]。至此,系统的MVC框架搭建完成。
最后建立WmvcApp类,它应用了单例模式(Singleton)来保证在整个系统中只有一个实例存在,实现了类似于VC++中的WinApp机制。应用单例模式的思路是:一个类能返回对象一个引用和一个获得该实例的方法。当调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用;同时还将该类的构造函数定义为私有方法[3]。这样其他处的代码就无法通过调用该类的构造函数来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例。
2.2系统界面设计
整个主界面采用有限制的多文档结构。所谓
您可能关注的文档
最近下载
- DF11机车常见电器故障处理动车论坛.doc VIP
- 精选7篇带头严守政治纪律和政治规矩,维护党的团结统一“四个带头”发言提纲.docx VIP
- 骨质疏松治疗仪联合地舒单抗治疗骨质疏松性压缩骨折的疗效及其对骨密度.pptx
- 学校风雨体育场(风雨操场)项目可行性研究报告.docx VIP
- 云南省茶叶出口影响因素的实证研究.docx VIP
- 格林童话-走进天堂的裁缝.docx VIP
- 2022版诊所备案信息表.doc
- 实腹式钢吊车梁(中轻级工作制_A1-A5_Q235钢_跨度6.0m、7.5m、9.0m).pdf VIP
- 一带一路背景下云南茶叶出口现状问题及对策.docx VIP
- 蒸汽发生器课程设计.docx VIP
原创力文档


文档评论(0)