基于GEF框架的报表设计引擎设计与实现
- 格式:pdf
- 大小:539.76 KB
- 文档页数:4
基于组件技术的报表应用框架的设计与实现一、绪论报表应用是一种非常重要的互联网应用,它的发展与企业的数字化转型有着密切的关系。
随着信息技术的不断发展,企业的业务流程也在日益复杂,需要以报表的形式展示数据和信息,从而更好地支持企业的决策和管理。
基于组件技术的报表应用框架是报表应用的一种新的开发方式,它将报表和应用组件进行集成,使开发人员能够快速、高效地开发出符合企业需求的报表应用。
二、基于组件技术的报表应用框架1、什么是基于组件技术的报表应用框架基于组件技术的报表应用框架是一种新的报表应用开发方式,它将报表应用中的所有组件进行集成,使得开发人员能够快速、高效地开发出符合企业需求的报表应用。
2、报表应用框架的核心组件基于组件技术的报表应用框架一般由如下组件构成:(1)数据管理组件:该组件用于负责报表应用中的数据源管理,包括从外部数据库获取数据,并将数据存储到本地缓存中。
(2)报表设计组件:该组件负责报表的设计工作,包括报表样式的设计、数据视图的设计、图表的设计等。
(3)报表展示组件:该组件负责报表的展示工作,可以将报表展示在Web端或者APP端,以满足不同的需求。
(4)数据分析组件:该组件用于支持报表应用中的数据分析功能,支持分析师从多个角度对报表数据进行分析,从而帮助企业更好地进行决策和管理。
三、报表应用框架的设计与实现1、报表应用框架的设计报表应用框架的设计首先要明确目标,即报表应用的用户群体和具体的应用场景,以及用户的需求。
在此基础上,可以进行报表应用框架的框架搭建,总体上可以分为三个层次:数据层、应用层和界面层。
数据层:数据层的设计主要是为了满足报表应用的数据需求,可以采用外部数据源或者本地缓存数据,也可以结合两种方式来满足不同的应用场景。
应用层:应用层的设计主要是为了实现报表应用的核心功能,可以分为数据管理组件、报表设计组件、报表展示组件和数据分析组件,以满足用户的不同需求。
界面层:界面层的设计主要是为了满足报表应用的用户界面需求,可以根据用户不同的使用习惯,设计出简洁、易懂的界面,以提供良好的用户体验。
可视化报表架构设计-概述说明以及解释1.引言1.1 概述概述部分介绍了可视化报表架构设计文章的主题和内容框架。
下面是对概述部分的内容编写:概述可视化报表架构设计是一项重要的任务,它在现代数据分析和决策支持系统中起着至关重要的作用。
随着技术的不断发展和数据量的不断增长,如何有效地展现和传达大量数据变得愈发关键。
可视化报表架构设计致力于将复杂的数据转化为容易理解和分析的图形化表示形式,使用户能够快速准确地获取所需信息。
本文将深入探讨可视化报表架构设计的关键要点和原则,旨在帮助读者在设计和实施可视化报表时做出明智的决策。
文章将从可视化报表的定义和作用开始讨论,接着介绍可视化报表设计的基本原则,以及展望未来可视化报表架构的发展趋势。
通过本文的阅读,读者将能够了解什么是可视化报表以及它们在数据分析和决策支持系统中的重要性。
同时,读者还将学习到如何根据设计原则和最佳实践来构建一个高效可靠的可视化报表架构,以满足用户的需求和挑战。
在接下来的章节中,我们将逐步深入讨论可视化报表架构设计的相关内容。
首先,我们将详细介绍可视化报表的定义和作用,帮助读者明确认识可视化报表的本质和目的。
接着,我们将探讨可视化报表设计的基本原则,包括数据可视化的准则和最佳实践,以及如何提高用户体验和数据传达效果。
最后,我们将总结可视化报表架构设计的关键要点,提炼出设计中需要特别注意的事项。
同时,我们还将展望未来可视化报表架构的发展趋势,探讨新兴技术对可视化报表设计的影响和挑战。
在整个文章中,我们将以实例和案例分析的方式帮助读者更好地理解和应用可视化报表架构设计的方法和技巧。
相信通过本文的阅读,读者将能够深入了解可视化报表架构设计的重要性,并能够在实践中运用所学知识来设计出高效可靠的可视化报表系统。
接下来,我们将从可视化报表的定义和作用开始,为读者详细介绍可视化报表以及它们在数据分析和决策支持系统中的重要性。
文章结构部分的内容如下:1.2 文章结构本文分为以下几个部分来讨论可视化报表架构设计。
Birt 使用说明合适版本:2.1.3目录一、前言 1二、相关软件 11.1、BIRT 21.2、EMF和GEF 3三、Birt的安装和配置 3四、使用说明 54.1、创建项目 54.2、创建第一个报表 74.2.1、创建一个空白报表 74.2.2、设置数据集参数 94.2.3、设计报表 144.3、报表中的参数 264.3.1、静态标量参数 274.3.2、动态标量参数 294.3.3、动态组合参数 31五、应用系统的结合 31六、BIRT的学习资料和缺点 456.1、学习资料 456.2、缺点 45一、前言公司的一个Java语言的B/S架构项目中需要实现大量的文字报表和图像报表的功能,以前使用CSS、JS和JfreeChart等技术,只能实现简单的报表,很难达到现在需求,于是我研究了几个开源免费的报表工具,通过网上的评价,发现了Birt有以下几点优点:1、开发方便,Birt是Eclipse的一个插件可以很好的集成在Eclipse中,图形编辑框架下可以在几分钟之内做出一个报表。
2、可以很方便地在一个报表中混合展现概要数据和详细数据。
3、操作界面友好大方。
4、提供了强大灵活的样式定义,对于熟悉CSS的设计人员来说,应该可以设计出相当出色的报表样式。
5、集成在Eclipse中,不用再开启别报表开发工具窗口,对于习惯于Eclipse开发的程序员来说这点非常重要。
6、Birt的本地化做的很好,安装以后操作界面就是中文的(这点我在使用过程中没有充分体现,我使用了Birt的中文语言包)。
7、开源的报表产品,有源代码,可以进行深层的定制开发。
8、生成的报表完全是XML格式,扩展性好。
9、容易和应用系统结合。
10、最重要一点是开源免费的(我穷啊)。
根据这几个优点,我决定研究Birt,通过几天查找资料和自己的摸索,心中总算有些小的体会。
由于习惯与Eclipse3.2版本,所以我使用了2.1.3版本的Birt,现在最新版本已经是2.3以上版本了,就是这个原因网上很多资料都不是很适合这个版本,所以我走了很多弯路,希望看到此文档的人能比我少走弯路,这也是我写这个文档的原因之一。
基于GeoServer的旅游信息系统设计与实现张德健;林巧莺【摘要】基于GeoServer设计并实现了泉州市旅游信息系统,该系统包括代理服务器、地图服务器、旅游信息服务器和数据库服务器等4个主体部分和3个外接接口,可实现系统平台的基本管理功能和电子地图的相关功能,实现Internet的旅游信息发布、浏览、查询等功能,为旅游者和旅游规划人员提供及时有效准确的旅游信息服务.【期刊名称】《三明学院学报》【年(卷),期】2015(032)006【总页数】5页(P60-64)【关键词】GeoServer;系统架构;旅游信息发布【作者】张德健;林巧莺【作者单位】福建师范大学地理科学学院,福建福州350007;泉州师范学院资源与环境科学学院,福建泉州362000【正文语种】中文【中图分类】TP311.52随着社会经济的发展和人们生活水平的提高,旅游业已经成为社会经济发展中一个新的经济增长点。
旅游业是一个信息密集型和信息敏感型的行业,及时有效的信息引导成为联接旅游市场主体和客体的关键环节,快速有效的旅游信息传播和流通是沟通旅游者、旅游供给商和旅游代理商的重要方式[1-2]。
旅游信息涉及到大量空间数据和属性数据,如何生动、形象、直观地展现各旅游景点的位置及其相关的资源信息,并对这些信息进行有效的分析和管理,使旅游者、旅游供给商和旅游代理商都能够方便快速地获取、查询和分析旅游信息,已成为各旅游管理部门和旅游企业在旅游信息化建设中迫切要解决的问题[3]。
地理信息系统(GIS)是在计算机软、硬件支持下,对地理空间相关数据进行采集、输入、管理、编辑、查询、分析、模拟和显示,并提供多种空间和动态信息,为信息组织研究和决策服务而建立起来的计算机技术系统[4-7]。
WebGIS是Internet与地理信息系统(GIS)相结合的产物[8-10],不仅具有传统GIS软件的大部分功能,还可以通过互联网提供交互式的地图和数据以及交互式的数据查询分析[11]。
基于GEF和EMF的JavaEE+大数据快速开发工具设计作为Java语言的缔造者,Sun公司在1999年底发布了企业级Java平台J2EE——Java 2 Enterise Edition。
随着J2EE 1.5标准的发布,Sun将J2EE正式更名为JavaEE。
JavaEE并非是一个产品,而是一系列技术和标准的集合。
具体JavaEE+大数据平台下的产品由各厂商实现,并遵循同一个标准。
本文描述了一款基于GEF和EMF技术的JavaEE应用快速开发工具——jStudio,它可以快速、高效地自动生成基于Struts+Spring+Hibernate的JavaEE应用。
该工具可以大幅度减少程序开发人员编写重复性代码的工作量,同时可提高代码的质量,进而可缩短开发周期和降低开发成本。
1 GEF和EMF技术概述GEF(graphical editing framework)和EMF(eclipse modeling framework)分别是Eclipse下的2个子项目,主要用于对桌面程序的开发。
GEF是Eclipse提供的图形编辑框架,GEF可以为用户提供图形化编辑模型,提升用户体验。
EMF是Eclipse提供的模型驱动应用程序开发框架,可以产生代码的框架。
EMF可以基于XML Schema,UML或经过注释的Java中指定的模型,创建Java代码,实现图形化的数据编辑、操纵、读取和序列化。
用来描述EMF模型的模型叫作Ecore,本质上是UML类图的子集,它是关于应用的类和数据的简单模型。
当建立Ecore后,EMF采用实现与接口相分离的设计,将Ecore中的每个类(Eclass)自动生成1个接口和1个实现类。
其中的接口都会继承EObject这些EMF中的集接口,如同ng.Object在Java中的地位。
EMF还为每个模型分别生成一个对应factory和package的接口和实现类。
其中,**Factory继承于EFactory,为模型中每个类的创建提供create***方法。
基于GEF的MiniGUI可视化开发工具设计
李佳丽;尚立宏
【期刊名称】《单片机与嵌入式系统应用》
【年(卷),期】2009(000)012
【摘要】针对目前MiniGUI没有可视化的用户界面问题,设计了一个MiniGUI可视化开发工具,使用Eclipse GEF实现,采用XML格式保存界面布局,能够生成RTEMS下可运行的MiniGUI代码.实际应用表明,本工具界面友好、操作简单,能够有效提高MiniGUI用户界面的开发效率.
【总页数】4页(P23-26)
【作者】李佳丽;尚立宏
【作者单位】北京航空航天大学;北京航空航天大学
【正文语种】中文
【相关文献】
1.基于GEF和EMF的JavaEE快速开发工具设计 [J], 万东
2.基于Eclipse的信号处理软件架构可视化建模工具设计 [J], 姚鹏飞
3.基于MVVM模式的嵌入式系统通用数据可视化工具设计与实现 [J], 欧阳李青; 张之江
4.大数据可视化工具设计及应用
——基于电商行业 [J], 晋浩达;王威;王翔;王仁亮;鲍震;李倩
5.基于GEF的可视化编辑器开发 [J], 刘佳
因版权原因,仅展示原文概要,查看原文内容请购买。
0引言报表是一种经过归纳、整理和统计的信息汇总,一直都是企事业单位财务、人力资源管理以及内部控制的重要手段。
报表的重要性越来越得到了企业决策者的认肯,各大公司也投入了大量资金进行报表设计工具的开发[1]。
报表工具能否满足复杂多变的用户需求已经成为衡量其功能灵活性的一项重要内容。
常见的报表工具存在以下缺陷:(1)重构性差。
报表格式不灵活,更改报表格式时,须改写应用系统代码。
(2)开放性差。
由特定工具软件生成的报表,其文档格式具有不规范性。
(3)跨平台性差。
设计和部署报表只能在同一种系统平台。
(4)样式单一。
传统报表可视性差,编辑困难造成样式固定。
为了克服现有报表设计引擎的上述缺陷,提供一个灵活地、高效的报表设计引擎。
作者提出了基于GEF 框架的报表设计引擎模型和RDXL 语言,并在Eclipse 环境下实现了报表设计引擎。
该引擎不仅解决了设计中国式报表的“斜线”和多层表头等困难问题,而且实现了可视化的报表设计。
引擎根据RDXL 语言生成的XML [2-4]文档不受平台的限制,重构和跨平台性得到了增强。
1报表设计模型框架1.1GEF 图形编辑框架简介GEF[5-6](graphical editing framework ,图形编辑框架)是Eclipse 平台下的图形编辑插件,是一种基于MDA 的工具。
GEF 建立在MVC [7]体系结构基础之上,其模型和视图之间的依赖关系比较弱,并具有良好的互操作性和可重用性。
它运用基于SWT 绘图插件Draw2d 在Eclipse 中创建图形环境,可为已有的应用创建一个图形编辑器界面。
利用GEF 提供的公共方法或者在特殊的领域下可以扩展它们。
收稿日期:2008-10-26;修订日期:2008-12-10。
开发与应用1.2报表设计模型框架本文提出的基于GEF 框架的报表设计模型框架如图1所示。
整个框架主要由报表设计元素,报表控制器、报表视图、样式设计器和XML 生成器5个模块组成。
报表设计元素、报表视图和XML 生成器之间没有直接联系,而是通过控制器间接进行通信。
为了减轻控制器的负担,采用请求和编辑策略及命令模式,使每个部分保持最小的依赖关系,从而可以达到松耦合的目的。
报表设计元素:构成了报表模型,表示应用程序的状态,负责业务逻辑的封装,以及与底层数据库或文件系统进行交互,维护应用程序的数据。
模型只与控制器进行通信。
报表视图:是应用程序与用户的接口,主要负责表现以及与用户的交互。
它可通过控制器访问模型中的数据,然后发送给客户端,并负责数据以何种方式显示给用户。
它可以是表格,图片或标签等简单的图形,也可以是彼此嵌套的复杂报表。
报表控制器:负责对用户的输入做出响应,并调用创建相应的报表模型来完成业务,然后把结果返回报表视图,由报表视图负责显示给用户。
报表控制行使了协调者的角色,从而对整个应用程序的流程进行控制。
样式设计器:通过样式设计改变报表的属性。
用户设计样式时,以PropertyChangeEvent 通知控制器,控制器再更新视图和XML 文档。
XML 生成器:根据RDXL 和用户设计生成相应的XML 文档。
它只与控制器进行通信。
2系统设计与实现2.1RDXL 概述为了增强报表的重构性和解决部署困难的问题,本文提出了RDXL 。
RDXL (report design XML language ,基于XML 的报表设计语言)是通过XML Schema [8]描述报表设计的基本元素和其它模型层的信息,包含视觉和非视觉两部分元素。
视觉元素呈现一个报表,它包含table ,image 、chart 和label 等元素;非视觉包含一些数据元素,如数据源,数据集等。
RDXL 定义了元素和它们的属性及它们之间的关系。
RDXL 的内容包含:①报表页面布局;②报表项目的位置,大小,风格,布局和结构;③用来填充报表的数据源和数据集。
RDXL 的文档结构如图2所示。
RDXL 文档描述了各个元素间的相互依赖、从属关系。
report 为根元素,它由property 、body 、styles 和data-con 这4个子元素构成:(1)property 是报表的属性信息包括id 、author 和version 。
(2)body 是报表设计的主要元素,它包含table 、label 、data 、grid 和chart 等设计元素,是报表的呈现。
其中table 定义了的报头、表体、脚注和列数,表体是报表设计的关键。
表体包含了行数,每行规定了单元格的内容——数据项;data 定义了从数据库中查询的列名,即数据项。
other 中包含的其它的设计元素,用户可以根据自己的需要添加不同的设计的元素。
(3)styles 是报表设计的样式,它包含内部样式和外部样式。
内部样式包含attributes 、选择器名和样式;外部样式包含attributes 和CSS 文件的地址。
(4)data-con 是非视觉元素,它包含data-source 和data-set 。
data-source 规定了SQL Server 、Oracle 和XML 等数据库连接格式,如数据库名、用户名和密码等信息。
data-set 是用户根据报表设计所需要的设计数据列名。
经过RDXL 规范的XML 不仅可以让系统重构报表设计视图,而且可以部署在不同的操作平台下。
2.2报表设计模型的实现在报表设计引擎中,控制器是整个系统的核心。
系统实现部分类图及其关系如图3所示。
步骤1视图编辑器接受用户对报表格式、样式、页眉页脚和数据等操作,并把操作转化成相应的请求。
步骤2控制器接受请求并把请求交由相应的编辑策略管理器处理。
步骤3编辑策略管理器根据请求的类型新建相应的添加、删除、更改等命令处理请求。
步骤4模型执行命令,并进行相应的修改后触发事件。
步骤5监听器监听到事件后处理相应的操作,并且通知视图和XML 文档进行修改。
每个设计元素的编辑请求都要经过上述步骤,包括样式和页眉页脚。
下面介绍各部分的详细功能:报表控制器是报表设计引擎的最复杂的一部分,它是模型、视图和XML 文档之间的桥梁,也是报表设计引擎的核心。
它不仅要监听模型的变化,当用户编辑视图时,还要把编辑的结果反映到模型上。
控制器由一组EditPart 对象共同组成,每图1报表设计模型框架更新导入ReportDesign Element Style editorRDXLXML SchemaXML 有效性验证XML DocumentXMLrefreshViewReport ViewReport Control命令完成Sql Server OracleXMLOther个模型对象都对应一个EditPart 对象。
EditPart 包含注册模型监听器、删除模型监听器、创建模型对应视图、设置编辑策略、监听属性改变和更新视图等方法。
用户在创建模型的同时创建相应的监听器和模型视图。
请求编辑策略是为了减轻控制器负担、减小代码耦合度而实现的一种解决方案。
模型属性改变时,控制器中通过createEditPolicies 方法添加编辑策略,每种编辑策略复测处理相应的请求。
在不同的编辑策略(Edit-Policies )创建执行、撤销和重做命令。
模型改变完成后通知更新视图和XML 文档。
删除模型是同时删除监听事件。
模型对象包含PropertyChangeSupport 类型的成员变量,用来触发事件,通知监听器即控制器。
模型包含、添加属性改变的监听器、删除属性改变的监听器、通知属性改变等方法。
模型创建时创建属性监听器,但接受到控制器发送的更改属性命令时,通知属性更改。
视图是通过eclipse 的图形Draw2d (Ifigure )作为变现方式,实现图形显示、布局及图形编辑。
XML 文档编辑是通过DOM 进行解析、插入、删除元素的。
XML 文档是符合RDXL 规范的,是报表设计模型最终生成的文件,是报表设计的最终产品。
2.3功能实现典型算法算法1:斜线算法实现原理如下:为了解决中国式报表中特有的斜线问题,首先对于即将要画斜线的表格框进行坐标定位,分别以斜线的两个端点为起点和终点,再对两点之间(包括两个端点)线段上的所有点进行着色,这样即画出表格中的斜线了。
输入:用户编辑视图输出:画出单元格斜线Begin第一步:初始化Table ,获取单元格ID 第二步:调用getColor 类,选择斜线的颜色第三步:用户选择连线输入输出的单元格ID ,getPosition (确定单元格两端的位置)计算出连线的起点终点第四步:定义连线模型Relationship 、连线的输入primary-Tablecell 和连线的输出foreignTablecell第五步:if (输入ID=输出ID ){不允许框架执行命令}else if (存在连线模型){不允许框架执行命令}else {执行Relationship (foreignTablecell,primaryTab-lecell )修改模型第六步:控制器调用Connection (source,target,color )方法和和UpdataXML (sourceID,targetID,color )方法更新视图和XML 文档End该算法在TablePart 添加TableCellNodeEditPolicy 编辑策略,TableCellNodeEditPolicy 主要负责表格的画斜线算法。
模型的连线分为创建单元格和单元格之间连线的命令,重定位输出连线的命令和重定位输出连线的命令。
算法2:XML 文件生成算法实现原理:生成XML 文档可以分为以下几步:创建XML 文档;接受XML 更新请求;解析XML 文档;修改对应元素的属性;通过XML Schema 检查XML 文档的规范性。
输入:控制器触发XML 更新事件输出:XML 文件第一步:初始化XML 文档第二步:if (XML 文档为NULL ){创建document 节点对象,设置XML 文件版本等其它属性信息;}else {调用getParsedocument 函数解析XML 文档,创建document 节点,生成对应模型还原模板,生成报表视图(Report View )}第三步:设计报表格式,根据对应的设计格式XML 元素添加到document 节点对象中第四步:设计完成后,将document 节点树转化为XML 文件第五步:XML 格式检查工具检查XML 是否符合XML Schema 规范第六步:XML 更新完成,通知报表控制器报表设计引擎可以解析XML 文档,还原报表,复制报表,从而达到高复用的效果。
3应用实例报表设计引擎不仅支持对线性报表的设计,而且支持中国式复杂报表的设计。