发明内容
本申请实施例提供了基于界面更新的表达式计算方法、装置、设备及介质,用于解决如下技术问题:现有技术缺乏一种更优化的表达式计算方式,以提高进行更新界面数据时的用户体验。
本申请实施例采用下述技术方案:
本申请实施例提供基于界面更新的表达式计算方法。确定更新后字段的值;其中,更新后字段的值用于实时更新界面数据,以及用于表达式函数的计算,并通过计算结果控制界面状态;根据预设字段表达式映射表,查找受更新后字段影响的表达式节点;根据更新后字段的值,执行表达式节点对应的表达式函数,得到最新的表达式值;根据预设表达式应用策略,将最新的表达式值应用于目标字段。
本申请实施例通过确定更新后字段的值,能够实现对界面数据的实时更新,以及,根据更新字段的值能够进行表达式函数计算,以对界面控件进行控制。此外,本申请实施例通过预设字段表达式映射表,实现更新字段与表达式节点的映射关系,并通过表达式节点确定出受影响的表达式函数,以此对表达式函数重新计算得到更新后的值。通过上述方式,本申请实施例能够对通过交互界面进行值对象更新,或者***自动更改数据的两种场景进行数据实时更新,通过一种机制即可实现不同场景下对界面控件的控制。
在本申请的一种实现方式中,确定更新后字段的值之前,还包括:定义表达式结构;其中,表达式结构至少由实体结构、表达式节点以及预设字段表达式映射表中的一项或多项组成;实体结构包括实体对象和字段;字段包含一个值对象,以及操作此值对象的一组Api;其中,值对象与所述界面数据相关;表达式节点至少包含表达式作用的目标字段、表达式函数、预设表达式应用策略中的一项或多项;根据目标字段、表达式函数的计算结果以及预设表达式应用策略,对界面状态进行不同的设置。
本申请实施例通过定义表达式结构,能够将发生更新的字段与受影响的函数表达式快速的进行确定。并且通过表达式节点,还能够确定目标字段,以此快速将计算结果赋予目标字段。通过目标字段值的不同,以实现对界面状态进行不同的设置。
在本申请的一种实现方式中,确定更新后字段的值之后,还包括:根据发生变化后字段的值,将与其相关的表达式函数的值进行更新,具体包括:根据更新字段的名称,在预设字段表达式映射表中查找与更新字段有关联的表达式节点;在表达式节点中找到使用的字段为更新字段的表达式函数;将更新后字段的值赋予所述表达式函数,重新计算得到最新的表达式值。
在本申请的一种实现方式中,将最新的表达式值应用于目标字段,具体包括:根据最新的表达式值对目标字段的值进行更新,以对界面数据进行更新;以及根据最新的表达式值,对与目标字段关联的界面控件进行设置;以及使用最新的表达式值对当前界面状态进行校验,并提示验证信息。
在本申请的一种实现方式中,根据最新的表达式值,对与目标字段关联的界面控件进行设置,具体包括:在最新的表达式值为是的情况下,将与目标字段关联的界面中的控件设置为只读;在最新的表达式值为否的情况下,将与目标字段关联的界面中的控件设置为隐藏。
在本申请的一种实现方式中,使用最新的表达式值对当前界面状态进行校验,并提示验证信息,具体包括:在最新的表达式值为否的情况下,最新的表达式值与当前界面状态不符,并提示验证不通过信息。
在本申请的一种实现方式中,确定更新后字段的值之前,还包括:通过字段值对象的更新,获取更新字段的值;值对象的更新通过用户交互界面进行更新;或者通过调用全局Api接口,获取更新字段的名称与更新后字段的值;调用全局Api接口以获取更新后字段的值,是***自动进行数据更新。
本申请实施例通过一种计算机制,能够实现对通过交互界面进行值对象更新,或者***通过调用全局Api接口,自动进行数据更新两种场景下字段的更新。从而降低计算频率,提升用户体验。
本申请实施例提供一种表达式计算装置,其特征在于,包括:确定单元,确定更新后字段的值;其中,更新后字段的值用于实时更新界面数据,以及用于表达式函数的计算,并通过计算结果控制界面状态;查找单元,根据预设字段表达式映射表,查找受更新后字段影响的表达式节点;表达式值获取单元,根据更新后字段的值,执行表达式节点对应的表达式函数,得到最新的表达式值;应用单元,根据预设表达式应用策略,将最新的表达式值应用于目标字段。
本申请实施例提供一种表达式计算设备,其特征在于,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:确定更新后字段的值;其中,更新后字段的值用于实时更新界面数据,以及用于表达式函数的计算,并通过计算结果控制界面状态;根据预设字段表达式映射表,查找受更新后字段影响的表达式节点;根据更新后字段的值,执行表达式节点对应的表达式函数,得到最新的表达式值;根据预设表达式应用策略,将最新的表达式值应用于目标字段。
本申请实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,计算机可执行指令设置为:确定更新后字段的值;其中,更新后字段的值用于实时更新界面数据,以及用于表达式函数的计算,并通过计算结果控制界面状态;根据预设字段表达式映射表,查找受更新后字段影响的表达式节点;根据更新后字段的值,执行表达式节点对应的表达式函数,得到最新的表达式值;根据预设表达式应用策略,将最新的表达式值应用于目标字段。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:本申请实施例通过确定更新后字段的值,能够实现对界面数据的实时更新,以及,根据更新字段的值能够进行表达式函数计算,以对界面控件进行控制。此外,本申请实施例通过预设字段表达式映射表,实现更新字段与表达式节点的映射关系,并通过表达式节点确定出受影响的表达式函数,以此对表达式函数重新计算得到更新后的值。通过上述方式,本申请实施例能够对通过交互界面进行值对象更新,或者***自动更改数据的两种场景进行数据实时更新,通过一种机制即可实现不同场景下对界面控件的控制。
具体实施方式
本申请实施例提供基于界面更新的表达式计算方法、装置、设备及介质。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
现有的软件开发过程中,往往需要根据字段值变化实时更新界面数据。对界面UI元素进行实时控制等操作,如果频繁进行此类大量操作,势必会造成性能问题而影响用户体验。
因此,可以采用仅在用户更改某字段值时才进行此类计算,从而降低计算频率,提升用户体验。但是在软件开发过程中,还会存在由***发起数据变化的场景。现有技术难以通过一种机制对用户更改字段,以及***更改数据两种场景中的数据变化进行处理。
为了解决上述问题,本申请实施例提供基于界面更新的表达式计算方法、装置、设备及存储介质。通过更新后的字段值,以及预设字段表达式映射表,查找更新后的字段所对应的表达式节点。并将更新后的字段值代入表达式函数以获取最新的表达式值。本申请实施例通过上述方法,能够在用户进行值对象更改或者***进行数据更改的情况下,都能快速定位更新的字段,从而进行数据处理。并且,本申请实施例能够根据预设表达式应用策略,将得到的最新的表达式值应用于目标字段,进而根据预设规则快速进行数据更新以及界面定制。
下面通过附图对本申请实施例提出的技术方案进行详细的说明。
图1为本申请实施例提供的基于界面更新的表达式计算方法流程图。如图1所示,表达式计算方法包括如下步骤:
S101、处理器确定更新后字段的值,其中,更新后字段的值用于实时更新界面数据,以及用于表达式函数的计算,并通过计算结果控制界面状态。
在本申请的一个实施例中,先定义表达式结构。其中,表达式结构至少由实体结构、表达式节点以及预设字段表达式映射表中的一项或多项组成。
在本申请的一个实施例中,实体结构包括实体对象和字段。其中,字段隶属于实体对象。
具体的,字段包含一个值对象,以及操作此值对象的一组Api。表1为本申请实施例对字段组成的描述。
表1
如表1所示,字段包含一个值对象以及一组Api,其中,值对象与界面数据相关,界面数据可以根据值对象的更新进行更改。Api接口名称分别为获取值与更新值。获取值为返回字段包含的值对象的值,其中,返回值为字段值对象的值。更新值为更新字段值对象的值,包含序号,如参数一,以及包含参数,如新值对象,并以此新值对象更新字段包含的值对象。
在本申请的一个实施例中,表达式节点至少包含表达式作用的目标字段、表达式函数、预设表达式应用策略中的一项或多项。根据目标字段、表达式函数的计算结果以及预设表达式应用策略,对界面状态进行不同的设置。
表2为本申请实施例对表达式节点的组成描述。
属性名称 |
目标字段 |
属性描述 |
表达式作用的目标字段 |
属性名称 |
表达式函数 |
属性描述 |
一个纯函数,用于计算表达式的值 |
属性名称 |
表达式应用策略 |
属性描述 |
描述应用表达式结果的策略 |
表2
如表2所示,表达式节点包含的目标字段为表达式作用的目标字段。包含的表达式函数为一个纯函数,用于计算表达式的值。包含的表达式应用策略,为描述应用表达式结果的策略。
在本申请的一个实施例中,表达式结构中的预设字段表达式映射表,包括表达式的相关字段与表达式节点的映射关系。
具体的,在字段发生更新的情况下,可以通过预设字段表达式映射表查找受更新字段影响的表达式节点。从而,确定查找到的表达式节点对应的表达式函数,通过对表达式函数重新进行计算,就可以获取最新的表达式值。
在本申请的一个实施例中,表达式的相关字段为表达式函数中使用的字段,字段的值发生变化后,会响应表达式的值。
S102、根据预设字段表达式映射表,查找受更新后字段影响的表达式节点。
在本申请的一个实施例中,可以通过改变表达式相关字段的值触发表达式计算,值对象的更新通过用户交互界面进行更新。
具体的,在用户通过界面交互更改字段值,以对界面UI元素进行实时控制等操作时,字段值对象的更新值即为更新后字段的值。在预设字段表达式映射表中查找因字段值更新后受到影响的表达式节点。
在本申请的另一个实施例中,在***发起数据变化的场景下,通过计算表达式Api触发表达式计算,调用全局Api是***自动进行数据更新。
具体的,在***发起数据变化的情况下,调用全局Api接口,获取数据更新字段的名称与更新后字段的值。根据更新字段的名称,在预设字段表达式映射表中查找因字段值更新后收到影响的表达式节点。
表3为本申请实施例对计算表达式Api触发表达式计算的描述。
表3
如表3所示,先获取到字段名称为参数一的待触发表达式计算的相关字段名。根据相关字段名,在表达式映射表中查找受此字段影响的所有表达式节点,根据表达式节点确定受影响的表达式函数,逐个计算受影响的表达式函数值。
需要说明的是,待触发表达式计算的相关字段为实体结构中的字段。
S103、根据更新后字段的值,执行所述表达式节点对应的表达式函数,获取最新的表达式值。
在本申请的一个实施例中,根据更新字段的名称,在预设字段表达式映射表中查找与更新字段有关联的表达式节点。在表达式节点中找到使用的字段为更新字段的表达式函数;将更新后字段的值赋予表达式函数,重新计算得到最新的表达式值。
具体的,预设字段表达式映射表中包含字段名称与表达式节点,根据字段值更新的字段名称,即可确定相对应的表达式节点。在表达式节点中包含表达式作用的目标字段、表达式函数、预设表达式应用策略,因此,将更新后字段的值赋予表达式节点中的表达式函数,重新计算表达式函数,即可得到最新的表达式值。将得到的表达式值根据预置的表达式应用策略,应用于当前表达式节点中包含的目标字段,即可对当前界面数据进行更新,并对界面控件进行控制。
S104、根据预设表达式应用策略,将最新的表达式值应用于目标字段。
在本申请的一个实施例中,将最新的表达式值应用于目标字段,即可通过目标字段值的变化对界面状态进行设置,执行联动计算赋值。
在本申请的一个实施例中,根据最新的表达式值对目标字段的值进行更新,以对界面数据进行更新。
例如,定义实体对象Entity,其中Entity下包含A、B、C三个数字类型字段。定义表达式节点CalculateExpressionNode,其中包含计算函数如下:Function CalculateCValue(){
return A.getValue()+B.getValue();
}
设定目标字段为C,表达式应用策略为:将表达式计算结果赋值给C。执行上述计算函数后,就可以调用B.setValue(100)与A.setValue(8)的值进行相加,并将计算结构赋予目标字段C,此时,目标字段C获得值108。
在本申请的一个实施例中,根据最新的表达式值,对与目标字段关联的界面控件进行设置。
具体的,在最新的表达式值为是的情况下,将与目标字段关联的界面中的控件设置为只读。在最新的表达式值为否的情况下,将与目标字段关联的界面中的控件设置为隐藏。
例如,得到的目标字段的值为108,大于预设值100,此时得到的计算结果为是。并将目标字段关联的界面控件设置为只读状态。若得到的目标字段的值为90,小于预设值100,此时得到的计算结果为否。并将与目标字段关联的界面中的控件设置为隐藏状态。
在本申请的一个实施例中,将最新的表达式值与当前界面状态进行校验,并提示验证信息。
具体的,在最新的表达式值为否的情况下,最新的表达式值与当前界面状态不符,并提示验证不通过信息。
通过上述方式,本申请实施例能够对通过交互界面进行值对象更新,或者***自动更改数据的两种场景进行数据实时更新,通过一种机制即可实现不同场景下对界面控件的控制。既满足用户交互场景,又满足***发起数据变化的数据处理。
图2为本申请实施例提供的基于界面更新的表达式计算执行流程图。如图2所示,表达式计算执行过程如下:
在本申请的一个实施例中,先定义表达式结构,以便通过更新的字段可以快速定位受影响的表达式函数。进而通过重新计算表达式函数的值,对界面数据进行更新,并对界面控件进行设置。
在本申请的一个实施例中,通过交互界面,用户对相关字段的值进行更改,或者调用全局Api,***自动对数据进行更改。确定进行数据更新的字段,通过预设字段表达式映射表查找受更新字段影响的表达式节点。
在本申请的一个实施例中,根据查找到的表达式节点确定出受影响的表达式函数,将更新后的字段值代入表达式函数进行计算,以获取最新的表达式值。将获取的最新的表达式值根据预设的表达式应用策略应用于目标字段,由此实现对界面数据的更改以及对界面控件状态的设置。
图3为本申请实施例提供的基于界面更新的表达式计算***框图。如图3所示,
在本申请的一个实施例中,实体结构中包含字段。
在本申请的一个实施例中,字段字段表达式映射表包含字段与表达式节点。通过字段表达式映射表可以清楚的确定因字段更新而受影响的表达式节点。进而可以通过表达式节点快速定位受影响的表达式函数。
在本申请的一个实施例中,表达式节点中包含字段、表达式函数、表达式应用策略。将表达式函数根据更新的数值重新计算,得到最新的表达式值。将得到的最新的表达式值根据表达式应用策略应用于目标字段,即可实现对界面数据的更新以及对界面相关控件的设置。
图4为本申请实施例提供的基于界面更新的表达式计算装置结构图。装置包括:确定单元S401、查找单元S402、表达式值获取单元S403、应用单元S404。
确定单元S401,确定更新后字段的值;其中,所述更新后字段的值用于实时更新界面数据,以及用于表达式函数的计算,并通过计算结果控制界面状态;
查找单元S402,根据预设字段表达式映射表,查找受更新后字段影响的表达式节点;
表达式值获取单元S403,根据所述更新后字段的值,执行所述表达式节点对应的表达式函数,获取最新的表达式值;
应用单元S404,根据预设表达式应用策略,将所述最新的表达式值应用于目标字段。
图5为本申请实施例提供的基于界面更新的表达式计算设备的结构示意图,设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
确定更新后字段的值;其中,所述更新后字段的值用于实时更新界面数据,以及用于表达式函数的计算,并通过计算结果控制界面状态;
根据预设字段表达式映射表,查找受更新后字段影响的表达式节点;
根据所述更新后字段的值,执行所述表达式节点对应的表达式函数,获取最新的表达式值;
根据预设表达式应用策略,将所述最新的表达式值应用于目标字段。
本申请实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
确定更新后字段的值;其中,所述更新后字段的值用于实时更新界面数据,以及用于表达式函数的计算,并通过计算结果控制界面状态;
根据预设字段表达式映射表,查找受更新后字段影响的表达式节点;
根据所述更新后字段的值,执行所述表达式节点对应的表达式函数,获取最新的表达式值;
根据预设表达式应用策略,将所述最新的表达式值应用于目标字段。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请的实施例可以有各种更改和变化。凡在本申请实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。