一种WEB报表系统公式的批量解析方法技术方案

技术编号:11057698 阅读:80 留言:0更新日期:2015-02-18 20:46
本发明专利技术公开了一种WEB报表系统公式的批量解析方法,提出将所有在报表中用到的与报表数据无关的系统公式组合在一起批量解析,并将解析结果以对象属性值的形式存储在浏览器端的方法,相比于典型的报表解析与创建过程中遇到一个公式解析一个的方式,有如下优点:1、不管同一个公式在创建报表过程中出现多少次,只需在批量解析过程中解析一次,在后续的报表创建过程中可以反复使用,避免了相同公式多处出现可能导致的重复解析;2、不管报表中用到的系统公式有多少,仅需与服务器交互一次就可解析全部系统公式,节省了公式解析所费时间,加快了报表创建过程。

【技术实现步骤摘要】
一种WEB报表系统公式的批量解析方法
本专利技术涉及计算机软件应用领域,具体的说,本专利技术涉及一种WEB报表系统公式的批量解析方法。
技术介绍
报表是企业应用软件必不可少的部分,为了方便报表的开发,各类报表开发系统中都提供了大量系统公式,系统公式可以分为两大类:与报表数据统计相关的公式及与报表数据统计无关的公式。与报表数据统计相关的公式如SUM,AVG, MAX等,分别用于统计报表中所有数据行中某列数据的总和,平均值及最大值,扩展的数据统计系统公式还包括行分组统计公式及分页统计公式,分别用于对数据行进行分组后再统计及统计每页报表中的数据。与报表数据相关的系统公式需要在创建报表页面时结合报表数据进行计算,通常需要随着报表页面创建的进程逐步进行。与报表数据统计无关的公式通常用于获取用户ID、用户姓名、公司名、当前年份、当前月份、当前日期等信息,这一类信息与当前用户浏览的报表数据没有联系,但需要从服务器获取以保证有效性。WEB报表系统中对这类公式的典型解析方法如下: 在前台(WEB浏览器)搜索报表模板文件,遇到一个需要解析的公式; 发送公式及其参数到服务器; 服务器解析计算公式得到结果并回传给浏览器; 浏览器端获取到公式解析结果并将其应用到报表中。 浏览器端反复执行上述步骤,直到不存在需要解析的公式。 前述在浏览器端逐个解析与报表数据无关的报表公式的方案存在如下缺点: 在报表中应用公式较多的情况下,逐个从报表模板文件中提取公式比较繁琐费时; 将每个报表公式逐个从浏览器提交到服务器解析费时且消耗较多数据流量。 本专利针对的是与报表数据统计无关的公式的批量解析,为简单起见,本专利其余部分提到的系统公式均指与报表数据统计无关的报表系统公式。
技术实现思路
本专利技术目的在于提供一种WEB报表系统公式批量解析的实现方法,一次性解析报表模板文件中的全部与报表数据无关的系统公式及需要后台解析的系统变量,加快了报表创建进程,同时节省了网络数据流量。 本专利技术提供的技术方案是:一种WEB报表系统公式的批量解析方法,包括以下步骤: 步骤I):在报表设计器中创建报表模板文件完成保存及提交报表模板文件时,搜索整个报表模板文件,将其中用到的所有系统公式归集到一起形成系统公式集合,将系统公式集合保存在报表模板文件的一个节点中; 步骤2):部署报表模板文件; 步骤3):用户在浏览器端获取报表模板文件及报表数据; 步骤4):浏览器端获取报表模板文件中用到的系统公式集合; 步骤5):发送系统公式集合至服务器请求解析; 步骤6):服务器接收到需解析的系统公式集合,执行解析; 步骤7):浏览器端接收系统公式的解析结果,并将该解析结果分解为易于使用的数据结构形式; 步骤8):应用系统公式解析结果。 步骤I)中,将其中用到的所有系统公式归集到一起形成系统公式集合的具体步骤包括: A)初始化已使用系统公式集合USet,置为空; B)用正则表达式提取报表模板文件中所有系统公式至集合aSet ; C)对于aSet中的每个公式f,若其属于与报表数据无关的系统公式,则添加f到uSet ; D)将USet中的所有系统公式取出串联成一个字符串,每两个系统公式之间用分号(;)分隔; E)在报表模板文件中创建一个名为Formula的节点,将步骤D)得到的字符串保存到该节点中。 步骤4)中,浏览器端获取报表模板文件中用到的系统公式集合,指浏览器脚本解析报表模板文件时,从步骤I)中所述的报表模板文件中的节点处读取报表模板文件中用到的系统公式集合构成的字符串。 步骤6)中,服务器接收到需解析的系统公式集合并执行解析包括如下主要步骤: a)、初始化系统公式集合S为空,字符串T为空; b)、分解系统公式集合组成的字符串,将分解得到的公式全部添加到S中; c)、对S中的每个公式,调用对应的解析代码求值,将公式及解析的值组成“公式=解析值;”的字符串,追加到字符串T的末尾; d)、返回字符串T至浏览器端。 步骤7)中,浏览器端接收系统公式解析结果,并分解为易于使用的数据结构形式,指建立一个浏览器脚本对象保存所有公式解析结果,其中公式设置为该脚本对象的属性名称,以“脚本对象名[“公式”]=公式解析结果”的形式将公式解析结果设置为该属性的值如 Formula[ “ThisYear O ” ] = 2014,其中 Formula 是脚本对象名,ThisYear O 是公式名,2014是公式解析结果。 步骤8)中,应用系统公式解析结果包括如下步骤: I)、报表解析或创建过程中遇到一个系统公式; II)、以“脚本对象名[“公式”]”的形式取对应公式的解析结果; III)应用公式解析结果到报表中。 本专利技术的有益效果是: 本专利技术提出的将所有在报表中用到的与报表数据无关的系统公式组合在一起批量解析,并将解析结果以对象属性值的形式存储在浏览器端的方法,相比于典型的报表解析与创建过程中遇到一个公式解析一个的方式,有如下优点:1、不管同一个公式在创建报表过程中出现多少次,只需在批量解析过程中解析一次,在后续的报表创建过程中可以反复使用,避免了相同公式多处出现可能导致的重复解析;2、不管报表中用到的系统公式有多少,仅需与服务器交互一次就可解析全部系统公式,节省了公式解析所费时间,加快了报表创建过程。 【附图说明】 当结合附图考虑时,通过参照下面的详细描述,能够更完整更好地理解本专利技术以及容易得知其中许多伴随的优点,但此处所说明的附图用来提供对本专利技术的进一步理解,构成本专利技术的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定,其中: 图1是本专利技术的WEB报表系统公式批量解析的流程框图; 图2是归集报表模板文件中用到的所有系统公式的流程框图; 图3是服务器解析公式集合字符串的流程框图; 图4是应用系统公式解析结果的流程框图。 【具体实施方式】 为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本专利技术作进一步详细的说明。 报表的设计与运行设计到报表设计器、报表服务器与浏览器,本专利技术要实现报表模板文件中的系统公式的批量处理,需要在上面三个部分都进行相关处理。 参考图1,一种WEB报表系统公式的批量解析方法,包括以下步骤: 步骤I):在报表设计器中创建报表模板文件完成保存及提交报表模板文件时,搜索整个报表模板文件,将其中用到的所有系统公式归集到一起形成系统公式集合,将系统公式集合保存在报表模板文件的一个节点中; 归集报表模板文件中用到的所有系统公式,过程见附图2,步骤包括: A)初始化已使用系统公式集合uSet,置为空; B)用正则表达式提取报表模板文件中所有系统公式至集合aSet ; C)对于aSet中的每个公式f,若其属于与报表数据无关的系统公式,则添加f到uSet ; D)将uSet中的所有系统公式取出串联成一个字符串,每两个系统公式之间用分号(;)分隔。 E)在报表模板文件中创建一个名为Formula的节点,将上一步骤得到的字符串保存到该节点中。 步骤2):部署报表模板文件; 步骤3):用户在浏览器端获本文档来自技高网
...

