CN111626028A - 基于函数解析的报表生成方法、装置、设备及计算机介质 - Google Patents
基于函数解析的报表生成方法、装置、设备及计算机介质 Download PDFInfo
- Publication number
- CN111626028A CN111626028A CN202010478961.9A CN202010478961A CN111626028A CN 111626028 A CN111626028 A CN 111626028A CN 202010478961 A CN202010478961 A CN 202010478961A CN 111626028 A CN111626028 A CN 111626028A
- Authority
- CN
- China
- Prior art keywords
- report
- function
- function information
- cells
- configuration
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/183—Tabulation, i.e. one-dimensional positioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及金融科技(Fintech)技术领域,公开了一种基于函数解析的报表生成方法、装置、设备及计算机介质,该方法包括:在接收到报表配置请求时,输出所述报表配置请求关联报表的配置页面,以供用户在所述配置页面配置所述报表中各单元格的函数信息;获取基于所述配置页面配置的函数信息,根据所述函数信息对已配置的单元格进行循环校验;在所述单元格循环校验通过时,将所述函数信息与所述报表关联保存;在检测到所述报表中全部的单元格配置完成时,通过预设解析引擎解析所述报表关联的函数信息,生成包含运行结果的报表。本发明通过预设解析引擎解析报表关联的函数信息生成报表,提高了报表生成的效率和灵活性。
Description
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及基于函数解析的报表生成方法、装置、设备及计算机介质。
背景技术
随着互联网技术,尤其是互联网金融科技(Fintech)的飞速发展,越来越多的技术(大数据、分布式、区块链Blockchain、人工智能等)应用在金融领域。
金融业务也越来越多,每个金融业务有很多业务报表,例如,纳税申报表、业务资金表等,当前金融业务平台中的业务报表有两种形式,一种业务报表中不关联计算函数仅保存有固定的业务数据,这种业务报表不支持灵活的计算,另外一种业务报表中关联计算函数,根据计算函数进行数据获取和数据计算,这样的数据报表较为灵活,当数据源数据发生变化时,可以根据技术函数更新表格,但是金融业务平台中开发就相对麻烦,具体地,业务人员给出业务报表中涉及的计算函数,开发人员根据业务给定的技术公式编写固定的计算机语言,然后根据计算机语言生成,这样的报表生成方法需要依赖开发人员翻译业务人员提供的业务计算逻辑,人力沟通成本高效率低,报表容易出错不够灵活,若业务计算规则变化,需要重新沟通开发形成新的版本然后进行版本迭代更新,对于实时性要求高的报表系统无法满足。
发明内容
本发明的主要目的在于提出一种基于函数解析的报表生成方法、装置、设备及计算机介质,旨在解决当前报表生成方法需要依赖开发人员翻译业务人员提供的业务计算逻辑,人力沟通成本高效率低,容易出错,不够灵活,若业务计算规则变化,需要版本迭代更新,对于实时性要求高的报表系统无法满足的技术问题。
为实现上述目的,本发明提供一种基于函数解析的报表生成方法,所述基于函数解析的报表生成方法包括如下步骤:
在接收到报表配置请求时,输出所述报表配置请求关联报表的配置页面,以供用户在所述配置页面配置所述报表中各单元格的函数信息;
获取基于所述配置页面配置的函数信息,根据所述函数信息对已配置的单元格进行循环校验;
在所述单元格循环校验通过时,将所述函数信息与所述报表关联保存;
在检测到所述报表中全部的单元格配置完成时,通过预设解析引擎解析所述报表关联的函数信息,生成包含运行结果的报表。
可选地,所述在检测到所述报表中全部的单元格配置完成时,通过预设解析引擎解析所述报表关联的函数信息,生成包含运行结果的报表的步骤,包括:
在检测到所述报表中全部的单元格配置完成时,获取所述报表中各单元格的函数信息,根据各单元格的函数信息创建有向图;
遍历所述有向图,获得所述有向图中各节点对应单元格的优先级,将所述单元格按照各自的优先级从高到低排序,形成拓扑序列;
通过预设解析引擎依次解析所述拓扑序列中各单元格的函数信息并执行运算操作,生成包含运行结果的报表。
可选地,所述通过预设解析引擎依次解析所述拓扑序列中各单元格的函数信息并执行运算操作,生成包含运行结果的报表的步骤,包括:
通过预设解析引擎依次解析所述拓扑序列中各单元格的函数信息,获得所述运行信息中的取数函数、常用函数和四则运算;
通过预设解析引擎获取所述取数函数的初始值,按照所述常用函数处理所述初始值获得中间值,按照所述四则运算处理所述中间值,生成包含运行结果的报表。
可选地,所述获取基于所述配置页面配置的函数信息,根据所述函数信息对已配置的单元格进行循环校验的步骤,包括:
在检测到基于所述配置页面配置所述报表中单元格的函数信息时,获取所述报表中已配置的单元格的函数信息;
根据所述已配置的单元格的函数信息,确定所述已配置的单元格的依赖关系,并根据所述依赖关系对所述已配置的单元格进行循环校验。
可选地,所述根据所述已配置的单元格的函数信息,确定所述已配置的单元格的依赖关系,并根据所述依赖关系对所述已配置的单元格进行循环校验的步骤,包括:
根据所述已配置的单元格的函数信息,确定所述已配置的单元格的依赖关系;
根据所述依赖关系建立有向图,获取所述有向图中每条边上的启始节点,通过递归方式追溯所述启始节点关联的所有依赖节点;
若所述依赖节点包含所述启始节点,则判定所述报表中已配置的单元格循环校验不通过;
若所述依赖节点不包含所述启始节点,则判定所述报表中已配置的单元格循环校验通过。
可选地,所述获取基于所述配置页面配置的函数信息,根据所述函数信息对已配置的单元格进行循环校验的步骤之后,所述方法包括:
在所述报表中已配置的单元格循环校验不通过时,输出配置错误的提示。
可选地,所述在检测到所述报表中全部的单元格配置完成时,通过预设解析引擎解析所述报表关联的函数信息,生成包含运行结果的报表的步骤之后,包括:
获取所述报表的报表标识,将所述运行结果与所述报表标识关联保存至预设数据库;
在接收到报表查询请求时,获取所述报表查询请求关联的报表标识;
查询所述预设数据库,获取所述报表标识对应的运行结果,将所述运行结果添加到所述报表标识对应的报表模板,渲染生成报表。
此外,为实现上述目的,本发明还提供一种基于函数解析的报表生成装置,所述基于函数解析的报表生成装置包括:
请求接收模块,用于在接收到报表配置请求时,输出所述报表配置请求关联报表的配置页面,以供用户在所述配置页面中配置所述报表中各单元格的取数规则和运行规则;
循环校验模块,用于在检测到基于所述配置页面配置所述报表中单元格的函数信息时,对所述报表中已配置的单元格进行循环校验;
信息保存模块,用于在所述报表中已配置的单元格循环校验通过时,保存所述单元格的函数信息;
解析生成模块,用于在所述报表中各单元格的运行信息配置完成时,按照预设解析规则解析所述报表中各单元格的函数信息,生成包含运行结果的报表。
此外,为实现上述目的,本发明还提供一种基于函数解析的报表生成设备,所述基于函数解析的报表生成设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于函数解析的报表生成程序,所述基于函数解析的报表生成程序被所述处理器执行时实现如上所述的基于函数解析的报表生成方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机介质,所述计算机介质上存储有基于函数解析的报表生成程序,所述基于函数解析的报表生成程序被处理器执行时实现如上所述的基于函数解析的报表生成方法的步骤。
本发明提供一种基于函数解析的报表生成方法、装置、设备及计算机介质,本发明实施例中报表生成设备在接收到报表配置请求时,输出所述报表配置请求关联报表的配置页面,以供用户在所述配置页面配置所述报表中各单元格的函数信息;即,本实施例中业务人员可以在配置页面上自动配置函数信息,报表生成设备获取基于所述配置页面配置的函数信息,根据所述函数信息对已配置的单元格进行循环校验;在所述单元格循环校验通过时,报表生成设备判定业务人员的函数信息配置正确,报表生成设备将所述函数信息与所述报表关联保存;在检测到所述报表中全部的单元格配置完成时,通过预设解析引擎解析所述报表关联的函数信息,生成包含运行结果的报表。本发明实施例中通过预设解析引擎解析报表关联的函数信息生成报表,不需要开发人员和业务人员进行沟通对接,减少了人力资源的浪费,在报表更新时业务人员只需要到配置页面配置新的函数信息,就可以生成新的报表,本发明实施例的技术方案提高了报表生成的效率和灵活性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明基于函数解析的报表生成方法第一实施例的流程示意图;
图3为本发明基于函数解析的报表生成方法第二实施例中创建有向图的具体场景示意图;
图4为本发明基于函数解析的报表生成装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例基于函数解析的报表生成设备可以是PC机或服务器设备。
如图1所示,该基于函数解析的报表生成设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于函数解析的报表生成程序。
在图1所示的设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的基于函数解析的报表生成对应的计算机程序,并执行下述基于函数解析的报表生成方法中的操作。
基于上述硬件结构,提出了本发明基于函数解析的报表生成方法实施例。
参照图2,图2为本发明基于函数解析的报表生成方法第一实施例的流程示意图,本实施例中基于函数解析的报表生成方法包括:
步骤S10,在接收到报表配置请求时,输出所述报表配置请求关联报表的配置页面,以供用户在所述配置页面配置所述报表中各单元格的函数信息。
本实施例中的基于函数解析的报表生成方法应用于基于函数解析的报表生成设备,又叫报表生成设备,报表生成设备是基于函数解析的报表生成对应计算机程序的硬件载体,报表生成设备与不同的金融机构(包括银行机构、保险机构或证券机构等)的数据平台通信连接,报表生成设备与金融机构的数据平台可以实现数据传输,报表生成设备可以基于不同金融机构的数据平台中的数据生成不用类型的报表。
报表生成设备接收报表配置请求,报表配置请求的触发方式不作具体限定,即,报表配置请求可以是用户主动触发的,例如,用户在终端上输出“报表信息”触发报表配置请求;此外,报表配置请求还可以是报表生成设备自动触发的,例如,报表生成设备预先设置报表配置请求的触发条件为检测到数据更新时自动触发,报表生成设备在检测到数据更新时自动触发报表配置请求。
报表生成设备在接收到报表配置请求时,报表生成设备获取报表配置请求关联的报表标识(报表标识是指唯一识别报表的标识信息,例如报表名称,报表种类,报表编号),报表生成设备输出报表标识关联报表的配置页面,以供用户在配置页面配置报表中各单元格的函数信息,其中,函数信息包括取数函数(取数函数包括报表间取数函数,报表内取数函数)、常用函数(如If函数,MAX函数和MIN函数)、四则运算函数(加减乘除函数)和其他自定义函数,函数信息的中包含的函数种类和计算规则可以根据业务需求灵活设置本实施例中不作具体限定。
即,本实施例中报表生成设备根据报表种类生成不同种类报表的配置页面,方便不同种类的报表配置,例如,报表生成设备可以配置纳税申报表、企业员工工资计算表等等,本实施例中支持不同种类具有函数信息的报表的配置,使得生成的报表更加丰富。
本实施例中开发者开发了配置页面,配置页面支持定义报表的各个单元格中的函数信息,即,开发者预先定义报表中单元格坐标和数据库存储的映射规则,如:报表1的A3坐标单元格,后台将有一张报表1的表,A会映射一个字段名,3将对应一个横坐标与之对应,用户(又叫业务人员)进入需要定义的报表对应的配置页面进行函数信息设置,例如,用户进入要定义的台账报表设置页面,选中某一单元格,点击公式设置,弹框公式设置下拉框,页面支持一系列内置函数的选择及加减乘除函数的选择,业务选中某一函数后会弹框提供页面选择其它报表单元格,选中单元格后再选择计算器配置四则运算函数,执行保存后即设置完成此单元格计算规则,依次设置所有台账报表的所有单元格的函数信息。
本实施例中报表的生成无需业务人员与开发人员沟通,业务人员直接在配置页面中自行根据底稿公式配置函数信息进行完成,报表生成设备可以根据配置页面中用户设置的函数信息进行报表生成,具体地:
步骤S20,获取基于所述配置页面配置的函数信息,根据所述函数信息对已配置的单元格进行循环校验。
报表生成设备检测到配置页面中新增函数信息时,报表生成设备获取基于配置页面配置的报表中各个单元格的函数信息,报表生成设备根据函数信息对已配置的单元格进行循环校验,即,单元格的配置信息中包含表内四则运算配置,表间四则运算配置,取数函数,汇总函数等,为了避免函数信息中各个公式存在死循环无法解析计算,报表生成设备预先定义死循环校验规则,报表生成设备根据各个单元格的函数信息,通过将所有单元格构建有向图,若有向图没有闭合,报表生成设备则判定单元格循环校验通过,若有向图闭合,报表生成设备判定单元格循环校验不通过。
本实施例中报表生成设备预先定义函数信息的循环校验规则,报表生成设备按照函数信息构建有向图进行循环校验,以避免单元格中业务人员函数信息设置错误,导致报表无法生成的情况发生,本实施例中使得报表生成更加准确。
步骤S30,在所述单元格循环校验通过时,将所述函数信息与所述报表关联保存。
报表生成设备中预先定义了报表中单元格坐标和数据库存储的映射规则,报表生成设备根据配置页面中设置的单元格坐标和数据库存储的映射规则,在单元格循环校验通过时,报表生成设备将各个单元格的函数信息保存到数据库中,使得根据数据库中,用户配置的函数信息进行报表生成,即,
步骤S40,在检测到所述报表中全部的单元格配置完成时,通过预设解析引擎解析所述报表关联的函数信息,生成包含运行结果的报表。
报表生成设备在报表的单元格中函数信息配置完成时,用户可以提交保存,报表生成设备接收到提交保存指令时,报表生成设备检测到报表中全部的单元格配置完成,报表生成设备通过预设解析引擎(预设解析引擎是指预先设置的函数信息解析规则和执行方法的代码工具,例如,本实施例中预设解析引擎可以是antlr,antlr可以用来读取、处理、执行或翻译结构化文本或二进制文件,antlr被广泛用来构建语言,工具和框架,antlr可以从语法上来生成一个可以构建和遍历解析树的解析器)解析报表关联的函数信息,预设解析引擎获取函数信息中的取数函数、常用函数和四则运行函数,报表生成设备按照取数函数获取源数据,报表生成设备将源数据带入单元格进行运算,生成包含运行结果的报表。
本实施例中设置配置页面,用户可以在配置页面上配置报表中各单元格的函数信息,报表生成设备在检测到报表中全部的单元格配置完成时,通过预设解析引擎解析所述报表关联的函数信息,生成包含运行结果的报表。本发明实施例中通过预设解析引擎解析报表关联的函数信息生成报表,不需要开发人员和业务人员进行沟通对接,减少了人力资源的浪费,在报表更新时业务人员只需要到配置页面配置新的函数信息,就可以生成新的报表,本发明实施例的技术方案提高了报表生成的效率和灵活性。
可以理解的是,本实施例中在配置页面中的函数信息更新时,报表生成设备可以根据新的函数信息进行报表生成,提高了报表更新的实时性,本实施例中基于函数解析的报表生成方法应用在金融机构,使得金融机构生成的报表更加高效准确。
进一步地,基于本发明基于函数解析的报表生成方法第一实施例,提出了本发明基于函数解析的报表生成方法第二实施例。
在本实施例是第一实施例中步骤S40的细化,本实施例中给出了通过预设解析引擎解析报表关联的函数信息,生成包含运行结果的报表的一种具体实现方式,包括:
在检测到所述报表中全部的单元格配置完成时,获取所述报表中各单元格的函数信息,根据各单元格的函数信息创建有向图;
遍历所述有向图,获得所述有向图中各节点对应单元格的优先级,将所述单元格按照各自的优先级从高到低排序,形成拓扑序列;
通过预设解析引擎依次解析所述拓扑序列中各单元格的函数信息并执行运算操作,生成包含运行结果的报表。
即,报表生成设备在检测到报表中全部的单元格配置完成时,报表生成设备获取报表中各单元格的函数信息,报表生成设备根据各单元格的函数信息创建有向图;报表生成设备遍历有向图,报表生成设备按照有向图中各个节点对应单元格的顺序作为报表中各单元格的优先级,报表生成设备将报表中各单元格按照各自的优先级从高到低排序,形成拓扑序列。
报表生成设备通过预设解析引擎(预设解析引擎与第一实施例相同,本实施例不作赘述)依次解析拓扑序列中各单元格的函数信息并执行运算操作,生成包含运行结果的报表,即,报表生成设备通过预设解析引擎依次解析拓扑序列中各单元格的函数信息,获得运行信息中的取数函数、常用函数和四则运算;通过预设解析引擎获取取数函数的初始值,按照常用函数处理所述初始值获得中间值,按照所述四则运算处理所述中间值,生成包含运行结果的报表。
为了方便理解,本实施例中进行举例说明,具体地:
报表生成设备根据报表中单元格的函数信息,为报表中所有单元格进行优先级排序,将所有单元格类比为节点,通过节点创建有向图。有向图初始化会记录所有入度为0的节点和边;拓扑排序会根据入度为0的节点和边遍历判断,遍历结束返回拓扑序列的结果。如图3所示,图3为本发明基于函数解析的报表生成方法第二实施例中创建有向图的具体场景示意图,图3进行拓扑排序的结果:2->8->0->3->7->1->5->6->9->4->11->10->12,报表生成设备排列顺序之后,用antlr定义好的解析引擎进行计算。计算规则分为取数函数,常用函数,四则运算。计算优先级为取数函数->常用函数->四则运算。解析计算说明如下:SELECT(‘取数表.E3’,’本期’)+SELECT(‘取数表.B3’,’本期’)/0.17-IF(SELECT(‘取数表.B5’,’本期’)>SELECT(‘取数表C5’,’本期’),SELECT(‘取数表.B5’,’本期’),SELECT(‘取数表.C5’,’本期’))。第一步获取所有取数函数的值并替换,58000+52000/0.17-IF(18000>86000,18000,86000);第二步执行常用函数IF(18000>86000,18000,86000)值为86000并替换。结果为58000+52000/0.17-86000;第三步执行四则运算,结果为277882.35294117645。
本实施例中报表生成设备根据报表中单元格的函数信息创建有向图,根据有向图中各个节点的顺序,确定各个节点对应单元格的优先级,形成拓扑序列,进一步地通过预设解析引擎依次解析拓扑序列中各单元格的函数信息并执行运算操作,生成包含运行结果的报表,实现了灵活高效地报表生成。
进一步地,基于本发明基于函数解析的报表生成方法上述实施例,提出了本发明基于函数解析的报表生成方法第三实施例。
在本实施例是第一实施例中步骤S20的细化,本实施例中给出了报表生成设备获取基于所述配置页面配置的函数信息,根据函数信息对已配置的单元格进行循环校验的一种具体实现方式,包括:
在检测到基于所述配置页面配置所述报表中单元格的函数信息时,获取所述报表中已配置的单元格的函数信息;
根据所述已配置的单元格的函数信息,确定所述已配置的单元格的依赖关系,并根据所述依赖关系对所述已配置的单元格进行循环校验。
即,报表生成设备在检测到基于配置页面配置所述报表中单元格的函数信息时,获取所述报表中已配置的单元格的函数信息,报表生成设备根据已配置的单元格的函数信息,确定已配置的单元格的依赖关系,;根据所述依赖关系建立有向图,例如,报表生成设备中函数信息包括:A1单元格的函数信息中包括取数函数:从A2单元格取数,则A1单元格与A2单元格存在依赖关系,将A1单元格赋予一个节点,将A2单元格赋予A1单元格对应节点的子节点,建立生成有向图,报表生成设备获取有向图中每条边上的启始节点,通过递归方式追溯所述启始节点关联的所有依赖节点;例如,A1-A2-A3-A4-A1,若依赖节点包含启始节点,则判定报表中已配置的单元格循环校验不通过;若依赖节点不包含所述启始节点,则判定报表中已配置的单元格循环校验通过。
为了方便理解,本实施例中进行举例说明,具体地:
报表生成设备获取账报表所有单元格函数信息,报表生成设备根据函数信息对已配置的所有单元格死循环校验,循环校验举例说明如下:TZ_0004_INST.JE2_1=[TZ_0005_INST.JE1_1],TZ_0005_INST.JE1_1=[TZ_0004_INST.JE2_1];即台账报表4单元格JE2_1依赖了台账报表5单元格JE1_1,相反台账报表5单元格JE1_1也依赖了台账报表4单元格JE2_1。
本实施例中报表生成设备进行循环校验逻辑如下:
a、获取所操作的当前台账所有单元格的依赖关系(会去后台查询到TZ_0004_INST的所有单元格依赖关系,格式如TZ_0004_INST.JE2_1=[TZ_0004_INST.JE1_1]);
b、获取所有依赖关系后,先创建一个有向图,有向图包括节点(节点对应单元格)和边(边对应有函数信息)。示例中创建的图为:TZ_0004_INST.JE2_1->TZ_0005_INST.JE1_1;TZ_0005_INST.JE1_1->TZ_0004_INST.JE2_1。
c、报表生成设备判断有向图中是否存在循环,即,报表生成设备获取存在的循环节点,依据的算法是依次遍历图的每个边,取启始节点,取出边对应的endNode节点,通过递归方式取所有依赖节点,如果依赖节点包含了这个边的StartNode节点,则存在循环,将当前节点放入set集合中,遍历结束后返回,如果set集合没有值,则没有存在死循环,否则存在死循环。示例中将得到TZ_0004_INST.JE2_1->TZ_0005_INST.JE1_1边的TZ_0004_INST.JE2_1的endNode节点的依靠边为[TZ_0005_INST.JE1_1,TZ_0004_INST.JE2_1]包括了TZ_0004_INST.JE2_1,所以TZ_0004_INST.JE2_1为死循环节点,所以提示TZ_0004_INST.JE2_1存在循环循环。
本实施例中报表生成设备根据函数信息确定报表中各个单元格之间的依赖关系,然后报表生成设备根据单元格之间的依赖关系,创建有向图,并根据有向图进行循环校验,可以有效地避免单元格配置错误的情况,从而提高报表的准确度,此外,本实施例中开发人员并不需要了解业务逻辑,业务人员也不需要和开发进行沟通,业务人员直接对报表的单元格进行配置,就可以实现报表的准确生成,使得报表生成更加便捷。
进一步地,基于本发明基于函数解析的报表生成方法上述实施例,提出了本发明基于函数解析的报表生成方法第四实施例。
在本实施例是第一实施例中步骤S20之后的步骤,本实施例与上述实施例的区别在于:
在所述报表中已配置的单元格循环校验不通过时,输出配置错误的提示。
本实施例中报表生成设备在报表中已配置的单元格循环校验不通过时,输出配置错误的提示,本实施例中报表生成设备根据业务人员配置的函数信息进行实时地校验,可以保证业务人员配置正确地函数信息。
进一步地,基于本发明基于函数解析的报表生成方法上述实施例,提出了本发明基于函数解析的报表生成方法第四实施例。
在本实施例是第一实施例中步骤S40之后的步骤,本实施例与上述实施例的区别在于:
获取所述报表的报表标识,将所述运行结果与所述报表标识关联保存至预设数据库;
在接收到报表查询请求时,获取所述报表查询请求关联的报表标识;
查询所述预设数据库,获取所述报表标识对应的运行结果,将所述运行结果添加到所述报表标识对应的报表模板,渲染生成报表。
报表生成设备在报表中所有单元格的函数信息配置完成时,报表生成设备获取报表的报表标识(报表标识是指预先设置报表标识信息,例如报表编号),报表生成设备将运行结果与报表标识关联保存至预设数据库(预设数据库是指预先设置的保存函数信息、运行结果和报表标识的数据库);报表生成设备在接收到报表查询请求时,报表生成设备获取报表查询请求关联的报表标识;报表生成设备查询预设数据库,报表生成设备获取预设数据库中报表标识对应的运行结果,将运行结果添加到报表标识对应的报表模板,渲染生成报表。
本实施例中报表生成设备将运行结果和报表标识进行关联保存,用户查询报表时,只需要输入报表标识,报表生成设备可以进行快速地查询报表标识对应的运行节点,并将运行结果添加到报表标识对应的报表模板,渲染生成报表,不需要重复地运行函数信息,提高了报表的查询效率和输出效率。
可以理解的是,本实施例中若报表中函数信息出现了更新,或者报表相关的源数据出现的了更新,报表生成设备快速地执行第一实施例的步骤方便报表的及时更新。
参照图4,本发明实施例提出了一种基于函数解析的报表生成装置,所述基于函数解析的报表生成装置包括:
请求接收模块10,用于在接收到报表配置请求时,输出所述报表配置请求关联报表的配置页面,以供用户在所述配置页面中配置所述报表中各单元格的取数规则和运行规则;
循环校验模块20,用于在检测到基于所述配置页面配置所述报表中单元格的函数信息时,对所述报表中已配置的单元格进行循环校验;
信息保存模块30,用于在所述报表中已配置的单元格循环校验通过时,保存所述单元格的函数信息;
解析生成模块40,用于在所述报表中各单元格的运行信息配置完成时,按照预设解析规则解析所述报表中各单元格的函数信息,生成包含运行结果的报表。
在一实施例中,所述解析生成模块40,包括:
创建子模块,用于在检测到所述报表中全部的单元格配置完成时,获取所述报表中各单元格的函数信息,根据各单元格的函数信息创建有向图;
遍历排序子模块,用于遍历所述有向图,获得所述有向图中各节点对应单元格的优先级,将所述单元格按照各自的优先级从高到低排序,形成拓扑序列;
解析执行子模块,用于通过预设解析引擎依次解析所述拓扑序列中各单元格的函数信息并执行运算操作,生成包含运行结果的报表。
在一实施例中,所述解析执行子模块,包括:
解析获取单元,用于通过预设解析引擎依次解析所述拓扑序列中各单元格的函数信息,获得所述运行信息中的取数函数、常用函数和四则运算;
解析执行单元,用于通过预设解析引擎获取所述取数函数的初始值,按照所述常用函数处理所述初始值获得中间值,按照所述四则运算处理所述中间值,生成包含运行结果的报表。
在一实施例中,所述循环校验模块,包括:
接收获取子模块,用于在检测到基于所述配置页面配置所述报表中单元格的函数信息时,获取所述报表中已配置的单元格的函数信息;
循环校验子模块,用于根据所述已配置的单元格的函数信息,确定所述已配置的单元格的依赖关系,并根据所述依赖关系对所述已配置的单元格进行循环校验。
在一实施例中,所述循环校验子模块,包括:
关系确定单元,用于根据所述已配置的单元格的函数信息,确定所述已配置的单元格的依赖关系;
节点追溯单元,用于根据所述依赖关系建立有向图,获取所述有向图中每条边上的启始节点,通过递归方式追溯所述启始节点关联的所有依赖节点;
第一判定单元,用于若所述依赖节点包含所述启始节点,则判定所述报表中已配置的单元格循环校验不通过;
第二判定单元,用于若所述依赖节点不包含所述启始节点,则判定所述报表中已配置的单元格循环校验通过。
在一实施例中,所述基于函数解析的报表生成装置,包括:
错误提示模块,用于在所述报表中已配置的单元格循环校验不通过时,输出配置错误的提示。
在一实施例中,所述基于函数解析的报表生成装置,包括:
获取保存模块,用于获取所述报表的报表标识,将所述运行结果与所述报表标识关联保存至预设数据库;
请求接收模块,用于在接收到报表查询请求时,获取所述报表查询请求关联的报表标识;
查询渲染模块,用于查询所述预设数据库,获取所述报表标识对应的运行结果,将所述运行结果添加到所述报表标识对应的报表模板,渲染生成报表。
在本实施例中基于函数解析的报表生成装置中的各个模块被执行时所实现的方法可参照本发明基于函数解析的报表生成方法各个实施例,此处不再赘述。
本发明实施例中报表生成设备在接收到报表配置请求时,输出所述报表配置请求关联报表的配置页面,以供用户在所述配置页面配置所述报表中各单元格的函数信息;即,本实施例中业务人员可以在配置页面上自动配置函数信息,报表生成设备获取基于所述配置页面配置的函数信息,根据所述函数信息对已配置的单元格进行循环校验;在所述单元格循环校验通过时,报表生成设备判定业务人员的函数信息配置正确,报表生成设备将所述函数信息与所述报表关联保存;在检测到所述报表中全部的单元格配置完成时,通过预设解析引擎解析所述报表关联的函数信息,生成包含运行结果的报表。
本发明实施例中通过预设解析引擎解析报表关联的函数信息生成报表,不需要开发人员和业务人员进行沟通对接,减少了人力资源的浪费,在报表更新时业务人员只需要到配置页面配置新的函数信息,就可以生成新的报表,本发明实施例的技术方案提高了报表生成的效率和灵活性。
本发明实施例,还提供一种计算机介质。
本发明计算机介质上存储有基于函数解析的报表生成程序,所述基于函数解析的报表生成程序被处理器执行时实现如上所述的基于函数解析的报表生成方法的步骤。
其中,在所述处理器上运行的基于函数解析的报表生成程序被执行时所实现的方法可参照本发明基于函数解析的报表生成方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于函数解析的报表生成方法,其特征在于,所述基于函数解析的报表生成方法包括如下步骤:
在接收到报表配置请求时,输出所述报表配置请求关联报表的配置页面,以供用户在所述配置页面配置所述报表中各单元格的函数信息;
获取基于所述配置页面配置的函数信息,根据所述函数信息对已配置的单元格进行循环校验;
在所述单元格循环校验通过时,将所述函数信息与所述报表关联保存;
在检测到所述报表中全部的单元格配置完成时,通过预设解析引擎解析所述报表关联的函数信息,生成包含运行结果的报表。
2.如权利要求1所述的基于函数解析的报表生成方法,其特征在于,所述在检测到所述报表中全部的单元格配置完成时,通过预设解析引擎解析所述报表关联的函数信息,生成包含运行结果的报表的步骤,包括:
在检测到所述报表中全部的单元格配置完成时,获取所述报表中各单元格的函数信息,根据各单元格的函数信息创建有向图;
遍历所述有向图,获得所述有向图中各节点对应单元格的优先级,将所述单元格按照各自的优先级从高到低排序,形成拓扑序列;
通过预设解析引擎依次解析所述拓扑序列中各单元格的函数信息并执行运算操作,生成包含运行结果的报表。
3.如权利要求2所述的基于函数解析的报表生成方法,其特征在于,所述通过预设解析引擎依次解析所述拓扑序列中各单元格的函数信息并执行运算操作,生成包含运行结果的报表的步骤,包括:
通过预设解析引擎依次解析所述拓扑序列中各单元格的函数信息,获得所述运行信息中的取数函数、常用函数和四则运算;
通过预设解析引擎获取所述取数函数的初始值,按照所述常用函数处理所述初始值获得中间值,按照所述四则运算处理所述中间值,生成包含运行结果的报表。
4.如权利要求1所述的基于函数解析的报表生成方法,其特征在于,所述获取基于所述配置页面配置的函数信息,根据所述函数信息对已配置的单元格进行循环校验的步骤,包括:
在检测到基于所述配置页面配置所述报表中单元格的函数信息时,获取所述报表中已配置的单元格的函数信息;
根据所述已配置的单元格的函数信息,确定所述已配置的单元格的依赖关系,并根据所述依赖关系对所述已配置的单元格进行循环校验。
5.如权利要求4所述的基于函数解析的报表生成方法,其特征在于,所述根据所述已配置的单元格的函数信息,确定所述已配置的单元格的依赖关系,并根据所述依赖关系对所述已配置的单元格进行循环校验的步骤,包括:
根据所述已配置的单元格的函数信息,确定所述已配置的单元格的依赖关系;
根据所述依赖关系建立有向图,获取所述有向图中每条边上的启始节点,通过递归方式追溯所述启始节点关联的所有依赖节点;
若所述依赖节点包含所述启始节点,则判定所述报表中已配置的单元格循环校验不通过;
若所述依赖节点不包含所述启始节点,则判定所述报表中已配置的单元格循环校验通过。
6.如权利要求1所述的基于函数解析的报表生成方法,其特征在于,所述获取基于所述配置页面配置的函数信息,根据所述函数信息对已配置的单元格进行循环校验的步骤之后,所述方法包括:
在所述报表中已配置的单元格循环校验不通过时,输出配置错误的提示。
7.如权利要求1-6任意一项所述的基于函数解析的报表生成方法,其特征在于,所述在检测到所述报表中全部的单元格配置完成时,通过预设解析引擎解析所述报表关联的函数信息,生成包含运行结果的报表的步骤之后,还包括:
获取所述报表的报表标识,将所述运行结果与所述报表标识关联保存至预设数据库;
在接收到报表查询请求时,获取所述报表查询请求关联的报表标识;
查询所述预设数据库,获取所述报表标识对应的运行结果,将所述运行结果添加到所述报表标识对应的报表模板,渲染生成报表。
8.一种基于函数解析的报表生成装置,其特征在于,所述基于函数解析的报表生成装置包括:
请求接收模块,用于在接收到报表配置请求时,输出所述报表配置请求关联报表的配置页面,以供用户在所述配置页面中配置所述报表中各单元格的取数规则和运行规则;
循环校验模块,用于在检测到基于所述配置页面配置所述报表中单元格的函数信息时,对所述报表中已配置的单元格进行循环校验;
信息保存模块,用于在所述报表中已配置的单元格循环校验通过时,保存所述单元格的函数信息;
解析生成模块,用于在所述报表中各单元格的运行信息配置完成时,按照预设解析规则解析所述报表中各单元格的函数信息,生成包含运行结果的报表。
9.一种基于函数解析的报表生成设备,其特征在于,所述基于函数解析的报表生成设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于函数解析的报表生成程序;
所述基于函数解析的报表生成程序被所述处理器执行时实现如权利要求1至7中任一项所述的基于函数解析的报表生成方法的步骤。
10.一种计算机介质,其特征在于,所述计算机介质上存储有基于函数解析的报表生成程序;
所述基于函数解析的报表生成程序被处理器执行时实现如权利要求1至7中任一项所述的基于函数解析的报表生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010478961.9A CN111626028A (zh) | 2020-05-29 | 2020-05-29 | 基于函数解析的报表生成方法、装置、设备及计算机介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010478961.9A CN111626028A (zh) | 2020-05-29 | 2020-05-29 | 基于函数解析的报表生成方法、装置、设备及计算机介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111626028A true CN111626028A (zh) | 2020-09-04 |
Family
ID=72271318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010478961.9A Pending CN111626028A (zh) | 2020-05-29 | 2020-05-29 | 基于函数解析的报表生成方法、装置、设备及计算机介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111626028A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199930A (zh) * | 2020-10-29 | 2021-01-08 | 支付宝(杭州)信息技术有限公司 | 一种根据报表配置自动生成报表的方法和系统 |
CN112560414A (zh) * | 2020-12-16 | 2021-03-26 | 建信金融科技有限责任公司 | 一种自动生成会计报表的方法和装置 |
CN112560413A (zh) * | 2020-12-15 | 2021-03-26 | 中国人寿保险股份有限公司 | 基于配置模式的报表扩展方法、装置和设备 |
CN112861492A (zh) * | 2021-01-27 | 2021-05-28 | 亿企赢网络科技有限公司 | 一种报表表内表间联动计算的方法、装置及电子设备 |
CN113486111A (zh) * | 2021-06-21 | 2021-10-08 | 浙大城市学院 | 一种支持集群计算的报表系统及方法 |
CN114416832A (zh) * | 2022-01-26 | 2022-04-29 | 重庆允丰科技有限公司 | 一种公式字段、报表的配置方法及计算机存储介质 |
CN117215455A (zh) * | 2023-09-25 | 2023-12-12 | 中科院成都信息技术股份有限公司 | 报表计算公式生成方法、装置、计算机设备及存储介质 |
-
2020
- 2020-05-29 CN CN202010478961.9A patent/CN111626028A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199930A (zh) * | 2020-10-29 | 2021-01-08 | 支付宝(杭州)信息技术有限公司 | 一种根据报表配置自动生成报表的方法和系统 |
CN112560413A (zh) * | 2020-12-15 | 2021-03-26 | 中国人寿保险股份有限公司 | 基于配置模式的报表扩展方法、装置和设备 |
CN112560413B (zh) * | 2020-12-15 | 2023-08-04 | 中国人寿保险股份有限公司 | 基于配置模式的报表扩展方法、装置和设备 |
CN112560414A (zh) * | 2020-12-16 | 2021-03-26 | 建信金融科技有限责任公司 | 一种自动生成会计报表的方法和装置 |
CN112861492A (zh) * | 2021-01-27 | 2021-05-28 | 亿企赢网络科技有限公司 | 一种报表表内表间联动计算的方法、装置及电子设备 |
CN112861492B (zh) * | 2021-01-27 | 2024-07-23 | 亿企赢网络科技有限公司 | 一种报表表内表间联动计算的方法、装置及电子设备 |
CN113486111A (zh) * | 2021-06-21 | 2021-10-08 | 浙大城市学院 | 一种支持集群计算的报表系统及方法 |
CN114416832A (zh) * | 2022-01-26 | 2022-04-29 | 重庆允丰科技有限公司 | 一种公式字段、报表的配置方法及计算机存储介质 |
CN114416832B (zh) * | 2022-01-26 | 2022-11-15 | 重庆允丰科技有限公司 | 一种公式字段、报表的配置方法及计算机存储介质 |
CN117215455A (zh) * | 2023-09-25 | 2023-12-12 | 中科院成都信息技术股份有限公司 | 报表计算公式生成方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111626028A (zh) | 基于函数解析的报表生成方法、装置、设备及计算机介质 | |
CN107704265B (zh) | 一种面向业务流可配置的规则生成方法 | |
EP3623948B1 (en) | Method and system for code analysis to identify causes of code smells | |
CN108647355A (zh) | 测试用例的展示方法、装置、设备及存储介质 | |
CN113901083B (zh) | 基于多解析器的异构数据源操作资源解析定位方法和设备 | |
CN110427188B (zh) | 单测断言程序的配置方法、装置、设备及存储介质 | |
US10474435B2 (en) | Configuration model parsing for constraint-based systems | |
US10534592B2 (en) | Template expressions for constraint-based systems | |
US8904352B2 (en) | Systems and methods for processing source code during debugging operations | |
CN109710220B (zh) | 关系型数据库查询方法、装置、设备及存储介质 | |
CN113238740B (zh) | 代码生成方法、代码生成装置、存储介质及电子设备 | |
CN113805871A (zh) | 前端代码的生成方法、装置及计算机设备 | |
CN114253995B (zh) | 数据溯源方法、装置、设备及计算机可读存储介质 | |
US20190026087A1 (en) | Method and apparatus for compiling computer language | |
JP2017174418A (ja) | モデルチェックのためのデータ構造抽象化 | |
CN112230904A (zh) | 基于接口文档的代码生成方法、装置、存储介质及服务器 | |
CN108897678B (zh) | 静态代码检测方法和静态代码检测系统、存储设备 | |
CN110928535B (zh) | 衍生变量部署方法、装置、设备及可读存储介质 | |
CN112948400A (zh) | 一种数据库管理方法、数据库管理装置及终端设备 | |
CN111008011A (zh) | 一个面向电力平台应用开发的系统构建器 | |
CN114385145A (zh) | 一种Web系统后端架构设计方法及计算机设备 | |
CN110737642B (zh) | 数据库信息分析方法、装置、计算机装置及存储介质 | |
US20060005174A1 (en) | Defining hierarchical structures with markup languages and reflection | |
CN113050935A (zh) | 生成混入对象的方法、装置、计算设备及计算机可读存储介质 | |
Semenov et al. | Obfuscated Code Quality Measurement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |