基于bs架构的报表服务平台生成器的设计与实现答辩稿_第1页
基于bs架构的报表服务平台生成器的设计与实现答辩稿_第2页
基于bs架构的报表服务平台生成器的设计与实现答辩稿_第3页
基于bs架构的报表服务平台生成器的设计与实现答辩稿_第4页
基于bs架构的报表服务平台生成器的设计与实现答辩稿_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于B/S架构的报表服务平台生成器的设计与实现,答辩人:指导教师:学号:答辩日期:,报表系统的来源及开发目的报表系统的整体设计报表生成器的设计与实现开发环境与开发工具总结与致谢,报表系统的来源及开发目的,报表是把一些数据放在固定格式的固定位置上的表格在各行各业中都有很广泛的用途,是进行信息浏览、分析、打印的有力工具被誉为应用软件的灵魂,企业信息系统的实际应用的60%以上与报表相关,报表系统的来源及开发目的,随着世界范围内Internet环境的形成与高速发展,全球正进入一个以网络为中心的计算时代基于B/S架构的应用软件正逐步成为当今应用软件的主流B/S架构简化了C/S中的客户端,开发、维护等几乎所有工作都集中在服务器端。,问题,只能采用浏览器来作为用户界面进行交互,报表的制作、显示难以实现。B/S结构的应用程序常常需要完成非常复杂的报表打印任务,靠IE自带的页面打印不能满足需要。,报表系统的来源及开发目的,报表系统的来源及开发目的,灵活的解决公司自身对B/S构架下报表打印的需求 嵌入到其他公司的产品中,实现良好的复用性,为公司节约开发成本 系统逐步完善,本系统可作为公司的正式产品推向市场,给公司创造更高的价值。,报表系统的来源及开发目的报表系统的整体设计报表生成器的设计与实现开发环境与开发工具总结与致谢,报表系统的整体设计,系统架构图,Web层由Servlet/Jsp实现,他们动态响应客户端传来的请求,并调用相应的业务逻辑,业务逻辑层包含具体的业务逻辑,它由运行在业务逻辑层的enterprise bean处理,数据层包含了底层的数据库系统及其它数据资源,客户层由嵌入到浏览器页面里的Applet实现,报表系统业务流图,报表系统的来源及开发目的报表系统的整体设计报表生成器的设计与实现开发环境与开发工具总结与致谢,报表生成器的设计与实现,报表生成器IPO图,报表生成器的设计与实现,报表生成器业务流图,报表生成器的设计与实现,报表生成器模块划分,报表生成器的设计与实现,模板解析模块,根据客户所要查询的报表模版文件名称载入报表模版文件,然后对其进行解析Java对象化。解析模版主要是为了提取报表模版文件中信息,并进行一定的处理,根据处理结果进行数据填充,生成完整的报表。,报表生成器的设计与实现,模板解析模块,输入项,输出项,报表生成器的设计与实现,模板解析模块应用技术 在该模块的实现中我用到了jakarta commons 下的digester,它通过为sax事件提供高级的接口大大简化了sax方法的解析过程。该接口隐含了大量xml文件处理的复杂的技术细节。使开发人员得以集中精力处理xml数据而不是花太多的时间在如何解析文件本身上。,报表生成器的设计与实现,模板解析模块应用技术创建一个mons.digester.Digester实例。根据需要设置一些配置属性(configuration properties),以控制下一步的解析操作。将一个或几个初始对象(initial object)压入Digester对象栈,本步骤不是必须的。注册所有的元素匹配模板(elemet matching pattern)。调用digester.parse()方法,一个XML文档的引用(有多种方式供选择)要传给这个方法。,报表生成器的设计与实现,模板解析模块辅助类实现javabean由于我要对报表对象中的每个元素都进行操作,所以我为xml中的每一个标签建立一个javabean,并抽象出接口,在后面均采用接口对其操作,提高扩展性。 我只是简单地使用javabean封装数据,而没有采用EJB进行封装,一方面是标签数量大,采用EJB封装会大大增加编码量;另一方面是提高性能,减少EJB的组件数量,而采用EJB掉用javabean可以大大提高系统性能。,报表生成器的设计与实现,模板解析模块辅助类实现工厂类为了增加程序的可扩展性,简化编码,我为每一个xml标签建立了一个工厂类,在里面实现了createObject(Attributes attr)方法,在方法中创建了相应标签的javabean实例,并将传入的attr的值赋于javabean的各个属性。在规则的定义中,我采用了digester.addFactoryCreate方法,将上面的工厂类实例入栈,这样做大大提高了程序的可扩展性。,报表生成器的设计与实现,数据库连接模块,当报表模版文件解析完成后,主控程序会在生成的报表对象中提取出连接字符串与查询字符串,交给该模块,启动该模块后,将进行数据库的连接与查询工作,并将结果ResultSet对象,返回给主控程序。,报表生成器的设计与实现,数据库连接模块,输入项,输出项,报表生成器的设计与实现,数据库连接模块本系统没有指定的数据库,所使用的数据库均是由用户指定,并将连接字符串和查询字符串保存在报表模板文件中,报表生成器获取该信息,动态连接数据库。,报表生成器的设计与实现,数据库连接模块由于系统只有对数据的只读操作,为了减少系统资源的浪费,提高性能,我在实现中没有采用Entity bean封装数据,只是采用了JDBC进行数据库连接,将其封装在一个Session bean中,以连接字符串与查询字符串为入口,将查询的数据固化在我自己定义的数据结构中。,报表生成器的设计与实现,数据计算及填充模块,该模块用于对解析生成的报表对象里面的属性值进行分析,根据其进行一系列的计算,将数据集里面的数据填充到指定的位置,同时以一种异于报表模版文件的格式报表查看器所需格式,重新将报表对象还原成XML数据流返回,报表生成器的设计与实现,数据计算及填充模块,输入项,输出项,报表生成器的设计与实现,数据计算及填充模块程序进入数据计算及填充模块,首先对数据集数据进行封装。考虑到对ResultSet操作的局限性,结合实际应用,我对该数据进行了再次封装,我创建了一个javabean用来存储每一条数据集记录WRMBaseData,在该javabean中我用到了Map,将数据及其关键字存入该数据结构。在外层封装上,我将这一系列的WRMBaseData存入List中。,报表生成器的设计与实现,数据计算及填充模块之后开始进行数据的计算与填充,我首先对首页的静态数据进行了填充,页脚、标题、项首等然后进行动态数据填充,即从封装好的数据结构中获取相应的数据信息,填充到相应的对象中。该过程对数据进行叠代,每取出一行数据,填充一次。并对每一行进行分页判断,若需要分页,则缓存当前填充行, 对当前页进行剩余元素的填充,然后新建页,填充静态信息,在填充缓存行,直至所有行均填充完毕。,报表系统的来源及开发目的报表系统的整体设计报表生成器的设计与实现开发环境与开发工具总结致谢,开发环境与开发工具,开发环境开发工具,硬件环境CPU类型:Pentium(R)4CPU主频:2.66GHzRAM大小:512M硬盘空间:80G,软件环境操作系统:WindowsXP Professional浏览器:IE 6.0数据库:MS SQL Server 2000EJB容器:JBOSS,JBuilder2005,报表系统的来源及开发目的报表系统的整体设计报表生成器的设计与实现开发环境与开发工具总结与致谢,总结,本次毕业设计按照预定的计划都已全部完成,原始需求计划中的功能都已实现。同时,该需求只定义了整个系统的框架及部分功能模块,还有部分模块需要后期回到公司根据实际需求进行添加,由于在框架的搭建中,包括外部接口的定义,bean的设计都充分考虑到了扩充性,对于以后的扩充工作只需根据需要实现相应的EJB组件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论