【技术保护点】
一种WEB报表系统公式的批量解析方法,其特征在于,包括以下步骤:步骤1):在报表设计器中创建报表模板文件,保存及提交报表模板文件时,搜索整个报表模板文件,将其中用到的所有系统公式归集到一起形成系统公式集合,将系统公式集合保存在报表模板文件的一个节点中;步骤2):部署报表模板文件;步骤3):用户在浏览器端获取报表模板文件及报表数据;步骤4):浏览器端获取报表模板文件中用到的系统公式集合;步骤5):发送系统公式集合至服务器请求解析;步骤6):服务器接收到需解析的系统公式集合,执行解析;步骤7):浏览器端接收系统公式的解析结果,并将该解析结果分解为易于使用的数据结构形式;步骤8):应用系统公式解析结果。

【技术特征摘要】
1.一种WEB报表系统公式的批量解析方法,其特征在于,包括以下步骤: 步骤I):在报表设计器中创建报表模板文件,保存及提交报表模板文件时,搜索整个报表模板文件,将其中用到的所有系统公式归集到一起形成系统公式集合,将系统公式集合保存在报表模板文件的一个节点中; 步骤2):部署报表模板文件; 步骤3):用户在浏览器端获取报表模板文件及报表数据; 步骤4):浏览器端获取报表模板文件中用到的系统公式集合; 步骤5):发送系统公式集合至服务器请求解析; 步骤6):服务器接收到需解析的系统公式集合,执行解析; 步骤7):浏览器端接收系统公式的解析结果,并将该解析结果分解为易于使用的数据结构形式; 步骤8):应用系统公式解析结果。2.根据权利要求1所述的一种WEB报表系统公式的批量解析方法,其特征在于,步骤I)中,将其中用到的所有系统公式归集到一起形成系统公式集合的具体步骤包括: A)初始化已使用系统公式集合uSet,置为空; B)用正则表达式提取报表模板文件中所有系统公式至集合aSet; C)对于aSet中的每个公式f,若其属于与报表数据无关的系统公式,则添加f到uSet ; D)将uSet中的所有系统公式取出串联成一个字符串,每两个系统公式之间用分号(;)分隔; E)在报表模板文件中创建一个名为Formula的节点,将步骤D)得到的字符串保存到该节点中。3.根据权利要求1所述的一种WE...

【专利技术属性】
技术研发人员:聂作先蒋新华王平阳杨海燕张顺淼
申请(专利权)人:福建工程学院
类型:发明
国别省市:福建;35

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

1