CN104361121A - 一种web报表系统公式的批量解析方法 - Google Patents

一种web报表系统公式的批量解析方法 Download PDF

Info

Publication number
CN104361121A
CN104361121A CN201410723030.5A CN201410723030A CN104361121A CN 104361121 A CN104361121 A CN 104361121A CN 201410723030 A CN201410723030 A CN 201410723030A CN 104361121 A CN104361121 A CN 104361121A
Authority
CN
China
Prior art keywords
formula
report
template file
system equations
form template
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410723030.5A
Other languages
English (en)
Other versions
CN104361121B (zh
Inventor
聂作先
蒋新华
王平阳
杨海燕
张顺淼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian University of Technology
Original Assignee
Fujian University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujian University of Technology filed Critical Fujian University of Technology
Priority to CN201410723030.5A priority Critical patent/CN104361121B/zh
Publication of CN104361121A publication Critical patent/CN104361121A/zh
Application granted granted Critical
Publication of CN104361121B publication Critical patent/CN104361121B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

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

Description

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

Claims (6)

1.一种WEB报表系统公式的批量解析方法,其特征在于,包括以下步骤:
步骤1):在报表设计器中创建报表模板文件,保存及提交报表模板文件时,搜索整个报表模板文件,将其中用到的所有系统公式归集到一起形成系统公式集合,将系统公式集合保存在报表模板文件的一个节点中;
步骤2):部署报表模板文件;
步骤3):用户在浏览器端获取报表模板文件及报表数据;
步骤4):浏览器端获取报表模板文件中用到的系统公式集合;
步骤5):发送系统公式集合至服务器请求解析;
步骤6):服务器接收到需解析的系统公式集合,执行解析;
步骤7):浏览器端接收系统公式的解析结果,并将该解析结果分解为易于使用的数据结构形式;
步骤8):应用系统公式解析结果。
2.根据权利要求1所述的一种WEB报表系统公式的批量解析方法,其特征在于,步骤1)中,将其中用到的所有系统公式归集到一起形成系统公式集合的具体步骤包括:
A)初始化已使用系统公式集合uSet,置为空;
B)用正则表达式提取报表模板文件中所有系统公式至集合aSet;
C)对于aSet中的每个公式f,若其属于与报表数据无关的系统公式,则添加f到uSet;
D)将uSet中的所有系统公式取出串联成一个字符串,每两个系统公式之间用分号(;)分隔;
E)在报表模板文件中创建一个名为Formula的节点,将步骤D)得到的字符串保存到该节点中。
3.根据权利要求1所述的一种WEB报表系统公式的批量解析方法,其特征在于,步骤4)中,浏览器端获取报表模板文件中用到的系统公式集合,指浏览器脚本解析报表模板文件时,从步骤1)中所述的报表模板文件中的节点处读取报表模板文件中用到的系统公式集合构成的字符串。
4.根据权利要求1所述的一种WEB报表系统公式的批量解析方法,其特征在于,步骤6)中,服务器接收到需解析的系统公式集合并执行解析包括如下主要步骤:
a)、初始化系统公式集合S为空,字符串T为空;
b)、分解系统公式集合组成的字符串,将分解得到的公式全部添加到S中;
c)、对S中的每个公式,调用对应的解析代码求值,将公式及解析的值组成“公式=解析值;”的字符串,追加到字符串T的末尾;
d)、返回字符串T至浏览器端。
5.根据权利要求1所述的一种WEB报表系统公式的批量解析方法,其特征在于,步骤7)中,浏览器端接收系统公式解析结果,并分解为易于使用的数据结构形式,指建立一个浏览器脚本对象保存所有公式解析结果,其中公式设置为该脚本对象的属性名称,公式解析结果设置为该属性的值,随后以脚本对象名[“公式”]的形式取用对应公式的解析结果。
6.根据权利要求1所述的一种WEB报表系统公式的批量解析方法,其特征在于,步骤8)中,应用系统公式解析结果包括如下步骤:
I)、报表解析或创建过程中遇到一个系统公式;
II)、以脚本对象名[“公式”]的形式取对应公式的解析结果;
III)应用公式解析结果到报表中。
CN201410723030.5A 2014-12-02 2014-12-02 一种web报表系统公式的批量解析方法 Expired - Fee Related CN104361121B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410723030.5A CN104361121B (zh) 2014-12-02 2014-12-02 一种web报表系统公式的批量解析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410723030.5A CN104361121B (zh) 2014-12-02 2014-12-02 一种web报表系统公式的批量解析方法

Publications (2)

Publication Number Publication Date
CN104361121A true CN104361121A (zh) 2015-02-18
CN104361121B CN104361121B (zh) 2017-08-08

Family

