公式引擎开发方法、装置、电子设备和存储介质制造方法及图纸

技术编号:28558735 阅读:16 留言:0更新日期:2021-05-25 17:53
本申请提供一种公式引擎开发方法、装置、电子设备和存储介质,用以实现定义多个不同类型计算元素,可以灵活输入参数、定义变量作为辅助元素参与计算,根据变量的定义多层条件分支判断运行不同的计算语句,输出计算元素值的复杂公式引擎。方法包括:扫描公式定义语句,按照预设提取规则提取公式定义语句中的公式要素;其中,公式要素包括变量、公式元素和公式表达式;根据公式要素构造计算令牌,并将计算令牌压入堆栈;循环提取堆栈中的计算令牌,匹配公式表达式;根据公式表达式更新变量和公式元素,完成公式计算。

【技术实现步骤摘要】
公式引擎开发方法、装置、电子设备和存储介质
本申请涉及计算机
,具体而言,涉及一种公式引擎开发方法、装置、电子设备和存储介质。
技术介绍
现有针对企业ERP(EnterpriseResourcePlanning,企业资源计划)的数据计算需求,有如下两种实现方式:1、在ERP里预设好每种计算需求的代码,根据需求去执行相应的代码,如果有新的计算需求或计算规则发生变化时,必须要修改程序代码,适应性差,耗时长,对企业的变化需求响应不及时,影响企业工作效率。2、采用公式引擎,现有公式引擎只能支持通过传入一定的参数进行加减乘除及数学函数的表达式计算,输出一个数值的计算结果,不能进行条件判断运行不同的分支,根据条件计算不同的结果,不能灵活的定义变量,在公式引擎计算过程中根据需要获取变量值作为参数,无法满足企业的ERP的复杂计算需求。
技术实现思路
本申请实施例的目的在于提供一种公式引擎开发方法、装置、电子设备和非暂态电子设备可读存储介质,用以实现定义多个不同类型计算元素,可以灵活输入参数、定义变量作为辅助元素参与计算,根据变量的定义多层条件分支判断运行不同的计算语句,输出计算元素值的复杂公式引擎。第一方面,本专利技术实施例提供一种公式引擎开发方法,包括:扫描公式定义语句,按照预设提取规则提取公式定义语句中的公式要素;其中,公式要素包括变量、公式元素和公式表达式;根据公式要素构造计算令牌,并将计算令牌压入堆栈;循环提取堆栈中的计算令牌,匹配公式表达式;根据公式表达式更新变量和公式元素,完成公式计算。在可选的实施方式中,扫描公式定义语句,按照预设提取规则提取公式定义语句中的公式要素,包括:根据公式定义语句,获取公式要素;将公式要素按照预设类别进行拆分;根据预设提取规则,确定拆分后的公式要素的提取优先级;根据提取优先级,提取公式要素。在可选的实施方式中,公式要素包括辅助元素,辅助元素用于定义公式的输入参数;循环提取堆栈中的计算令牌,匹配公式表达式,包括:根据相邻的计算令牌,判断计算令牌中是否存在公式表达式;若计算令牌中存在公式表达式,则提取公式表达式;根据公式表达式,匹配公式表达式配套的辅助参数。在可选的实施方式中,公式表达式包括条件表达式;循环提取堆栈中的计算令牌,匹配公式表达式,还包括:判断公式表达式是否为条件表达式;若公式表达式不是条件表达式,则根据公式表达式的类型计算表达式值,赋予变量与计算元素;若公式表达式是条件表达式,则根据条件表达式提取下一步条件分支表达式。第二方面,本专利技术实施例提供一种公式引擎开发装置,包括:第一提取模块,用于扫描公式定义语句,按照预设提取规则提取公式定义语句中的公式要素;其中,公式要素包括变量、公式元素和公式表达式;第一构造模块,用于根据公式要素构造计算令牌,并将计算令牌压入堆栈;第一匹配模块,用于循环提取堆栈中的计算令牌,匹配公式表达式;第一计算模块,用于根据公式表达式更新变量和公式元素,完成公式计算。在可选的实施方式中,第一提取模块还用于:根据公式定义语句,获取公式要素;将公式要素按照预设类别进行拆分;根据预设提取规则,确定拆分后的公式要素的提取优先级;根据提取优先级,提取公式要素。在可选的实施方式中,公式要素包括辅助元素,辅助元素用于定义公式的输入参数;第一匹配模块还用于:根据相邻的计算令牌,判断计算令牌中是否存在公式表达式;若计算令牌中存在公式表达式,则提取公式表达式;根据公式表达式,匹配公式表达式配套的辅助参数。在可选的实施方式中,公式表达式包括条件表达式;第一计算模块还用于:判断公式表达式是否为条件表达式;若公式表达式不是条件表达式,则根据公式表达式的类型计算表达式值,赋予变量与计算元素;若公式表达式是条件表达式,则根据条件表达式提取下一步条件分支表达式。第三方面,本专利技术实施例提供一种电子设备,包括:存储器,用以存储计算机程序;处理器,用以执行如前述实施方式中任一项的方法。第四方面,本专利技术实施例提供一种非暂态电子设备可读存储介质,包括:程序,当其藉由电子设备运行时,使得电子设备执行前述实施方式中任一项的方法。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本申请实施例提供的一种电子设备的结构示意图;图2为本申请实施例提供的一种公式引擎开发方法的流程图;图3为本申请实施例提供的一种公式引擎开发装置的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。如图1所示,本实施例提供一种电子设备,包括:至少一个处理器11和存储器12,图1中以一个处理器为例。处理器11和存储器12通过总线10连接,存储器12存储有可被处理器11执行的指令,指令被处理器11执行。于一实施例中,电子设备可以是手机、笔记本电脑等设备。以实现一种定义多个不同类型计算元素,可以灵活输入参数、定义变量作为辅助元素参与计算,根据变量的定义多层条件分支判断运行不同的计算语句,输出计算元素值的复杂公式引擎。支持多计算元素,可以在一个公式里同时计算出一组计算结果,如在计算物业费金额时可以同时计算出它的优惠金额,应缴费日期、单价等,满足企业的各种数据计算场景。公式语句中计算元素、变量名、条件语句、逻辑操作均采用可汉字,可读性好,易于维护,能够满足物业费、阶梯水电费、停车费、资产折旧费、考勤、休假、工资计算等各种不断变化的复杂的企业ERP数据计算需求。如图2所示,其为本申请实施例提供的一种公式引擎开发方法的流程图,该方法可由图1所示的电子设备来执行,以实现一种定义多个不同类型计算元素,可以灵活输入参数、定义变量作为辅助元素参与计算,根据变量的定义多层条件分支判断运行不同的计算语句,输出计算元素值的复杂公式引擎。该方法包括如下步骤:步骤201:扫描公式定义语句,按照预设提取规则提取公式定义语句中的公式要素。在本步骤中,预设提取规则用于规定需要提取哪些公式要素,预设提取规则可以通过正则表达式定义,正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,可以通过正则表达式匹配公式要素列表,提取公式定义语句中的公式要素。公式要素包括变量、公式元素和公式表达式,除常规的+、-、*、/、=、>、>=、<、<=、<>、(、)及且或等逻辑操作及数学函数、日期函数、字符函数等基础计算功能外,定义数值、字符、日期变量,进行中间计算结果处理,支持SQL取数函数,可以在公式计算过程中获取SQL语句的值赋予变量。于一实施例中,公式引擎的要素可以包括:1、计算元素,定义公式的计算结果目标,支持定本文档来自技高网...

