基于规则描述的报表模式自动抽取方法技术

技术编号:6600658 阅读:335 留言:0更新日期:2012-04-11 18:40
本发明专利技术的基于规则描述的报表模式自动抽取方法:在XML基础上定义了规则描述语言,用来对组成报表模板的基本样式进行描述。当用户选择了一个报表模板时,程序通过对报表模板进行扫描和分析,根据预先定义的一组规则,将报表模板划分为一个或多个基本区域块。在XML基础上定义了模式描述语言,模式描述语言用来对报表模板的整体结构进行详细描述。通过对划分后的各基本区域块进行规则的自动解释,用模式描述语言生成对报表模式的描述,达到报表模式自动抽取的目的。实验证明本发明专利技术可以实现报表模式的自动抽取。

【技术实现步骤摘要】

本专利技术是对半结构化的报表模式进行自动抽取的一种方法,主要用于报表的自动生成,特别是涉及到一种。
技术介绍
报表的应用在企业信息化建设中处于非常重要的地位。当前大部分MIS中的报表模块是根据客户需求定制的,与实际系统高度耦合,代码可重用性差,而且前期开发工作量巨大,后期维护艰难,难以适应开发过程的多样性和变化性。随着企业不断地进步与发展, 企业需要管理和使用的报表越来越多,自动生成报表的需求逐渐提上日程。然而解决报表自动生成的技术关键在于对报表这种半结构化数据的模式抽取。近年来,人们在半结构化数据的模式抽取领域己经取得很多研究成果,但是目前的模式抽取解决的问题,仅限于从半结构化数据中得到其内在的数据模型,而对于报表这种半结构化数据来说,不仅需要识别其内在的数据模型,还需要识别出单元格与单元格之间的内在关系。
技术实现思路
本专利技术技术要解决的就是通过自动识别报表单元格与单元格之间的关系,实现对报表模式的自动抽取,专利技术了一种。本专利技术的其技术解决方案如下(1)本专利技术在XML基础上定义了规则描述语言,用来对组成报表模板的基本样式进行描述。在用户选择了一个报表模板时,程序通过对报表模板进行扫描和分析,根据预先定义的一组规则,将报表模板划分为一个或多个基本区域块;(2)在XML基础上定义了模式描述语言,模式描述语言用来对报表模板的整体结构进行详细描述。通过对划分后的各基本区域块进行规则的自动解释,用模式描述语言生成对报表模式的描述,达到报表模式自动抽取的目的。本专利技术所述的标准的报表规则用公式表示为、0 3 P=Ck ,描述的是对于任意的对象0存在对象P满足条件Ck则执行动作Ak ; 其中0属于集合kind;P是一个用逗号连接的表达式,只能从集合{ top, bottom, left, right}取值;top表示相对于某单元格或区域块上面的对象;bottom表示相对于某单元格或区域块下面的对象;left表示相对于某单元格或区域块左边的对象;right表示相对于某单元格或区域块右边的对象;top, bottom, left, right 的类型,艮口 top. kind, bottom, kind, left, kind, right, kind 属于集合kind;Ck是一个条件表达式;Ak是一个用分号连接的赋值表达式。本专利技术的,设计合理,可以实现报表模式的自动抽取。 附图说明图1单标题单值横向填充样式图; 图2单标题单值纵向填充样式图3单标题单值纵向重复样式图; 图4单标题单值横向重复样式图; 图5多标题单值纵向填充样式图; 图6多标题单值横向填充样式图; 图7规则处理流程图; 图8规则匹配过程图; 图9学生信息表。具体实施例方式本专利技术的实现方法具体如下 一、报表的规则描述1.报表的基本样式报表的样式多,变化大,为了增强模式抽取的通用性和可扩展性,在本专利技术中预定义的区域块类型只有cell,即报表的一个单元格(合并后的单元格在报表中只算一个单元格),其它的区域块类型可在规则中再增加。目前,在本专利技术中已经产生的区域块类型 kind= {cell, hfield, vfield, Vertical_vfield,Horizontal—hfield,Horizontal—vfield ,Vertical—hfield, ...... }hfiled表示同一行上的一个区域块(如图1),满足条件左边的单元格不为空,右侧的部分为空,且两个单元格高度相等;vfiled表示同一列上的一个区域块(如图2),满足条件上边的单元格不为空,下边的部分为空,且两个单元格列宽相等;Verticalvfield表示的区域块(如图3),满足条件对象及其下方的对象在同一列,两者宽度相等且类型都为vfield ;Horizontalhfield表示的区域块(如图4)满足条件对象及其右侧的对象在同一行, 两者高度相等且类型都为hfield ;Horizontalvfield表示的区域块(如图5)满足条件对象及其右侧的对象在同一行, 两者高度相等且类型都为vfield ;Verticaljifield表示的区域块(如图6)满足条件对象及其下方的对象在同一列,两者宽度相等且类型都为hfield。2.规则的表示一条标准的报表规则可用公式表示VO 3 F=Ck描述的是对于任意的对象O存在对象P满足条件Ck则执行动作Ak。其中O属于集合kind;P是一个用逗号连接的表达式,只能从集合{ top, bottom, left, right}取值top表示相对于某单元格或区域块上面的对象; bottom表示相对于某单元格或区域块下面的对象; left表示相对于某单元格或区域块左边的对象; right表示相对于某单元格或区域块右边的对象;top, bottom, left, right 的类型,艮口 top. kind, bottom, kind, left, kind, right, kind 属于集合kind。Ck是一个条件表达式;Ak是一个用分号连接的赋值表达式。3.规则描述的格式在本专利技术中,使用xml文件来存放预定义的规则。在xml规则文件中,一个rule节点表示一条规则,属性name记录规则的名称;kindName节点的值表示规则描述的区域块类型;objectName节点的值表示描述的对象名称;preDefines节点的值表示相对于描述的 objectName来说存在的对象;Conditions节点的值是要判断的条件表达式;Actions节点的值描述的当Conditions的值为真时得到的结论。比如以下规则文件中定义的规则rulel,描述的是报表中最简单的块类型 vfield,如图2所示描述的是在同一列上的两个单元格,上面的单元格存放标题项,下面单元格存放对应的数据项。〈rule name^rulel,) <kindName>vfield</kindName> <objectName>ce11〈/objectName〉 〈preDefines>bottom〈/preDefines><conditions>cell. col=bottom. col and cell. width=bottom. width and cell. text〈>〃〃 and bottom· text=〃〃 and bottom· kind=〃cell〃 〈/conditions〉<actions>vfield = cell+bottom; cell, kind = ^ caption ^;bottom. kind=〃data〃;bottom· text=cell. text</actions> </rule>对复杂的区域块进行描述时需要用多条规则配合才能完成。比如在以下的规则描述中,规则rule4是在rulel的基础上进行描述的,即在rule4中用到了 rulel中定义的块类型“vfield”。规则rule4描述的块类型Verticaljf ield,如图3所示,描述的是对象及其下方的对象在同一列;两者宽度相等且类型都为vfield。 〈rule name=〃rule4〃&本文档来自技高网...

【技术保护点】
1.基于规则描述的报表模式自动抽取方法,是通过下列步骤实现的:a、在XML基础上定义了规则描述语言,用来对组成报表模板的基本样式进行描述,在用户选择了一个报表模板时,程序通过对报表模板进行扫描和分析,根据预先定义的一组规则,将报表模板划分为一个或多个基本区域块;b、在XML基础上定义了模式描述语言,模式描述语言用来对报表模板的整体结构进行详细描述,通过对划分后的各基本区域块进行规则的自动解释,用模式描述语言生成对报表模式的描述,达到报表模式自动抽取的目的。

【技术特征摘要】
1.基于规则描述的报表模式自动抽取方法,是通过下列步骤实现的a、在XML基础上定义了规则描述语言,用来对组成报表模板的基本样式进行描述,在用户选择了一个报表模板时,程序通过对报表模板进行扫描和分析,根据预先定义的一组规则,将报表模板划分为一个或多个基本区域块;b、在XML基础上定义了模式描述语言,模式描述语言用来对报表模板的整体结构进行详细描述,通过对划分后的各基本区域块进行规则的自动解释,用模式描述语言生成对报表模式的描述,达到报表模式自动抽取的目的。2.如权利要求1所述的基于规则描述的报表模式自动抽取方法,其特征在于所述的规则用公式表示为V03 ACk ,描述的是对于任意的对...

【专利技术属性】
技术研发人员:文必龙时贵英王志宝邵庆周红波
申请(专利权)人:东北石油大学
类型:发明
国别省市:23

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1