CN104361121B - 一种web报表系统公式的批量解析方法 - Google Patents
一种web报表系统公式的批量解析方法 Download PDFInfo
- Publication number
- CN104361121B CN104361121B CN201410723030.5A CN201410723030A CN104361121B CN 104361121 B CN104361121 B CN 104361121B CN 201410723030 A CN201410723030 A CN 201410723030A CN 104361121 B CN104361121 B CN 104361121B
- Authority
- CN
- China
- Prior art keywords
- formula
- system equations
- parsing
- template file
- report
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating 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报表系统公式的批量解析方法。
背景技术
报表是企业应用软件必不可少的部分,为了方便报表的开发,各类报表开发系统中都提供了大量系统公式,系统公式可以分为两大类:与报表数据统计相关的公式及与报表数据统计无关的公式。与报表数据统计相关的公式如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 (5)
1.一种WEB报表系统公式的批量解析方法,其特征在于,包括以下步骤:
步骤1):在报表设计器中创建报表模板文件,保存及提交报表模板文件时,搜索整个报表模板文件,将其中用到的所有系统公式归集到一起形成系统公式集合,将系统公式集合保存在报表模板文件的一个节点中;
步骤2):部署报表模板文件;
步骤3):用户在浏览器端获取报表模板文件及报表数据;
步骤4):浏览器端获取报表模板文件中用到的系统公式集合;
步骤5):发送系统公式集合至服务器请求解析;
步骤6):服务器接收到需解析的系统公式集合,执行解析;
步骤7):浏览器端接收系统公式的解析结果,并将该解析结果分解为易于使用的数据结构形式;
步骤8):应用系统公式解析结果;
所述步骤1)中,将其中用到的所有系统公式归集到一起形成系统公式集合的具体步骤包括:
A)初始化已使用系统公式集合uSet,置为空;
B)用正则表达式提取报表模板文件中所有系统公式至集合aSet;
C)对于aSet中的每个公式f,若其属于与报表数据无关的系统公式,则添加f到uSet;
D)将uSet中的所有系统公式取出串联成一个字符串,每两个系统公式之间用分号(;)分隔;
E)在报表模板文件中创建一个名为Formula的节点,将步骤D)得到的字符串保存到该节点中。
2.根据权利要求1所述的一种WEB报表系统公式的批量解析方法,其特征在于,步骤4)中,浏览器端获取报表模板文件中用到的系统公式集合,指浏览器脚本解析报表模板文件时,从步骤1)中所述的报表模板文件中的节点处读取报表模板文件中用到的系统公式集合构成的字符串。
3.根据权利要求1所述的一种WEB报表系统公式的批量解析方法,其特征在于,步骤6)中,服务器接收到需解析的系统公式集合并执行解析包括如下主要步骤:
a)、初始化系统公式集合S为空,字符串T为空;
b)、分解系统公式集合组成的字符串,将分解得到的公式全部添加到S中;
c)、对S中的每个公式,调用对应的解析代码求值,将公式及解析的值组成“公式=解析值;”的字符串,追加到字符串T的末尾;
d)、返回字符串T至浏览器端。
4.根据权利要求1所述的一种WEB报表系统公式的批量解析方法,其特征在于,步骤7)中,浏览器端接收系统公式解析结果,并分解为易于使用的数据结构形式,指建立一个浏览器脚本对象保存所有公式解析结果,其中公式设置为该脚本对象的属性名称, 公式解析结果设置为该属性的值,随后以脚本对象名[“公式”]的形式取用对应公式的解析结果。
5.根据权利要求1所述的一种WEB报表系统公式的批量解析方法,其特征在于,步骤8)中,应用系统公式解析结果包括如下步骤:
I)、报表解析或创建过程中遇到一个系统公式;
II)、以脚本对象名[“公式”]的形式取对应公式的解析结果;
III)应用公式解析结果到报表中。
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 CN104361121A (zh) | 2015-02-18 |
CN104361121B true 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) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111241053B (zh) * | 2018-11-29 | 2022-08-23 | 中国移动通信集团四川有限公司 | 数据表创建方法、装置、设备及存储介质 |
CN111125091A (zh) * | 2019-11-18 | 2020-05-08 | 济南中磁电子科技有限公司 | 一种数据批量上传方法、上传系统、接收方法及接收系统 |
CN111767691B (zh) * | 2020-06-30 | 2024-05-07 | 北京百度网讯科技有限公司 | 计算方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122899A (zh) * | 2007-09-18 | 2008-02-13 | 杭州华三通信技术有限公司 | 报表的生成方法和设备 |
CN101615177A (zh) * | 2009-07-21 | 2009-12-30 | 深圳市科陆电子科技股份有限公司 | 在服务器/浏览器结构上的自定义报表实现方法及装置 |
CN101650712A (zh) * | 2009-08-18 | 2010-02-17 | 深圳市科陆电子科技股份有限公司 | 一种自定义报表的生成管理方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7475062B2 (en) * | 2006-02-28 | 2009-01-06 | Business Objects Software Ltd. | Apparatus and method for selecting a subset of report templates based on specified criteria |
-
2014
- 2014-12-02 CN CN201410723030.5A patent/CN104361121B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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)
Title |
---|
Excel报表技术在企业信息化中的应用;蔡凯伟 等;《数字技术与应用》;20130930;61,63 * |
Also Published As
Publication number | Publication date |
---|---|
CN104361121A (zh) | 2015-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2009276354B2 (en) | Providing posts to discussion threads in response to a search query | |
CN103186670B (zh) | 一种完整采集网页信息的方法和系统 | |
CN104268148B (zh) | 一种基于时间串的论坛页面信息自动抽取方法及系统 | |
CN1786965B (zh) | 一种新闻网页正文信息的提取方法 | |
CN103530429B (zh) | 一种网页正文抽取的方法 | |
CN101650715A (zh) | 一种筛选网页上链接的方法和装置 | |
CN106980651B (zh) | 一种基于知识图谱的爬取种子列表更新方法及装置 | |
CN102262635A (zh) | 一种网页爬虫系统及方法 | |
CN103455593B (zh) | 一种基于社交网络的服务竞争性实现系统及方法 | |
CN101963965A (zh) | 基于搜索引擎的文档索引方法、数据查询方法及服务器 | |
CN104361121B (zh) | 一种web报表系统公式的批量解析方法 | |
CN103226599A (zh) | 一种精确提取网页内容的方法及系统 | |
Prasad et al. | Coreex: content extraction from online news articles | |
CN104765746A (zh) | 用于移动通讯终端浏览器的数据处理方法和装置 | |
CN103078854A (zh) | 报文过滤方法与装置 | |
CN105938496A (zh) | 网页内容提取方法及装置 | |
CN102779172A (zh) | 一种网页中非正文文本的识别系统及方法 | |
CN104778232B (zh) | 一种基于长查询的搜索结果的优化方法和装置 | |
CN105574185A (zh) | 一种提供聚合类型的智能摘要的方法和装置 | |
CN105245394A (zh) | 一种基于分层方式分析网络访问日志的方法和设备 | |
CN102750392B (zh) | Web主题信息提取方法及系统 | |
CN108108381A (zh) | 页面的监测方法及装置 | |
CN106066875A (zh) | 一种基于深网爬虫的高效数据采集方法及系统 | |
CN110110182A (zh) | 一种适用于批量爬取的数据采集方法及系统 | |
CN106991144B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170808 Termination date: 20201202 |