【技术保护点】
1.一种公式引擎开发方法,其特征在于,包括:/n扫描公式定义语句,按照预设提取规则提取所述公式定义语句中的公式要素;其中,所述公式要素包括变量、公式元素和公式表达式;/n根据所述公式要素构造计算令牌,并将所述计算令牌压入堆栈;/n循环提取所述堆栈中的所述计算令牌,匹配所述公式表达式;/n根据所述公式表达式更新所述变量和所述公式元素,完成公式计算。/n

【技术特征摘要】
1.一种公式引擎开发方法,其特征在于,包括:
扫描公式定义语句,按照预设提取规则提取所述公式定义语句中的公式要素;其中,所述公式要素包括变量、公式元素和公式表达式;
根据所述公式要素构造计算令牌,并将所述计算令牌压入堆栈;
循环提取所述堆栈中的所述计算令牌,匹配所述公式表达式;
根据所述公式表达式更新所述变量和所述公式元素,完成公式计算。


2.根据权利要求1所述的方法,其特征在于,所述扫描公式定义语句,按照预设提取规则提取所述公式定义语句中的公式要素,包括:
根据所述公式定义语句,获取所述公式要素;
将所述公式要素按照预设类别进行拆分;
根据所述预设提取规则,确定拆分后的所述公式要素的提取优先级;
根据所述提取优先级,提取所述公式要素。


3.根据权利要求1所述的方法,其特征在于,所述公式要素包括辅助元素,所述辅助元素用于定义公式的输入参数;所述循环提取所述堆栈中的所述计算令牌,匹配所述公式表达式,包括:
根据相邻的所述计算令牌,判断所述计算令牌中是否存在所述公式表达式;
若所述计算令牌中存在所述公式表达式,则提取所述公式表达式;
根据所述公式表达式,匹配所述公式表达式配套的所述辅助元素。


4.根据权利要求1所述的方法,其特征在于,所述公式表达式包括条件表达式;所述循环提取所述堆栈中的所述计算令牌,匹配所述公式表达式,还包括:
判断所述公式表达式是否为条件表达式;
若所述公式表达式不是所述条件表达式,则根据所述公式表达式的类型计算表达式值,赋予变量与计算元素;
若所述公式表达式是所述条件表达式,则根据所述条件表达式提取下一步条件分支表达式。


5.一种公式引擎开发装置,其特征在于,包括:
第一提取模块,用于扫描公式定义语句,按照预设提取规则提取所述公式...

【专利技术属性】
技术研发人员:王建军伍海峰
申请(专利权)人:深圳市极致科技股份有限公司
类型:发明
国别省市:广东;44

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

1