一种基于xml的语义层报表模型的方法

文档序号:6489988阅读:401来源:国知局
一种基于xml的语义层报表模型的方法
【专利摘要】一种基于XML的语义层报表模型的方法。报表设计器和企业数据源之间建立语义层,在语义层中定义数据模型,该模型封装了数据源的技术细节,用户基于语义层设计报表,只需简单地拖拽语义层元素即可,不需要编写复杂表达式和复杂SQL.语义层的加入不仅给用户的操作带来了极大的方便,而且增强了企业数据的安全性.在模型中字段上建立视图间的关联关系,关系自动作用在报表上,不需要进行视图间连接就可以设计出多源报表,极大地提高了复杂报表的计算效率。
【专利说明】—种基于XML的语义层报表模型的方法
【技术领域】
[0001]一种基于XML的语义层报表模型的方法主要是用于计算程序领域。
【背景技术】
[0002]报表作为一种信息组织和分析的有利手段,是企业信息系统的重要组成部分之一.据不完全统计,系统实际应用的6o%以上与报表有关[I].但是一般的软件开发语言都不带报表制作工具,要开发报表模块需要程序员编写大量的代码,这些代码可重用性差、后期维护复杂.所以,企业一般都借助于第三方的专业报表工具来制作报表.但是,目前的报表工具存在专业性不强3、安全性不高、用户操作复杂和设计复杂报表时效率低下等问题.针对目前专业报表工具中存在的问题,我们介绍了一种语义层报表模型,在报表设计器和企业数据源之间建立语义层,来解决这些问题。
[0003]利用传统的报表工具设计报表时,用户直接操作数据源,一方面用户需要学习数据源的专业知识,编写复杂的表达式,书写复杂的SQL语句;另一方面直接操作企业数据,给企业的数据信息带来了安全隐患.本文介绍了一种语义层报表模型,在报表设计器和企业数据源之间建立语义层,在语义层中定义数据模型,用户在报表设计器中基于语义层设计报表,直接拖拽语义层元素即可,极大的减少了用户制作报表时的工作量;虽然增加了语义层,但并没有降低整个报表模型的计算效率,因为用户在拖拽语义层元素设计报表时,系统自动的把语义元素解析成报表引擎可以识别的标签,所以报表计算时不需要访问语义层数据模型XML文件;通过在数据模型上定义过滤条件,对企业数据进行权限控制,增强了企业信息的安全性;语义层数据模型可以在视图上定义视图间的关联关系,也可以在视图字段上定义视图间的关联关系,后者在计算报表时,一个单元格上绑定多个指针,指向关联视图,不需要视图间的连接,不需要多次重复检索关联视图就可以设计出多源报表,极大的提高了复杂报表的计算速度。

【发明内容】

