本发明涉及表单生成的技术领域,尤其涉及一种动态表单的高级控件实现方法、装置及系统。
背景技术:
由于html标准本身的约束,比如对于输入长度的约束,或是输入类型的约束(包括数据约束、字母约束、汉字约束等),导致传统表单只能实现简单的输入约束和使用用途,而对于动态表单上用户的灵活需求,不能得到满足。
技术实现要素:
本发明的目的是提供一种动态表单的高级控件实现方法、装置及系统,旨在解决传统表单受html标准拘束、无法满足用户需求的问题。
本发明解决其技术问题所采用的技术方案是:
一种动态表单的高级控件实现方法,包括:
脚本存储步骤:
设置脚本存储的数据结构;数据结构中的字段包括脚本类型;
接收用户输入到动态表单的脚本,作为输入脚本;
根据所述脚本类型,调用与所述脚本类型相应的执行器执行所述输入脚本,对所述输入脚本的合法性进行校验,获取校验结果;所述校验结果包括合法和不合法;
当所述校验结果为合法时,将所述输入脚本保存为合法脚本;
脚本执行步骤:
编写html,实现input控件;
根据所述input控件实现ajax,获取脚本执行请求;
调用服务器端对所述脚本执行请求是否配置动态脚本进行判断,获取判断结果;所述判断结果包括已配置和未配置;
当所述判断结果为已配置时,根据所述脚本类型,调用与所述脚本类型相应的执行器执行所述合法脚本,获取脚本执行结果;所述脚本执行结果包括返回结构;
根据所述返回结构,通过javascript调整所述动态表单的页面数据。
在上述实施例的基础上,进一步地,所述数据结构中的字段还包括html控件标识和脚本内容。
在上述任意实施例的基础上,进一步地,所述脚本类型包括Groovy、Python和Ruby。
一种动态表单的高级控件实现装置,包括:
脚本存储模块包括:
设置单元,用于设置脚本存储的数据结构;数据结构中的字段包括脚本类型;
输入单元,用于接收用户输入到动态表单的脚本,作为输入脚本;
校验单元,用于根据所述脚本类型,调用与所述脚本类型相应的执行器执行所述输入脚本,对所述输入脚本的合法性进行校验,获取校验结果;所述校验结果包括合法和不合法;
保存单元,用于当所述校验结果为合法时,将所述输入脚本保存为合法脚本;
脚本执行模块包括:
编写单元,用于编写html,实现input控件;
请求单元,用于根据所述input控件实现ajax,获取脚本执行请求;
判断单元,用于调用服务器端对所述脚本执行请求是否配置动态脚本进行判断,获取判断结果;所述判断结果包括已配置和未配置;
执行单元,用于当所述判断结果为已配置时,根据所述脚本类型,调用与所述脚本类型相应的执行器执行所述合法脚本,获取脚本执行结果;所述脚本执行结果包括返回结构;
调整单元,用于根据所述返回结构,通过javascript调整所述动态表单的页面数据。
在上述实施例的基础上,进一步地,所述数据结构中的字段还包括html控件标识和脚本内容。
在上述任意实施例的基础上,进一步地,所述脚本类型包括Groovy、Python和Ruby。
一种动态表单的高级控件实现系统,包括:
上述任一项动态表单的高级控件实现装置;
服务器端,用于受判断单元调用,对所述脚本执行请求是否配置动态脚本进行判断,获取判断结果并发送到判断单元;
执行器,用于受校验单元调用,执行所述输入脚本,对所述输入脚本的合法性进行校验,获取校验结果并发送到校验单元;以及受执行单元调用,执行所述合法脚本,获取脚本执行结果并发送到执行单元。
在上述实施例的基础上,进一步地,还包括:
存储器,用于存储所述保存单元发送的所述合法脚本。
在上述任意实施例的基础上,进一步地,所述数据结构中的字段还包括html控件标识和脚本内容。
在上述任意实施例的基础上,进一步地,所述脚本类型包括Groovy、Python和Ruby。
本发明的有益效果是:
本发明提供了一种动态表单的高级控件实现方法、装置及系统,实现了一个允许用户自定义计算公式的入口,允许用户输入不同脚本类型的脚本代码,这样在用户填写表单时,就可以调用与脚本类型相应的执行器执行脚本,再把脚本运行结果回填到表单中,从而灵活地实现用户在动态表单上应用高级控件的需求。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1示出了本发明实施例提供的一种动态表单的高级控件实现方法的流程图;
图2示出了本发明实施例提供的一种动态表单的高级控件实现装置的结构示意图;
图3示出了本发明实施例提供的一种动态表单的高级控件实现系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不限定本发明。
具体实施例一
如图1和图2所示,本发明实施例提供了一种动态表单的高级控件实现方法,包括:
脚本存储步骤S101:
步骤S1011,设置脚本存储的数据结构;数据结构中的字段包括脚本类型;
步骤S1012,接收用户输入到动态表单的脚本,作为输入脚本;
步骤S1013,根据所述脚本类型,调用与所述脚本类型相应的执行器执行所述输入脚本,对所述输入脚本的合法性进行校验,获取校验结果;所述校验结果包括合法和不合法;
步骤S1014,当所述校验结果为合法时,将所述输入脚本保存为合法脚本;
脚本执行步骤S102:
步骤S1021,编写html,实现input控件;
步骤S1022,根据所述input控件实现ajax,获取脚本执行请求;
步骤S1023,调用服务器端对所述脚本执行请求是否配置动态脚本进行判断,获取判断结果;所述判断结果包括已配置和未配置;
步骤S1024,当所述判断结果为已配置时,根据所述脚本类型,调用与所述脚本类型相应的执行器执行所述合法脚本,获取脚本执行结果;所述脚本执行结果包括返回结构;
步骤S1025,根据所述返回结构,通过javascript调整所述动态表单的页面数据。
本发明实施例实现了一个允许用户自定义计算公式的入口,允许用户输入不同脚本类型的脚本代码,这样在用户填写表单时,就可以调用与脚本类型相应的执行器执行脚本,再把脚本运行结果回填到表单中,从而灵活地实现用户在动态表单上应用高级控件的需求。
本发明实施例对数据结构中的字段不做限定,优选的,所述数据结构中的字段还可以包括html控件标识和脚本内容。
本发明实施例对脚本类型不做限定,优选的,所述脚本类型包括Groovy、Python和Ruby。当脚本类型为Groovy时,步骤S1013和步骤S1024中所调用的执行器为Groovy执行器。
具体实施例二
如图2所示,本发明实施例提供了一种动态表单的高级控件实现装置,包括:
脚本存储模块201包括:
设置单元2011,用于设置脚本存储的数据结构;数据结构中的字段包括脚本类型;
输入单元2012,用于接收用户输入到动态表单的脚本,作为输入脚本;
校验单元2013,用于根据所述脚本类型,调用与所述脚本类型相应的执行器执行所述输入脚本,对所述输入脚本的合法性进行校验,获取校验结果;所述校验结果包括合法和不合法;
保存单元2014,用于当所述校验结果为合法时,将所述输入脚本保存为合法脚本;
脚本执行模块202包括:
编写单元2021,用于编写html,实现input控件;
请求单元2022,用于根据所述input控件实现ajax,获取脚本执行请求;
判断单元2023,用于调用服务器端对所述脚本执行请求是否配置动态脚本进行判断,获取判断结果;所述判断结果包括已配置和未配置;
执行单元2024,用于当所述判断结果为已配置时,根据所述脚本类型,调用与所述脚本类型相应的执行器执行所述合法脚本,获取脚本执行结果;所述脚本执行结果包括返回结构;
调整单元2025,用于根据所述返回结构,通过javascript调整所述动态表单的页面数据。
本发明实施例对数据结构中的字段不做限定,优选的,所述数据结构中的字段还可以包括html控件标识和脚本内容。
本发明实施例对脚本类型不做限定,优选的,所述脚本类型包括Groovy、Python和Ruby。当脚本类型为Groovy时,步骤S1013和步骤S1024中所调用的执行器为Groovy执行器。
具体实施例三
如图3所示,本发明实施例提供了一种动态表单的高级控件实现系统,包括:
具体实施例二中任一项动态表单的高级控件实现装置301;
服务器端302,用于受判断单元调用,对所述脚本执行请求是否配置动态脚本进行判断,获取判断结果并发送到判断单元;
执行器303,用于受校验单元调用,执行所述输入脚本,对所述输入脚本的合法性进行校验,获取校验结果并发送到校验单元;以及受执行单元调用,执行所述合法脚本,获取脚本执行结果并发送到执行单元。
优选的,本发明实施例还可以包括存储器304,用于存储所述保存单元发送的所述合法脚本。这样做的好处是,便于保存合法脚本,防止合法脚本遗失造成不必要的损失。
本发明实施例对数据结构中的字段不做限定,优选的,所述数据结构中的字段还可以包括html控件标识和脚本内容。
本发明实施例对脚本类型不做限定,优选的,所述脚本类型包括Groovy、Python和Ruby。当脚本类型为Groovy时,步骤S1013和步骤S1024中所调用的执行器为Groovy执行器。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。尽管本发明已进行了一定程度的描述,明显地,在不脱离本发明的精神和范围的条件下,可进行各个条件的适当变化。可以理解,本发明不限于所述实施方案,而归于权利要求的范围,其包括所述每个因素的等同替换。