计算机专业毕业论文.pdf_第1页
计算机专业毕业论文.pdf_第2页
计算机专业毕业论文.pdf_第3页
计算机专业毕业论文.pdf_第4页
计算机专业毕业论文.pdf_第5页
已阅读5页,还剩81页未读 继续免费阅读

计算机专业毕业论文.pdf.pdf 免费下载

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

文档简介

毕业设计(论文) 题目报表设计器开发 专业网络工程 班级网络 041 学生杨济忠 指导教师张璟 二零零八年 2008 届网络工程专业毕业设计(论文) 摘要 现在是信息社会, 各种信息都需要处理并直观展现,如股票,物价等信 息都需要通过数据报表来展现、分析,因此高质量报表软件系统具有重要 的实际意义。 本论文课题研究探索了报表系统的开发方法与技术,综合应用 Eclipse 、 JAVA 、JDBC 、SWT/Jface、 RCP 、XML 、 CSS 、DOM4J,IText,POI等先进技 术,开发了基于 WEB 环境运行的报表设计器,实现了报表设计、模板生成、 报表编辑,报表发布等基本功能,为进一步开发实用的报表系统奠定了基 础。 关键词 :报表, SWT/Jface,Eclipse ,XML ,B/S,RCP 杨济忠:报表设计器开发 Abstract Now is the information society, all kinds of information need to be addressed and visual display, such as stock ,prices and other information needed to demonstrate through data reports, analysis, the statements of high-quality software system has important practical significance. This paper statements subject to study and explore the system development methods and technology, comprehensive application of Eclipse, JA VA, JDBC, SWT / Jface, RCP, XML, CSS, DOM4J, IText, POI, and other advanced technology, the development of the operating environment based on the statements WEB design , Achieved a report design, template generation, editing statements, issued statements of such basic functions, for the further development of practical system laid the foundation for statements. KEY WORDS : Report,SWT/JFace、Eclipse 、XML 、B/S、RCP 2008 届网络工程专业毕业设计(论文) 目 录 第一章 概述 . 1 1.1 课题背景与意义 . 1 1.2 报表系统发展概况 . 2 第二章 开发技术及环境. 4 2.1 软件环境 . 4 2.2 主要开发技术 . 4 第三章 系统设计 . 6 3.1 系统体系结构. 6 3.2 软件模块结构 . 7 3.3 数据源与系统文件结构. 8 3.3.1 系统数据源 . 8 3.3.2 系统文件结构. 9 3.3.3 报表显示部分文件 13 第四章 系统实现 14 4.1 主要实现算法 14 4.1.1 新建报表流程图 . 14 4.1.2 新建数据源流程图. 15 4.1.3 编辑单元格流程图 . 16 4.1.4 保存报表流程图 17 4.1.5 生成电子表格流程图 18 4.1.6 发布报表流程图. 20 4.1.7 编辑 CSS 流程图 21 4.1.8 生成模板流程图. 22 4.1.9 配置服务器流程图. 23 4.2 系统编码实现 23 4.2.1 系统的主界面实现 23 4.2.2 新建数据源 32 4.2.3 新建报表 . 34 4.2.4 编辑单元格 35 4.2.5 生成电子表格. 36 4.2.6 发布报表 . 40 4.2.7 编辑 CSS . 42 4.2.8 生成模板 44 4.2.9 报表保存 45 4.2.10 配置服务器 48 杨济忠:报表设计器开发 第五章 系统典型界面 . 51 5.1 系统主界面 . 51 5.1.1 编辑视图界面 . 52 5.1.2 属性视图界面 . . 52 5.1.3 服务器视图界面 . . 53 5.1.4 数据源视图界面 . . 53 5.2 部分功能界面 . 54 5.2.1 新建报表界面 . 54 5.2.2 新建数据源界面 . 55 5.2.3 设置 CSS界面. 56 5.2.4 设置服务器参数界面 . 57 5.2.5 设置报表参数界面 . 58 5.2.6 生成模板界面 . 58 第六章 课题总结 . 60 致谢 . . 62 参考文献 . . 63 附录 . . 65 2008 届网络工程专业毕业设计(论文) 1 第一章概述 1.1 课题背景与意义 现在是信息社会, 各种信息都需要处理并直观展现,如股票,物价等信 息都需要通过数据报表来展现、分析,因此对高质量报表软件系统的需求 非常强烈。 报表设计工具是报表系统的重要组成部分,使用报表设计工具, 可对企 业以及其他用户需要的各种报表进行设计,并在报表引擎上运行。报表设 计工具的功能包括数据源关联与访问、报表绘制、布局绘制、属性编辑、 脚本编辑、图表编辑、表达式编辑、报表数据映射、报表预览调试等。可 通过 XML转换技术将报表转换换为PDF 、Excel 等格式输出。 随着 B/S 应用逐步取代 C/S,市场上对 Web环境下运行报表的要求日益 强烈,C/S 时期的报表工具纷纷进行了若干改进与加强,支持 B/S 结构。这 些工具大都是对开源软件进行包装改造,基本上有两种流派:一类来自于 FastReport 这种基于 Delphi 的软件,通过控件方式实现Web 报表,进而将 报表计算移至服务器上进行,再改进为支持Linux ;另一类来自于Jasper 的基于 Java 的开源软件。这些工具的整体思路还是沿袭了C/S 时的方式, 仍然是传统的分组报表的模式,仍然无法解决表样和大作量的代码编写问 题,而且使用复杂,不能很好的发挥其效率,不能利用已有的软件功能, 同 时他们都是利用 SWING/AWT来开发的 , 界面难看。 因此,开发一个具有B/S 结构、能适应中国国情、开源的、使用方便、 界面美观的报表设计器是一个很多用户直期待的。但是,目前流行的报表 软件产品中,比较适合中国情况的产品还是不多。 因此,进行本课题研究, 开发报表设计器软件, 对于开发适合中国特点 的实用报表系统,促进企业与社会信息化,具有很好的实际意义。 杨济忠:报表设计器开发 2 1.2 报表系统发展概况 信息化的初期阶段 , 计算机作为一种新的生产工具,其主要功能是文字 输出,如文件打印、表格输出等,相比较手工方式而言,工作效率大大提 高。这个时期,用于报表生成的软件主要是WPS 表格、CCED 、Excel 等文字 处理工具,这些工具仅仅是将手工绘制报表的方式改为电子处理方式,未 涉及到报表数据的集中、共享等处理。更确切地说,这个时期还没有真正 意义上的报表工具。 随着信息化程度的不断提高,C/S 应用方式逐渐成熟,出现了很多报 表工具软件, 最著名的当属水晶报表和PB的 DataWindow 。水晶报表在上世 纪一直被微软 OEM ,成为 VB的内置报表工具,在微软的强大支持下,VB庞 大的用户群为水晶报表培养了众多应用人员并积累了大量成功案例,从而 产生了世界第一(用户量)的报表工具。DataWindow 是 PB 中获取专利技 术的控件,它对数据的处理方法相当简洁,能处理各种显示格式,快速的 报表制作能力深受PB开发者的喜爱。 这些软件的基本特征是单数据源、条带式(BAND )分组统计模型, 通过控件拖拽方式绘制报表,在不编码的情况下能完成简单地行式(分组) 报表和单片交叉报表,数据集中在数据库中,可以共享。 但这一时期的用户需求已经与前一阶段的需求大为不同。用户希望放 在数据库中的数据能以自己熟悉的方式展现(复杂的表样、统计运算等), 而这些报表软件的数据模型源于国外的报表习惯,解决复杂表样的方法并 不好,复杂的统计运算也要求开发人员编写大量的程序代码,导致报表开 发时间太长,后期的维护工作量也很大。 随着 B/S 应用逐步取代 C/S, 市场上对 Web 报表的要求越来越强烈, C/S 时期的报表工具纷纷进行了若干改进与加强,普遍支持B/S 结构,新的报 表软件也如雨后春笋一样不断出现。 2008 届网络工程专业毕业设计(论文) 3 在报表工具的发展过程中,还有一类特殊的表格式产品,最著名有 ormula1 和华表。这种类 Excel 的工具,展现能力非常强,但是因为没有 数据模型,导致其数据处理能力几乎为零,程序员需要按格编写代码往里 填数。相比较分组式报表工具,类Excel 工具能彻底解决复杂报表的样式 问题,所以在实际应用中它一直是与分组报表互补的一类产品。 SWT/JFACE 是 Eclipse推出优秀的 JAVA图形 API。 RCP, 也就是富客户端 , 是在 Eclipse3.0之后分离出来的一个平台。 RCP 技术其实就是插件开发,可以在一个很小的模板上加入各种插件,扩展性 能。现在 RCP 已经成为 Eclipse 开源项目的一个亮点,在国际上广泛的使 用大量 PCR 来开发桌面应用程序。在RCP 平台上,可以使用Eclipse 的插 件机制来快速开发独立应用的桌面应用,从而轻松拥有Eclipse 的界面结 构和界面元素,节省了很多开发精力。 运用 SWT/Jface和 RCP 技术来开发报表, 是当前报表开发的主流方向。 一方面, SWT/Jface 可以提供优秀的图形界面,克服JAVA桌面应用界面难 看的缺陷;另一方面RCP 技术可以提高开发效率。联合运用SWT/Jface和 RCP 技术,可以开发出优秀的报表产品。 杨济忠:报表设计器开发 4 第二章开发技术及环境 2.1 软件环境 本系统的开发环境 : 操作系统: Window server 2003标准版 应用服务器 : Tomcat5.5 开发平台: eclipse3.3 ;jdk1.5 2.2 主要开发技术 SWT/Jface SWT(Standard Widget Toolkit )是标准控件工具集。 Jface 意为 JAVA face 。由于 SUN的 AWT/SWING 技术在与本地界面融合方面存在缺陷,因此 IBM开发了 SWT, 使得界面风格和本地保持一致。 而 Jface 是 SWTa 的扩展包, 采用 MVC 的设计模式,使用更加方面。 RCP RCP (Rich Client Platform)意为富客户平台。在RCP 平台上,可使 用 Eclipse的插件机制来快速开发独立应用的桌面应用,从而轻松拥有 Eclipse 的界面结构和界面元素,节省了很多开发精力。 Dom4j Dom4j (Document Object Model for JAVA)是一个易用的、开源的 库,用于 XML ,XPath和 XSLT 。它应用于 Java 平台,采用了 Java 集合框架 并完全支持 DOM ,SAX和 JAXP 。Dom4j使用起来非常简单,效率高。只要了 解基本的 XML-DOM 模型就能使用。 POI POI(Point of Interest)意为为兴趣点,是JAVA与 MS Office 交互 时用到的第三方 JAR,也是开源的, 属于 Apache的一个项目, 用法简单。它 主要用来读写 OLE 2复合文档结构,本系统主要用它来操作EXCEL 。 IText 2008 届网络工程专业毕业设计(论文) 5 iText是著名的开放源码的站点sourceforge一个项目,是用于生成 PDF文档的一个 java 类库。通过 iText 不仅可以生成 PDF或 rtf的文档, 而且可以将 XML 、Html 文件转化为 PDF文件。用法很简单,效率很高。 Lomboz lomboz 是用来开发 j2ee 应用、免费 eclipse插件,用它可以大大加快 web开发、部署等工作。 杨济忠:报表设计器开发 6 第三章系统设计 3.1 系统体系结构 本系统采用三层B/S 架构 ,分别为表示层、设计层和数据层,如图 3-1 所示。 (1)表示层 (Presentation-Tier) 是报表显示层。本报表系统的表示层有三种类型:Web类型, Excel 类型, Pdf 类型。 (2)设计层 (Designer-Tier) 是本报表系统的重中之重。设计层设计的好坏直接影响到报表的使 用。其主要任务是建立报表、修改报表、发布报表、生成模板等。这涉 及到报表的数据来源,报表的格式,报表输出,是连接表示层和数据层 的桥梁。 (3)数据层 (Data-Tier) 主要是和用户有关。 本报表系统可以与几种常用的数据库系统交互。 报表中可以输入的数据很多, 如图表、序列号、常量等。数据层可以存储 并管理这些数据。 2008 届网络工程专业毕业设计(论文) 7 图 3-1 系统体系结构图 3.2 软件模块结构 本系统的软件模块结构,如图3-2 所示。 图 3-2 系统软件模块结构图 图 3-2 中各模块的基本功能如下: 新建报表 :设置报表的名字、每页显示数目、选用报表模板;把这 些数据存到 Preferences 中,供保存报表使用。 新建数据源 :设置数据源名称,用它来标识数据连接;选择数据库 类型,并设置各种连接参数;进行数据源说明;进行连接测试;连接 成功后把数据源名称和各种连接参数保存到dataSource.xml文件中, 供以后使用;而数据源说明就生成一个文本文件保存。 编辑单元格 :设置单元格的数据,如数据源列、函数、系列号、图 像;设置颜色,字体;设置所对应的行列是否扩展,所对应的行列是 否排序。这些都要用一定的格式保存起来,供报表显示时使用。 保存报表 :设置单元格属性后,保存设置内容。先从Preferences 报表设计器 新 建 报 表 发 布 报 表 编 辑 报 表 编 辑 单 元 格 保 存 报 表 编 辑 C S S 生 成 模 板 生 成 电 子 表 格 配 置 服 务 器 新 建 数 据 源 杨济忠:报表设计器开发 8 读取报表相关数据, 然后生成报表的xml;遍历表格,把表格各种信息 填到 xml 中。 编辑报表 :保存表格后,如觉得不满意,可以打开报表修改。读 取 xml, 把相关信息填到相应的单元格。 也可以设置报表的每页的行数、 报表发布者、发布时间、报表说明。 生成电子表格 :电子表格可用来直接发布,也可用来编辑。先读 取报表 xml 文件,得到各个单元格的数据源,根据数据源不同,得到 不同的数据,并填到相应的电子表格内。可以设置电子表格的属性。 发布报表 :先设置发布目录,然后把项目文件夹下Files目录下 的名和 Preferences 中保存相同的,后缀名为xml、xls 、css、pdf 的 文件都复制到发布目录下。如发布目录已有相同文件,就覆盖。 编辑 CSS :CSS 决定网页页面显示格式,对报表非常重要。本系统 提供一个模板,旁边还有介绍各种标记的代表的内容的提示,这样用 户就可以自己修改它。修改完后点“确定”,生成报表名+“.css ”的 样式文件。 生成模板 :CSS 不是很难,但要做一个好看的格式却很难,所心有 必要把前面生成的CSS文件保存起来,提供下次使用。首先设置模板 名字,然后设置说明,点“确定”后,系统会把当前报表的CSS文件 复制到模板 xml 文件,并生成说明的txt文件。 配置服务器 :配置发布目录、端口、最大线程数,以方便使用。 3.3 数据源与系统文件结构 3.3.1 系统数据源 报表就是数据的显示,所以数据源很重要。本系统的数据源方案如下: (1)提供建立数据源及管理数据源的功能。针对不同类型的数据库 2008 届网络工程专业毕业设计(论文) 9 数据,建立相应的数据源。 建立了数据源后,就用一个XML 文件保存数据 源信息,以后可直接从XML 文件读取或修改连接信息。 (2)提供对其它类型数据源的支持。主要支持EXCEL 文件、函数、 系列号、公式等数据源。 EXCEL 文件可以直接解析为WEB 格式,而函数, 系列号,公式,图像等可以直接插入。 3.3.2 系统文件结构 本系统作为一个桌面应用系统, 涉及到许多文件系统 , 不管用户还是开 发者, 都有可能容易迷失在文件堆中, 所以必须科学管理。 为了解决此问题, 本系统设计了系统主目录文件结构,以下是系统主目录的的文件截图: 图 3-4 系统主目录文件结构图 图 3-4 中各文件的功能如下 : .metadata 文件夹 : 系统自动生成,保存有日志文件。 .setting文件夹 : 系统自动生成,用于保存项目的各个参数。 Bin 文件夹 : 存放已经编译过的JAVA的.class文件。 杨济忠:报表设计器开发 10 DataSource 文件夹 : 存放数据源的 dataSource.xml文件,其中还有各 种.txt文件,用来说明各个数据源。该文件夹结构如图3-5 所示: 图 3-5 DataSource文件夹示意图 Files文件夹 :用来存放所生成的报表。其中有存放报表信息的xml 文件,也有生成为电子表格的.xls文件、 pdf 文件。当然也存放了报表说 明的.txt文件,其结构如图3-6 所示: 图 3-6 Files文件夹结构示意图 icons 文件夹 :用来存放图象,如按钮图标。 intro文件夹 : 系统自动生成。 lib文件夹 :用来存放第三方JAR包。 META-INF文件夹 : 系统自动生成,里面有MENIFEST.MF, 在这个文件里 有描述插件各种信息基本信息。 2008 届网络工程专业毕业设计(论文) 11 src 文件夹 : 是源文件,其结构如下图所示: 图 3-7 src文件夹示意图 从图中可知, src 文件夹包括两个包,一个是xautreportdesign包, 里面有 Activator.java文件,这是 RCP 的激活类。另一个是com包。其实 这个包里有三个子包: com. Xautreportdesign.action,主要用来存放菜单, 工具栏动作类的; com. Xautreportdesign.util,主要用来存放一些工具类 的,这些工具类对全局都有用;com.Xautreportdesign.win,主要是界面方 面的类,有一些是自动生成后我修改的。 com. Xautreportdesign.action包中的一部分类如图3-8 所示: 杨济忠:报表设计器开发 12 图 3-8 com. Xautreportdesign.action包中文件示意图 com. Xautreportdesign.util包中的类如图 3-9 所示: 图 3-9 com. Xautreportdesign.util包中文件示意图 com. Xautreportdesign.win包中类类如图 3-10 所示: 图 3-10 com. Xautreportdesign.win包中文件示意图 Template 文件夹 :是保存模板的文件夹,里面有模板文件.css 文件, 也有模板说明 .txt文件,如图 3-11 所示: 2008 届网络工程专业毕业设计(论文) 13 图 3-11 Template文件夹示意图 .classpath、.project、perties、javaCompiler.args、 plugin.xml、plugin_customization.ini都是系统自动生成的。 build.xml:是用 ant 生成的,为系统打包用。 Rduct:是要生成的新产品配置文件。 splash.bmp :系统启动时产闪动画面使用。 3.3.3 报表显示部分文件 对于报表 WEB 显示部分,有如下重要文件或文件夹: dataSource 文件夹 :存放数据源文件dataSourece.xml 。 photo 文件夹 :存放需要的图片文件。 .css 文件: 是报表的 css 文件。 report.jsp: 是解析保存报表信息的 .xml 的文件。 exceltoweb.jsp:是解析EXCEL 并生成 WEB 的文件。 杨济忠:报表设计器开发 14 第四章系统实现 4.1 主要实现算法 4.1.1新建报表流程图 开始 结束 输入报表信息 已有相同报表 输入数字? 存入 Preferences 是 否 图 4-1 新建报表算法流程图 该算法首先判断是否已有同名的报表,然后判断行数是否为数字,最 后存入 Preferences中。 2008 届网络工程专业毕业设计(论文) 15 4.1.2 新建数据源流程图 选择数据库 输入连接信息 试连接 是否成功 写入 XML 文件 是 否 结束 开始 图 4-2 新建数据源算法流程图 该算法先选择合适自己的数据库,然后输入信息,最后连接,看是否成 功,若成功就把信息保存起来。 杨济忠:报表设计器开发 16 4.1.3编辑单元格流程图 选择单元格 设置单元格可编辑 选择数据源 设置单元格属性 开始 结束 图 4-3 新建报表算法流程图 该算法首先要得到当前鼠标的位置,然后转化为表格的行列,最后选择 数据源,并设置单元格属性。 2008 届网络工程专业毕业设计(论文) 17 4.1.4 保存报表流程图 读取Preferences 生成 xml 遍历表格 写入 xml 是否用模板 是 生成相应 CSS 结束 否 开始 图 4-4 保存报表算法流程图 该算法首先从Preferences中读取报表相关信息,生成报表名的xml 文件。然后遍历表格,读取各非空单元格的值及属性,填入写入小xml 文 件中,最后看是否用到模板,如用到,就生成报表名的css 文件。生成 xml 的代码如下所示: 杨济忠:报表设计器开发 18 A1 在 XautReportFile中, “Name ”代表报表的名字,“tempname ”代表 报表用到的模板,“rownum ”代表 WEB 页每页显示的行数,“ownerName ”代 表作者, time 代表发布时间, intro代表是否有说明内容。 而 Columm 代表一个单元格,“DataSource”代表数据源,里面不同的部 分又代表不同的意思: 如前面为“ D : ” ,那代表数据库,中间代表前面建的数据源的名称,最 后代码数据源的列。 如前面是“ I: ”, 那代表常量,后面部分就是常量的值。 、 如前面是“ S:”, 那代表系列号,后面代表系列号的一部分。 如前面是“ F: ” ,那代表的是函数,后面是函数。 “Span”,代表扩展情况。扩展就是其它单元格的值是否依赖这个单元 格的值;“Arrange ”代表是否排序;“Color ”代表是颜色,; “Font”代表 字体。而这个单元格的ID 是 A1。 4.1.5 生成电子表格流程图 2008 届网络工程专业毕业设计(论文) 19 图 4-5 生成电子表格算法流程图 该算法首先从 Preferences 中得到当前报表名,然后读取报表 XML文件, 得到数据源名称。读取数据源XML,遍历得到数据源的各种参数。用这些参 数连接数据库。用 POI创建 EXCEL 文件。把数据库中数据写入EXCEL 文件。 开始 读Preferences 读报表 xml 读数据源xml 连接数据库 创建 xls 文件 数据库写入xls 结束 杨济忠:报表设计器开发 20 4.1.6 发布报表流程图 开始 读Preferences 复制 xml到发布目录 复制到发布目录 已设发布目录? 设置发布目录 有相应 excel文件? 有相应 css文件 有相应 txt文件 复制到发布目录 复制到发布目录 有相应 pdf 文件 复制到发布目录 结束 是 否 否 否 否 否 图 4-6 发布报表算法流程图 该算法首先从Preferences中查看发布目录,如有,就复制报表XML 2008 届网络工程专业毕业设计(论文) 21 到发布目录 , 如没有 , 就设置。然后就开始判断是否有相关文件,如有,就 一同复制,因为不复制,就没有用。 4.1.7 编辑 CSS流程图 开始 读css 模板文件 读Preferences 创建报表 CSS 已有相同文件? 覆盖 写入文件 结束 是 图 4-7 编辑 CSS算法流程图 该算法首先从 CSS模板中读出模板内容,并显示出来,提供用户修改。 修改完成后点确定,从Preferences得当前报表,然后生成报表的CSS文 件,如已有相同的就覆盖。最后把修改后的CSS 写入报表文件。 杨济忠:报表设计器开发 22 4.1.8 生成模板流程图 开始 设置模板名字及说 明 得到当前报表 生成模板 CSS及说 明文件 读取当前报表CSS 写入模板文件 结束 图 4-8 生成模板算法流程图 该算法首先设置要生成模板的模板名及说明。然后生成模板文件,当然 是 CSS类型。如模板说明不为空,也生成文件文件类型的说明书。然后从 Preferences中得到当前报表,由此得到当前报表的CSS文件,最后把这 CSS 文件的内容写入模板文件里。 2008 届网络工程专业毕业设计(论文) 23 4.1.9 配置服务器流程图 开始 读取服务器配置文件 显示当前值 把修改后值写入文件 更新相关视图 结束 图 4-9 配置服务器算法流程图 该算法首先读取服务器配置文件并显示各个参数,这可以修改。点确 定后,就把修改后值写入配置文件,并更新相关视图。 4.2 系统编码实现 4.2.1 系统的主界面实现 本系统采用 Eclipse RCP 技术, 也就是开发可以独立运行的Eclipse的 插件。运用 RCP技术,可以实现与Eclipse一样友好的界面,可以方便地 组装成一个很强大的系统, 因为这是采用插件机制。本系统的主界面如图 4-1 所示: 杨济忠:报表设计器开发 24 图 4-1 报表设计系统主界面图 由图 4-1 可以看到,本系统和Eclipse界面有很大的相似性。本系统 主要用到了包 com.xautreportdesign.win。其中各个类的功能及重要代码 说明如下: Application类:是 RCP程序的入口类, RCP 程序启动后第一个执行就 是它,它负责程序的载入与退出。这个类是建立项目后自动生成的,平常 情况不需要修改。 ApplicationWorkbenchAdvisor类:是配置工作台的类,工作台的初 始化就在这完成。这个类是建立项目后自动生成的,可以修改成自己需要 的。这个类的部分代码如下: ApplicationWorkbenchWindowAdvisor类:用来设置窗口。一个工作台可以有多 个窗口,所以可以多个该类的对象。这个类是建立项目后自动生成的,可以修改成自 己需要的。下面代码说明了窗口大小为(700, 550),有工具栏,窗口标题, 显示状态栏,生成系统托盘等。以下是该类的部分实现代码: 2008 届网络工程专业毕业设计(论文) 25 publicvoid preWindowOpen() /*设置窗口初始化的各种属性*/ IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); configurer.setInitialSize(new Point(700, 550); configurer.setShowCoolBar(true ); configurer.setShowStatusLine(false); configurer.setTitle(“ 报表生成系统“ ); configurer.setShowPerspectiveBar(true ); configurer.setShowStatusLine(true ); final IWorkbenchWindow window = getWindowConfigurer().getWindow(); /*创建系统托盘*/ trayItem = initTrayItem(window); /*如果支持系统托盘,则创建托盘的菜单*/ if ( trayItem != null) createPopupMenu(window); Perspective类: 是透视图类。透视图是各个视图,编辑面组成的一个 专用的程序界面。本类是项目默认生成,当然也可以写自己的视图,只要 实现 IperspectiveFactory接口。下面就是本透视图的布局部分代码,效 果如图 4-1 所示。 publicvoid createInitialLayout (IPageLayout layout) String editorArea = layout.getEditorArea(); layout.setEditorAreaVisible(true ); layout.setFixed(false); / layout.addView(View.ID,IPageLayout.LEFT, 0.25f, editorArea); IFolderLayout left = layout.createFolder(“left“, IPageLayout.LEFT, 0.25f, editorArea); left.addPlaceholder(DatasourceView.ID); left.addPlaceholder(ServerView.ID); layout.getViewLayout(ServerView.ID).setCloseable(false); layout.getViewLayout(ServerView.ID).setMoveable(false); layout.addPlaceholder(editAreaView.ID, IPageLayout.TOP, 0.50f, 杨济忠:报表设计器开发 26 editorArea); layout.addPlaceholder(AttributeView.ID, IPageLayout.BOTTOM, 0.25f, editorArea); layout.getViewLayout(AttributeView.ID).setCloseable(false); layout.getViewLayout(AttributeView.ID).setMoveable(false); ApplicationActionBarAdvisor类:负责创建和配置工作台窗口上主 菜单,工具栏,状态栏等,是报表各种功能模块相关入口。下面的代码是 用来建立系统托盘项。其中newSeparator()是画一条分隔线,在菜单工具 栏中也用到。 publicvoid fillTrayItem(MenuManager trayMenu) trayMenu.add(deployAction); trayMenu.add(new Separator(); trayMenu.add(exampleAction); trayMenu.add(aboutAction); editAreaView类: 是编辑视图类。视图相当于一个小窗口,显示某一 方面的内容 , 可以在一个页面上放置几个视图。视图可通过两种方式创建: 一通过扩展点:修改plugin.xml文件,设置视图扩展点,在最后一 行 的 前 加 入 , 下 面 的 代 码 说 明 了 扩 展 点 是 org.eclipse.ui.views,视图名字是“编辑区”,对应的JAVA 文件是 com.xautreportdesign.win.editAreaView,ID是视图的标识,为 XautReportDesign.EditAreaView。对于其它视图,都可以这样创建: 二通过继承抽象类ViewPart 类,要改写类中 2008 届网络工程专业毕业设计(论文) 27 createPartControl,setFocus方法。 本视图实现部分的代码如下所示: publicvoid createPartControl(Composite parent) createToolbar(); if (!isedit) setPartName( “ 编辑 “ + reportName ); else setPartName( “( 未保存 ) 编辑 “ + reportName ); createTable(parent, colnum , rownum); 上面的代码是实现视图内容,其中最重要的是createTable()方法。这个 方法是在视图中创建类似EXCEL中的表格。下面的代码创建一个表格,并 设置表格的样式 , 部分代码如下: Composite c1 = new Composite(parent, SWT.NONE); c1.setLayout(new FillLayout(); table = new Table(c1, SWT.SINGLE | SWT.HIDE_SELECTION | SWT.FULL_SELECTION); table .setHeaderVisible(true ); table .setLinesVisible(true ); table .setRedraw(true ); 对于表格的列号,下面的代码创建列名从A开始的 20 个列,其中得把 数字转化为字符型 , 其实现代码如下: for ( int i = 0; i New Project , then expand Plug-in Development and double-click Plug-in Projectto bring up the Plug-in Project wizard. On the subsequent pages, enter a Project name such as org.eclipse.ui.tutorials.rcp.part1, indicate you want a Java project, select the version of Eclipse youre targeting (at least 3.1), and enable the option to Create an OSGi bundle manifest. Then click Next . Beginning in Eclipse 3.1 you will get best results by using the OSGi bundle manifest. In contrast to previous versions, this is now the default. In the next page of the Wizard you can change the Plug-in ID and other parameters. Of particular importance is the question, “Would you like to create a rich client application?“. Select Yes. The generated plug-in class is optional but for this example just leave all the other options at their default values. Click Next to continue. If you get a dialog asking if Eclipse can switch to the Plug-in Development Perspective click Remember my decision and select Yes (this is optional). 2008 届网络工程专业毕业设计(论文) 67 Starting with Eclipse 3.1, several templates have been provided to make creating an RCP application a breeze. Well use the simplest one available and see how it works. Make sure the option to Create a plug-in using one of the templates is enabled, then select the Hello RCP template. This is RCPs equivalent of “Hello, world“. Click Finishto accept all the defaults and generate the project (see Figure 1). Eclipse will open the Plug-in Manifest Editor. The Plug-in Manifest editor puts a friendly face on the various configuration files that control your RCP application. Figure 1. The Hello World RCP project was created by a PDE wizard. Taking it for a spin Trying out RCP applications used to be somewhat tedious. You had to create a custom launch configuration, enter the right application 杨济忠:报表设计器开发 68 name, and tweak the plug-ins that were included. Thankfully the PDE keeps track of all this now. All you have to do is click on the Launch an Eclipse Application button in the Plug-in Manifest editors Overview page. You should see a bare-bones Workbench start up (see Figure 2). Figure 2. By using the templates you can be up and running an RCP application in minutes. Making it a product In Eclipse terms a product is everything that goes with your application, including all the other plug-ins it depends on, a command to run the application (called the native launcher), and any branding (icons, etc.) that make your application distinctive. Although as weve just seen you can run a RCP application without defining a product, having one makes it a whole lot easier to run the application outside of Eclipse. This is one of the major innovations that Eclipse 3.1 brought to RCP development. 2008 届网络工程专业毕业设计(论文) 69 Some of the more complicated RCP templates already come with a product defined, but the Hello RCP template does not so well have to make one. In order to create a product, the easiest way is to add a product configuration file to the project. Right click on the plug-in project and select New Product Configuration. Then enter a file name for this new configuration file, such as duct. Leave the other options at their default values. Then click Finish. The Product Configuration editor will open. This editor lets you control exactly what makes up your product including all its plug-ins and branding elements. In the Overview page, select the New. button to create a new product extension. Type in or browse to the defining plug-in (org.eclipse.ui.tutorials.rcp.part1). Enter a Product ID such as product , and for the Product Application select org.eclipse.ui.tutorials.rcp.part1.application. Click Finish to define the product. Back in the Overview page, type in a new Product Name, for example RCP Tutorial 1. In Eclipse 3.1.0 if you c

温馨提示

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

评论

0/150

提交评论