ID=52528381

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410723030.5A Expired - Fee Related CN104361121B (zh) 2014-12-02 2014-12-02 一种web报表系统公式的批量解析方法

Country Status (1)

Country Link
CN (1) CN104361121B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111125091A (zh) * 2019-11-18 2020-05-08 济南中磁电子科技有限公司 一种数据批量上传方法、上传系统、接收方法及接收系统
CN111241053A (zh) * 2018-11-29 2020-06-05 中国移动通信集团四川有限公司 数据表创建方法、装置、设备及存储介质
CN111767691A (zh) * 2020-06-30 2020-10-13 北京百度网讯科技有限公司 计算方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070203935A1 (en) * 2006-02-28 2007-08-30 Business Objects, S.A. Apparatus and method for selecting a subset of report templates based on specified criteria
CN101122899A (zh) * 2007-09-18 2008-02-13 杭州华三通信技术有限公司 报表的生成方法和设备
CN101615177A (zh) * 2009-07-21 2009-12-30 深圳市科陆电子科技股份有限公司 在服务器/浏览器结构上的自定义报表实现方法及装置
CN101650712A (zh) * 2009-08-18 2010-02-17 深圳市科陆电子科技股份有限公司 一种自定义报表的生成管理方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070203935A1 (en) * 2006-02-28 2007-08-30 Business Objects, S.A. Apparatus and method for selecting a subset of report templates based on specified criteria
CN101122899A (zh) * 2007-09-18 2008-02-13 杭州华三通信技术有限公司 报表的生成方法和设备
CN101615177A (zh) * 2009-07-21 2009-12-30 深圳市科陆电子科技股份有限公司 在服务器/浏览器结构上的自定义报表实现方法及装置
CN101650712A (zh) * 2009-08-18 2010-02-17 深圳市科陆电子科技股份有限公司 一种自定义报表的生成管理方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
蔡凯伟 等: "Excel报表技术在企业信息化中的应用", 《数字技术与应用》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111241053A (zh) * 2018-11-29 2020-06-05 中国移动通信集团四川有限公司 数据表创建方法、装置、设备及存储介质
CN111241053B (zh) * 2018-11-29 2022-08-23 中国移动通信集团四川有限公司 数据表创建方法、装置、设备及存储介质
CN111125091A (zh) * 2019-11-18 2020-05-08 济南中磁电子科技有限公司 一种数据批量上传方法、上传系统、接收方法及接收系统
CN111767691A (zh) * 2020-06-30 2020-10-13 北京百度网讯科技有限公司 计算方法、装置、设备及存储介质
CN111767691B (zh) * 2020-06-30 2024-05-07 北京百度网讯科技有限公司 计算方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN104361121B (zh) 2017-08-08

Similar Documents

Publication Publication Date Title
CN109582909B (zh) 网页自动生成方法、装置、电子设备和存储介质
US20140244692A1 (en) Converting xml to json with configurable output
CN103412924B (zh) 日志多语言查询方法和系统
CN108090104B (zh) 用于获取网页信息的方法和装置
WO2016204996A1 (en) Automated database schema annotation
CN102760058B (zh) 面向大规模协作开发的海量软件项目共享方法
CN105956161A (zh) 一种信息推荐方法和装置
CN111090417B (zh) 二进制文件解析方法、装置、设备及介质
US9384236B2 (en) Method and system for operating on database queries
CN103309884A (zh) 用户行为数据采集方法及系统
US20150089415A1 (en) Method of processing big data, apparatus performing the same and storage media storing the same
DE112016006832T5 (de) Indexer für natürliche Sprache für virtuelle Assistenten
KR102033416B1 (ko) 문서로부터 추출되는 데이터를 생성하는 방법 및 그 장치
CN109657121A (zh) 一种基于网络爬虫的Web页面信息采集方法及装置
CN103970898A (zh) 一种基于多级规则库的信息提取方法及装置
CN110502520A (zh) 一种数据入库的方法、系统、设备及计算机可读存储介质
CN104361121A (zh) 一种web报表系统公式的批量解析方法
CN102375847A (zh) 形成用于生成文档模板的合并树的方法以及装置
US20110320926A1 (en) Generating xml schemas for xml document
CN112650529B (zh) 可配置生成移动端app代码的系统及方法
CN110309214B (zh) 一种指令执行方法及其设备、存储介质、服务器
CN106339381B (zh) 一种信息处理方法及装置
CN112597410A (zh) 基于规则配置库对网页内容执行结构化提取的方法及装置
US10229105B1 (en) Mobile log data parsing
CN113806647A (zh) 识别开发框架的方法及相关设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170808

Termination date: 20201202

CF01 Termination of patent right due to non-payment of annual fee