基于JFreeReport报表设计器的实现技术.docVIP

基于JFreeReport报表设计器的实现技术.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于JFreeReport报表设计器的实现技术.doc

  基于JFreeReport报表设计器的实现技术   [摘要]报表始终是所有信息系统中不可或缺的内容,尤其是在国内的应用系统中,报表更是占据着相当重要的地位。本文提出了一个基于JFreeReport报表设计器的设计方案,并给出了基于Sainfrm(系统主窗体包),reportgenerate(报表生成包),tools(系统所需的其他工具类),vc(MVC包,包含有MVC模式所需的基础支持类,它是系统的底层基类)。   MVC模式的优点在于这种方法鼓励重用,而不是重新设计。有相同机理的组件,只要改写不相同的模型部分,便能制造出不同功效的组件,而不用重新设计每个组件,缩短和减轻了设计工作的时间和难度。因此选择了MVC设计模式作为系统的主体架构[1]。   MVC模式基本实现过程为:   (1)控制器;   (2)控制器新建一个或多个视图对象,并将它们与模型相关联;   (3)控制器改变模型的状态;   (4)当模型的状态改变时,模型将会自动刷新与之相关的视图。   Java通过专门的类Observable及Observer接口来实现MVC模式。Model类必须继承Observable类,VievcVievcModel,它继承自Observable抽象类,重载了addVievcControllor类,它实现了ActionListener和ItemListener两个接口,重写actionPerformed()和itemStateChanged()方法[2]。至此,系统的MVC框架搭建完成。   最后建立gr。SqlStatement类主要实现SQL语句的查询,ConnectionMgr类实现了一个单例(Singleton)模式,用于管理与数据库的连接。   3报表部件的实现      3.1报表表板的定义   为了方便用户设计报表,系统中的报表模板是由若干个表板组成的,而各报表元素,位于各表板之中。模板、表板、报表元素。   系统支持的7类表板如下:   页眉板(PageHeader)、表眉板(ReportHeader)、组眉板(GroupHeader)、主体板(ItemBand)、组脚板(GroupFooter)、表脚板(ReportFooter)、页脚板(PageFooter)等。   3.2报表编辑的功能   为了实现报表的编辑功能,系统将报表元素组织成一棵元素树。所以报表编辑功能的实现首先要构造元素树[5]。为了完成元素树的构造,必须设计一个机制来识别报表中的元素。由于JFreeReport本身定义的报表元素类型比较简单,不便于用户编辑报表,对于JFreeReport的报表元素类型进行了扩展。系统中的报表元素共有5种类型:StringElement(文本元素),它是报表中最常用的元素类型,分为域绑定型和静态型;NumberElement(数值元素),是一个域绑定型元素,用于存放数值格式信息,可以设置数值的显示格式;DateElement(日期元素),属于域绑定型元素,存放日期信息,且可以设置日期的显示格式;ShapeElement(图形元素),矩形、直线等矢量图形用图形元素表示;ImageElement(图片元素),用于存放外部的图片。   由于对JFreeReport的元素类型进行了扩展,就需要对元素类进行重新设计。目前,只有StringElement支持静态类型数据,为了保持系统的可扩展性,构造了一个RElementIF接口用于保存元素的类型信息。StringElement、NumberElement和DateElement在JFreeReport中都属于TextElemet,所以它们都继承了TextElement类,通过setDataSourceType()方法来应用不同的格式模版,完成类的扩充。在识别报表元素时只需对RelementIF对象进行instanceof运算,即可获知当前的报表元素。图2展示了系统报表元素的类设计图。            3.3报表定义文件的存取   系统的最终目的是自动生成JFreeReport的数据报表定义文件,因此有必要将数据源信息与数据报表的定义分开保存。这样就可以实现数据与样式展示的分离。为此,系统引入了工程的概念:将数据报表的样式定义信息和数据源信息分别持久化保存,再用一个工程文件保存上述两个文件的路径。   JFreeReport提供了报表定义文件输出的API方法[6],由于数据源对象是一个JavaBean类,可以使用XMLEncoder和XMLDecoder类库方法将其序列化,限于篇幅,源码不再列出。      4结语      报表问题是 企业 信息化过程中关注的一个焦点,它的难点在于实现客户化,本文中介

您可能关注的文档

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档