[0004]我们通过国家专利检索没有发现关于此系统方面的资料。一种基于XML的语义层报表模型的方法主要是通过语义层报表模型的结构的来实现。
[0005]语义层报表模型整体结构语义层报表模型由数据源、语义层和报表设计器三部分组成。数据源为语义层建立的数据模型提供数据来源;在语义层中建立数据模型,模型中包含视图的定义、编辑风格的定义、变量的定义;在报表设计器中基于语义层数据模型定义报表模板,对报表模板进行计算,按照要求的格式输出报表的计算结果。
[0006]语义层报表模型的实现主要是采用Java和XML技术实现.Java是由sun公司开发的一种跨平台、面向对象的程序设计语言.XML(eXtensibIeMarkup Language)可扩展标记语言,是W3C (World Wide Web Consonjum)组织制定的一种通用语言规范。XML提供了描述不同类型数据的标准格式,可表示任何类型的结构化或半结构化的信息。
[0007]语义层报表模型的数据源的连接,报表中的数据来源复杂,可能来自于数据库,也可能来自于数据文件(Text文件、XML文件等).目前大多数的报表数据来自于数据库,数据库种类繁多,有Oracle、SQL Server、Access和DB2等.对于数据文件作为数据源的情况我们采用文件流的形式来处理.对于数据库作为报表数据源的情况,我们采用了数据库连接池技术来管理数据库的连接。
[0008]语义层数据模型的设计:
语义层数据模型对底层数据源进行封装,屏蔽数据源的技术细节,以通俗易用的方式向报表设计器提供数据信息.语义层数据模型(Semantics Data Model)由三部分组成,可以形象化的表示成三元组:
SDM ===(Semantics ViewList:
Semantics EditStyleList ;
Semantics VariableList ;)
其中,Semantics ViewList表不语义层视图集合;Semantics EditStyleList表不语义层编辑风格集合;Semantics VariableList表示语义层变量集合。
[0009]语义层数据模型用XML表示如下:
<Sem antic〉
<ViewList> < ! 一视图列表一 >
〈View〉〈! 一视图定义一 >
<! 一视图字段列表一 >
<ColumnList> < / ColLlmrlList>
<! 一视图过滤条件列表一 >
<WhereList> < / WhereList>
<!一定义在视图上的关联关系列表一〉
<Associations〉 < / Associations〉
</ VJew>
</ ViewList>
<! 一编辑风格定义列表一 >
<EditStyleList>......< / EditStyleList>
〈! 一参数定义列表一〉
<VariableList>< / VariableList>
</ Semantic〉
视图是一张二维表,在语义层中凡是要将数据源中的数据带人报表进行展现的,都要将它做成一个视图.视图可以直接在数据源中的数据表上定义;可以通过SQL语句执行的查询结果构成一个SQL查询视图;也可以由存储过程返回的结果构成一个存储过程视图.不论哪种类型的视图,用户在基于语义层设计报表时使用方式都是一样的,语义层屏蔽了不同视图之间的差异。
[0010]视图
(Semantics View)由四部分组成,可以形象化的表示成四元组:
SV 一 (View ColumnList ;
View Foreign Colum nList:View W hereList ;
View Associations ;)
其中,View ColumnList表不视图字段集合;View Foreign ColumnList表不伪字段集合;View WhereList表示过滤条件集合;View Associations表示视图关联关系集合。
[0011](1)视图字段.视图字段对应数据源中数据表字段,视图字段包含数据表字段具有的所有属性,此外还包含标题属性(可以为英文字段名定义中文标题)、编辑风格属性、显示值属性(为编码字段设置其显示值)。
[0012](2)伪字段.所谓伪字段是指由视图中的数据经过一些函数运算而得到的结果.比如定义金额伪字段,其表达式为:金额一单价*数量.用户设计报表时不用区分是伪字段还是普通字段,它们的使用方法是一样的,在计算报表时,系统会自动计算伪字段的表达式。
[0013](3)过滤条件.定义视图按一定的条件从数据源中过滤数据,比如为订单视图定义货主名称不为空的过滤条件.一般的过滤条件并不强加在视图上,而是由用户在设计报表时自由的选择是否使用这些过滤条件,避免了用户自己在SQL中书写where条件.还有一类必选的用于权限控制的过滤条件,它是强加在视图上的,用户设计报表时必须使用此过滤条件.在XML中用过滤条件类型属性来表示是一般的过滤条件,还是特殊的过滤条件。
[0014](4)关联关系.关联关系的定义是语义层数据模型中非常重要的一部分,它直接影响到复杂报表的运算效率。
[0015]最后是报表设计,其主要由报表定义,报表的定义过程实际是语义层数据模型的实例化过程.本模型中给用户提供了类似于Excel的可视化报表设计器.在报表设计器中利用JDOM技术解析语义层数据模型XML文件,形成语义树.设计器中提供了列表、分组、取值、求平均、计数、求最大值、求最小值、求和等常用的操作供用户选择。
[0016]其实现方法为:
用户基于语义层定义报表,首先在语义树中勾选作用在视图上的过滤条件;然后选择要进行的操作,最后利用鼠标拖拽语义树上的元素到单元格中即可.在拖拽语义树上的元素时会触发一个鼠标事件,该事件把选择的操作和鼠标选取的语义元素解析成报表计算引擎可以识别的标签;把语义元素属性(例如编辑风格、显示名称等)赋给单元格的对应属性;结合用户选择的过滤条件,形成可以直接在数据库中运行的sql。
[0017]通常报表是分区的,一个完整的报表包括表头区、表尾区、标题区、数据区、页眉页脚区等等.用户可以自由的定义报表的区域和报表的格式.报表定义完成后保存为报表定义模板.xml文件。
[0018]报表计算报表计算是报表引擎对报表定义模板进行解析、计算的过程.报表引擎读取报表定义模板文件、系统标签库文件、从连接池中获取数据源的连接,按照从上到下、从左到右的顺序对
报表定义模板进行解析、计算。
【权利要求】
1.一种基于XML的语义层报表模型的方法其特征是在报表设计器和企业数据源之间建立语义层,在语义层中定义数据模型,此模型封装了数据源中的技术细节。
2.根据权限要求I的数据模型其包括为语义层报表模型整体结构;数据源为语义层建立的数据模型提供数据来源;在语义层中建立数据模型,模型中包含视图的定义、编辑风格的定义、变量的定义;在报表设计器中基于语义层数据模型定义报表模板,对报表模板进行计算,按照要求的格式输出报表的计算结果。
3.根据权限要求2的数据模型的要求其采用Java和XML技术实现;主要是分为数据源的连接,语义层数据模型的设计。
4.根据权限要求3的数据模型的要求进行数据报表的的设计,报表设计主要是通过报表的定义及报表的报表计算。
5.根据权限要求4的数据模型中的报表定义是报表的定义过程实际是语义层数据模型的实例化过程.本模型中给用户提供了类似于Excel的可视化报表设计器.在报表设计器中利用JDOM技术解析语义层数据模型XML文件,形成语义树;设计器中提供了列表、分组、取值、求平均、计数、求最大值、求最小值、求和等常用的操作供用户选择。
6.根据权限要求4的数据模型中的报表计算是报表引擎对报表定义模板进行解析、计算的过程.报表引擎读取报表定义模板文件、系统标签库文件、从连接池中获取数据源的连接,按照从上到下、从左到右的顺序对报表定义模板进行解析、计算。
【文档编号】G06Q10/10GK103778524SQ201210400138
【公开日】2014年5月7日 申请日期:2012年10月20日 优先权日:2012年10月20日
【发明者】杨际荣 申请人:镇江华扬信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1