CN115857927A - 一种基于接口描述语言的联动表单生成方法及装置 - Google Patents
一种基于接口描述语言的联动表单生成方法及装置 Download PDFInfo
- Publication number
- CN115857927A CN115857927A CN202211523629.5A CN202211523629A CN115857927A CN 115857927 A CN115857927 A CN 115857927A CN 202211523629 A CN202211523629 A CN 202211523629A CN 115857927 A CN115857927 A CN 115857927A
- Authority
- CN
- China
- Prior art keywords
- rendering
- code
- renderer
- field
- editing code
- 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
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本申请公开了一种基于接口描述语言的联动表单生成方法及装置,其方法包括根据预设表单需求对至少两个表单选项进行扩展处理;基于经过扩展处理后的至少两个表单选项,获取第一编辑代码;其中,第一编辑代码的编写语言为接口描述语言;当经过扩展处理后的至少两个表单选项中包含国际化资源前缀时,在第一编辑代码中添加与国际化资源前缀对应的第二编辑代码,得到第三编辑代码;基于渲染器将第三编辑代码渲染为目标表单。通过将接口描述语言作为表单的编写语言,并由跨平台渲染器进行渲染,不仅可得到拥有格式化与校验功能的联动表单,还可利用接口描述语言的序列化与反序列化功能,减少开发人员的重复性工作量。
Description
技术领域
本申请属于界面开发技术领域,特别的涉及一种基于接口描述语言的联动表单生成方法及装置。
背景技术
表单是用户界面中常用的数据输入组件,在用户输入需求很多的系统中,表单的数量与复杂度也会急剧增加,这直接导致开发人员在编写表单界面、解析表单数据等方面的工作量急剧上升。
在现有的表单生成技术中,一般采用Json Schema或Xml Schema等方式定义表单,但这种方式需要编写复杂的Schema文件,在编写复杂表单时对开发者或维护者有较高的挑战;其次,还可采用模拟HTML DOM节点的方式,通过使用事件驱动表单样式与数据,但这种方式中使用事件驱动对于开发者要求较高,并伴随有一定的平台局限性,且无法解决在编写表单界面和解析表单数据之间的重复工作问题。
发明内容
本申请为解决上述提到的在编写复杂表单时对开发者或维护者有较高的挑战、使用事件驱动对于开发者要求较高,并伴随有一定的平台局限性,且无法解决在编写表单界面和解析表单数据之间的重复工作问题,提出一种基于接口描述语言的联动表单生成方法及装置,其技术方案如下:
第一方面,本申请实施例提供了一种基于接口描述语言的联动表单生成方法,包括:
根据预设表单需求对至少两个表单选项进行扩展处理;
基于经过扩展处理后的至少两个表单选项,获取第一编辑代码;其中,第一编辑代码的编写语言为接口描述语言;
当经过扩展处理后的至少两个表单选项中包含国际化资源前缀时,在第一编辑代码中添加与国际化资源前缀对应的第二编辑代码,得到第三编辑代码;
基于渲染器将第三编辑代码渲染为目标表单。
在第一方面的一种可选方案中,在当经过扩展处理后的至少两个表单选项中包含国际化资源前缀时,在第一编辑代码中添加与国际化资源前缀对应的第二编辑代码,得到第三编辑代码之后,在基于渲染器将第三编辑代码渲染为目标表单之前,还包括:
在经过扩展处理后的至少两个表单选项中筛选出消息渲染器选项,并根据消息渲染器选项确定渲染表单容器;
基于渲染器将第三编辑代码渲染为目标表单,包括:
基于渲染器以及渲染表单容器,将第三编辑代码渲染为目标表单。
在第一方面的又一种可选方案中,基于渲染器以及渲染表单容器,将第三编辑代码渲染为目标表单,包括:
基于第二编辑代码加载国际化资源;
在第三编辑代码中获取第一描述符代码,并对第一描述符代码的字段进行深度优先遍历处理,得到第一描述符代码中与每个字段对应的字段描述符;
当检测到任意一个字段描述符的隐藏字段选项为生效时,对与字段描述符对应的字段进行第一隐藏处理;
基于渲染器以及渲染表单容器,将国际化资源以及经过第一隐藏处理后的第三编辑代码渲染为目标表单。
在第一方面的又一种可选方案中,基于渲染器以及渲染表单容器,将国际化资源以及经过第一隐藏处理后的第三编辑代码渲染为目标表单,包括:
基于渲染器进行对与国际化资源以及经过第一隐藏处理后的第三编辑代码渲染对应的组件进行布局处理;
当检测到国际化资源以及经过第一隐藏处理后的第三编辑代码的字段位置不处于显示区域时,对不处于显示区域的国际化资源以及经过第一隐藏处理后的第三编辑代码的字段进行第二隐藏处理;
基于渲染器以及渲染表单容器,将经过第二隐藏处理后的国际化资源以及第三编辑代码渲染为目标表单。
在第一方面的又一种可选方案中,基于渲染器以及渲染表单容器,将经过第二隐藏处理后的国际化资源以及第三编辑代码渲染为目标表单,包括:
在经过第二隐藏处理后的国际化资源以及第三编辑代码中获取第二描述符代码,并在第二描述符代码中确定出与字段对应的组件选项;
基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染,得到目标表单。
在第一方面的又一种可选方案中,在基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染之后,在得到目标表单之前,还包括:
在第二描述符代码中确定出与字段对应的风格选项;
基于渲染器、渲染表单容器以及与字段对应的风格选项,对经过渲染处理后的字段输入组件进行样式渲染,得到目标表单。
在第一方面的又一种可选方案中,在基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染,得到目标表单之前,还包括:
在第二描述符代码中确定出与字段对应的自动完成选项;
加载出与自动完成选项对应的候选字段组件;
在基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染,得到目标表单之后,还包括:
当检测到用户的输入动作时,基于渲染器对候选字段组件进行渲染。
第二方面,本申请实施例提供了一种基于接口描述语言的联动表单生成装置,包括:
扩展处理模块,用于根据预设表单需求对至少两个表单选项进行扩展处理;
第一确定模块,用于基于经过扩展处理后的至少两个表单选项,获取第一编辑代码;其中,第一编辑代码的编写语言为接口描述语言;
第二确定模块,用于当经过扩展处理后的至少两个表单选项中包含国际化资源前缀时,在第一编辑代码中添加与国际化资源前缀对应的第二编辑代码,得到第三编辑代码;
表单生成模块,用于基于渲染器将第三编辑代码渲染为目标表单。
在第二方面的一种可选方案中,装置还包括:
在当经过扩展处理后的至少两个表单选项中包含国际化资源前缀时,在第一编辑代码中添加与国际化资源前缀对应的第二编辑代码,得到第三编辑代码之后,在基于渲染器将第三编辑代码渲染为目标表单之前,在经过扩展处理后的至少两个表单选项中筛选出消息渲染器选项,并根据消息渲染器选项确定渲染表单容器;
基于渲染器将第三编辑代码渲染为目标表单,包括:
基于渲染器以及渲染表单容器,将第三编辑代码渲染为目标表单。
在第二方面的又一种可选方案中,表单生成模块具体包括:
基于第二编辑代码加载国际化资源;
在第三编辑代码中获取第一描述符代码,并对第一描述符代码的字段进行深度优先遍历处理,得到第一描述符代码中与每个字段对应的字段描述符;
当检测到任意一个字段描述符的隐藏字段选项为生效时,对与字段描述符对应的字段进行第一隐藏处理;
基于渲染器以及渲染表单容器,将国际化资源以及经过第一隐藏处理后的第三编辑代码渲染为目标表单。
在第二方面的又一种可选方案中,表单生成模块还包括:
基于渲染器进行对与国际化资源以及经过第一隐藏处理后的第三编辑代码渲染对应的组件进行布局处理;
当检测到国际化资源以及经过第一隐藏处理后的第三编辑代码的字段位置不处于显示区域时,对不处于显示区域的国际化资源以及经过第一隐藏处理后的第三编辑代码的字段进行第二隐藏处理;
基于渲染器以及渲染表单容器,将经过第二隐藏处理后的国际化资源以及第三编辑代码渲染为目标表单。
在第二方面的又一种可选方案中,表单生成模块还包括:
在经过第二隐藏处理后的国际化资源以及第三编辑代码中获取第二描述符代码,并在第二描述符代码中确定出与字段对应的组件选项;
基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染,得到目标表单。
在第二方面的又一种可选方案中,表单生成模块还包括:
在基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染之后,在得到目标表单之前,在第二描述符代码中确定出与字段对应的风格选项;
基于渲染器、渲染表单容器以及与字段对应的风格选项,对经过渲染处理后的字段输入组件进行样式渲染,得到目标表单。
在第二方面的又一种可选方案中,装置还包括:
在基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染,得到目标表单之前,在第二描述符代码中确定出与字段对应的自动完成选项;
加载出与自动完成选项对应的候选字段组件;
在基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染,得到目标表单之后,还包括:
当检测到用户的输入动作时,基于渲染器对候选字段组件进行渲染。
第三方面,本申请实施例还提供了一种基于接口描述语言的联动表单生成装置,包括处理器以及存储器;
处理器与存储器连接;
存储器,用于存储可执行程序代码;
处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于实现本申请实施例第一方面或第一方面的任意一种实现方式提供的基于接口描述语言的联动表单生成方法。
第四方面,本申请实施例提供了一种计算机存储介质,计算机存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,可实现本申请实施例第一方面或第一方面的任意一种实现方式提供的基于接口描述语言的联动表单生成方法。
在本申请实施例中,可在生成表单时,根据预设表单需求对至少两个表单选项进行扩展处理;基于经过扩展处理后的至少两个表单选项,获取第一编辑代码;其中,第一编辑代码的编写语言为接口描述语言;当经过扩展处理后的至少两个表单选项中包含国际化资源前缀时,在第一编辑代码中添加与国际化资源前缀对应的第二编辑代码,得到第三编辑代码;基于渲染器将第三编辑代码渲染为目标表单。通过将接口描述语言作为表单的编写语言,并由跨平台渲染器进行渲染,不仅可得到拥有格式化与校验功能的联动表单,还可利用接口描述语言的序列化与反序列化功能,减少开发人员的重复性工作量。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于接口描述语言的联动表单生成方法的整体流程示意图;
图2为本申请实施例提供的一种基于接口描述语言的联动表单效果示意图;
图3为本申请实施例提供的又一种基于接口描述语言的联动表单效果示意图;
图4为本申请实施例提供的一种基于接口描述语言的联动表单生成装置的结构示意图;
图5为本申请实施例提供的又一种基于接口描述语言的联动表单生成装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在下述介绍中,术语“第一”、“第二”仅为用于描述的目的,而不能理解为指示或暗示相对重要性。下述介绍提供了本申请的多个实施例,不同实施例之间可以替换或者合并组合,因此本申请也可认为包含所记载的相同和/或不同实施例的所有可能组合。因而,如果一个实施例包含特征A、B、C,另一个实施例包含特征B、D,那么本申请也应视为包括含有A、B、C、D的一个或多个所有其他可能的组合的实施例,尽管该实施例可能并未在以下内容中有明确的文字记载。
下面的描述提供了示例,并且不对权利要求书中阐述的范围、适用性或示例进行限制。可以在不脱离本申请内容的范围的情况下,对描述的元素的功能和布置做出改变。各个示例可以适当省略、替代或添加各种过程或组件。例如所描述的方法可以以所描述的顺序不同的顺序来执行,并且可以添加、省略或组合各种步骤。此外,可以将关于一些示例描述的特征组合到其他示例中。
请参阅图1,图1示出了本申请实施例提供的一种基于接口描述语言的联动表单生成方法的整体流程示意图。
如图1所示,该基于接口描述语言的联动表单生成方法至少可以包括以下步骤:
步骤102、根据预设表单需求对至少两个表单选项进行扩展处理。
在本申请实施例中,该基于接口描述语言的联动表单生成方法可以但不局限于应用在服务器,该服务器可在生成表单的过程中获取由开发人员根据接口描述语言所编辑的代码,并结合跨平台渲染器对该编辑代码进行渲染以生成表单,且在用户填写表单的过程中还可根据用户的输入动作渲染出隐藏的字段组件,不仅实现表单的动态性,还可利用接口描述语言的序列化与反序列化功能,极大的减少开发人员的重复性工作量。可以理解的是,此处接口描述语言可以但不局限于为Protobuf,其是由Google提供的一个具有高效的协议数据交换格式工具库,且提供了C++、java、python语言的支持。
在本申请实施例中提到的服务器,可以是平板电脑、桌面型、膝上型、笔记本电脑、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、手持计算机、上网本、个人数字助理(Personal Digital Assistant,PDA)、路由设备以及虚拟现实设备等。
具体地,在生成表单时,可先根据预设表单需求对表单的至少两个表单选项进行扩展处理,该至少两个表单选项可以但不局限于包括消息选项、字段选项、枚举选项以及择一选项等任意至少两种。其中,预设表单需求可理解为所选择的渲染器需求以及预定义的表单功能,该预定义的表单功能可以但不局限于填写用户身份信息等等。
此处以消息选项的扩展处理方式为例,可以但不局限于参照如下所示的示例编辑代码:
extend google.protobuf.MessageOptions {
optional MessageRenderer default_renderer = 4000;
optional string i18n_prefix = 4001;
}
其中,第二排可理解为默认消息渲染器,也即选择渲染消息的容器,例如但不局限于可为页面形式或平铺内容形式;第三排可理解为国际化资源前缀,也即拼接国际化资源字段。
此处还可以字段选项的扩展处理方式为例,可以但不局限于参照如下所示的示例编辑代码:
extend google.protobuf.FieldOptions {
optional FieldComponent component = 4100;
optional google.protobuf.Struct component_options = 4101;
optional string required_condition = 4102;
optional bool hide = 4103;
optional string hide_condition = 4104;
repeated FieldValidator validators = 4105;
repeated string custom_validators = 4106;
repeated string auto_completers = 4107;
optional FieldStyle field_style = 4108;
optional FieldFormatter formatter = 4109;
optional string custom_formatter = 4110;
optional double min_size = 4150;
optional double max_size = 4151;
optional double default_size = 4152;
optional string size_condition = 4153;
}
其中,上述示例编辑代码具体可涉及到渲染字段输入框的组件及其选项、字段的显示控制、字段的启用判断、字段的内容检查器、字段的自动完成提示以及字段样式等。
此处还可以择一选项的扩展处理方式为例,可以但不局限于参照如下所示的示例编辑代码:
extend google.protobuf.OneofOptions {
optional OneOfComponent selector = 4200;
optional uint64 default_option = 4201;
optional bool auto_fallback = 4202;
}
其中,上述示例编辑代码可对应为在确定可选字段数量为0时,隐藏选择器;在确定可选字段数量为1时,将选择器渲染为普通字段标签。
步骤104、基于经过扩展处理后的至少两个表单选项,获取第一编辑代码。
具体地,在对至少两个表单选项进行扩展处理之后,可获取由开发人员所编辑的第一编辑代码,此处以表单功能为学生信息填报表单为例,可以但不局限于参照如下所示的示例编辑代码:
message StudentInformation {
option (default_renderer) = MESSAGE_RENDERER_PAGE;
string first_name = 1 [ (required) = true ];
string last_name = 2 [ (required) = true ];
Gender gender = 8 [ (required) = true ];
google.protobuf.Timestamp birthday = 3 [
(required) = true,
(component) = FIELD_COMPONENT_DATE_TIME,
(component_options) = {
fields : [
{
key : "default",
value : {string_value : "now"}
},
{
key : "hideTime",
value : {bool_value : true}
}
]
}
];
oneof identification {
option (selector) = ONE_OF_COMPONENT_DROPDOWN;
option (default_option) = 4;
string id_number = 4
[(required)=true,(validators)= FIELD_VALIDATOR_ID_NUMBER ];
string passport_number = 5
[(required)=true,(validators)=FIELD_VALIDATOR_NUMBERS_LETTERS ];
}
string citizenship = 7 [
(required_condition) = ".identification == 5",
(hide_condition) = ".identification != 5",
(auto_completers) = "country/region"
];
repeated Parent parents = 6 [ (max_size) = 2 ];
message Parent {
option (default_renderer) = MESSAGE_RENDERER_FLAT;
}
enum Gender {
GENDER_UNSPECIFIED = 0;
}
}
其中,上述示例编辑代码可对应为在独立页面中,依次必须填写的信息包括名、姓、性别、出生日期、身份信息以及护照号,依次可选填写的信息包括父母信息;该出生日期具体精确到日,也即隐藏时分秒部分;该身份信息对应的选择器组件为下拉菜单,也即填写的身份信息为身份证号;该护照号设定有相应的格式,且相应的国家/地区数据可作为自动补全信息。
此处可参阅图2示出的本申请实施例提供的一种基于接口描述语言的联动表单效果示意图。如图2所示,该表单中需要必须填写的信息依次包括名、姓、性别、出生日期、身份信息以及身份证号,其中,该性别信息对应的选择器为下拉菜单;该出生日期具体精确到日,且对应的选择器为日历菜单;该身份信息对应的选择器为下拉菜单,且填写的身份证号设定有相应的格式。
可以理解的是,当填写的身份证号格式错误时,表单中可对该格式错误的身份证号进行标记处理,例如但不局限于可进行标红处理。
步骤106、当经过扩展处理后的至少两个表单选项中包含国际化资源前缀时,在第一编辑代码中添加与国际化资源前缀对应的第二编辑代码,得到第三编辑代码。
具体地,在对消息选项进行扩展处理之后,当检测到扩展内容包含国际化资源前缀时,可在第一编辑代码中添加与国际化资源前缀对应的第二编辑代码,以得到最终待进行渲染的第三编辑代码。
此处第二编辑代码以中文ICU ResourceBundle格式为例,可以但不局限于参照如下所示的示例编辑代码:
zh {
StudentInformation {
first_name
last_name
gender
birthday
identification
id_number
passport_number
citizenship
citizenship#placeholder
citizenship#hint
Parent {
}
Gender {
}
}
}
其中,字段带后缀#placeholder可对应为渲染时的占位文本,字段带后缀#hint可对应为提示性帮助文本。
作为本申请实施例的一种可选,在当经过扩展处理后的至少两个表单选项中包含国际化资源前缀时,在第一编辑代码中添加与国际化资源前缀对应的第二编辑代码,得到第三编辑代码之后,在基于渲染器将第三编辑代码渲染为目标表单之前,还包括:
在经过扩展处理后的至少两个表单选项中筛选出消息渲染器选项,并根据消息渲染器选项确定渲染表单容器;
基于渲染器将第三编辑代码渲染为目标表单,包括:
基于渲染器以及渲染表单容器,将第三编辑代码渲染为目标表单。
具体地,在基于渲染器对第三编辑代码进行渲染之前,需要根据消息渲染器选项提前选择出合适的渲染表单容器,并可结合该合适的渲染表单容器,基于渲染器对第三编辑代码进行渲染。其中,例如但不局限于可在消息渲染器选项为MESSAGE_RENDERER_FLAT时,选择渲染表单容器为平铺列表容器;在消息渲染器选项为MESSAGE_RENDERER_PAGE时,选择渲染表单容器为分页显示容器。
此处还可参阅图3示出的本申请实施例提供的又一种基于接口描述语言的联动表单效果示意图。如图3所示,该表单中需要必须填写的信息依次包括名、姓、性别、出生日期、身份信息、护照号以及国籍,其中,该性别信息对应的选择器为下拉菜单;该出生日期具体精确到日,且对应的选择器为日历菜单;该身份信息对应的选择器为下拉菜单,且填写的护照号设定有相应的格式。此处,护照号以及国籍可对应为上述提到的国际化资源。
可以理解的是,当填写的护照号格式错误时,表单中可对该格式错误的身份证号进行标记处理,例如但不局限于可进行标红处理。
步骤108、基于渲染器将第三编辑代码渲染为目标表单。
具体地,在基于渲染器以及渲染表单容器对第三编辑代码进行渲染之前,还需要提前加载国际化资源,该国际化资源可基于第二编辑代码从相应的服务器中加载。
进一步的,在基于渲染器以及渲染表单容器对第三编辑代码进行渲染的过程中,先在第三编辑代码中获取第一描述符代码,并可对该第一描述符进行深度优先遍历处理,以得到与每个字段对应的字段描述符,该字段描述符可用于检查字段的可见性。
可能的,当检测到任意一个字段描述符的隐藏字段选项为生效时,表明在最终生成的表单中不对该字段进行显示,但可在用户输入的信息满足条件时,对该字段进行显示,例如但不局限于当身份信息选择为身份证号时,可相应的显示出身份证号填写框。
作为本申请实施例的又一种可选,基于渲染器以及渲染表单容器,将国际化资源以及经过第一隐藏处理后的第三编辑代码渲染为目标表单,包括:
基于渲染器进行对与国际化资源以及经过第一隐藏处理后的第三编辑代码渲染对应的组件进行布局处理;
当检测到国际化资源以及经过第一隐藏处理后的第三编辑代码的字段位置不处于显示区域时,对不处于显示区域的国际化资源以及经过第一隐藏处理后的第三编辑代码的字段进行第二隐藏处理;
基于渲染器以及渲染表单容器,将经过第二隐藏处理后的国际化资源以及第三编辑代码渲染为目标表单。
具体地,在基于渲染器以及渲染表单容器对第三编辑代码进行渲染的过程中,还可由渲染器对该国际化资源以及经过第一隐藏处理后的第三编辑代码渲染对应的组件进行布局操作,例如但不局限于可根据渲染表单容器的布局需求确定显示区域,并在当检测到存在部分国际化资源以及经过第一隐藏处理后的第三编辑代码的字段位置未处于显示区域时,可对该部分国际化资源以及经过第一隐藏处理后的第三编辑代码的字段进行隐藏处理,也即可理解为不挂载相应字段组件的渲染对象。
进一步的,在对部分国际化资源以及经过第一隐藏处理后的第三编辑代码的字段进行隐藏处理之后,可接着由渲染器对该经过隐藏处理后的编辑代码进行渲染。
可以理解的是,在本申请实施例中,还可以但不局限于利用Iterator的懒惰特性,以避免渲染容器内不可见的字段,进而提升渲染器的性能。
作为本申请实施例的又一种可选,基于渲染器以及渲染表单容器,将经过第二隐藏处理后的国际化资源以及第三编辑代码渲染为目标表单,包括:
在经过第二隐藏处理后的国际化资源以及第三编辑代码中获取第二描述符代码,并在第二描述符代码中确定出与字段对应的组件选项;
基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染,得到目标表单。
具体地,在基于渲染器以及渲染表单容器对第三编辑代码进行渲染的过程中,还可由渲染器在经过第二隐藏处理后的国际化资源以及第三编辑代码中获取第二描述符,并对该第二描述符进行遍历处理,以得到与每个字段对应的字段描述符。
进一步的,在得到第二描述符中的字段描述符之后,可由渲染器根据字段描述符的组件选项选择合适的渲染组件,并可结合该渲染组件对字段输入组件进行渲染,以得到目标表单。此处,渲染器可以但不局限于根据字段的component选项,选择合适的渲染组件,并根据component_options选项渲染字段输入组件,比如FIELD_COMPONENT_DATE_TIME为日期时间选择器,组件选项{"default": "now", "hideTime": true}表示默认时间为当前,并且可隐藏时间部分。
可以理解的是,在本申请实施例中,渲染器还可在第二描述符代码中确定出与字段对应的风格选项,以对经过渲染处理后的字段输入组件进行样式渲染,例如但不局限于该渲染器可根据字段的field_style选项,对渲染的内容赋予特定的样式,可以实现强调、弱化字段的效果。
可以理解的是,在本申请实施例中,渲染器还可根据字段的validators、custom_validators、required、required_condition、max_size、min_size、size_condition、default_size等选项,实现字段检查。其中,字段的required选项可表示字段必填,相当于validators中包含FIELD_VALIDATOR_NOT_EMPTY,字段的required_condition选项可以填写表达式,用以在特定情况下需要实现required效果。
字段的validators选项可以填入一组预定义、无参数的检查器,比如FIELD_VALIDATOR_NOT_EMPTY(非空)、FIELD_VALIDATOR_ALPHA_NUMERIC(仅包含字母数字)、FIELD_VALIDATOR_EMAIL(e-mail格式)、FIELD_VALIDATOR_URL(URL格式)。渲染器内置了预定义的检查器及其国际化资源,可以在检查不通过时正确地、友好地提示错误。
字段的max_size、min_size、size_condition、default_size选项应用于可变长度的数据类型比如string、repeated、map、bytes等,或在数字类型中使用,表示对长度或大小的限制。
还需要说明的是,在本申请实施例中, 渲染器还可以但不局限于根据字段的formatter、custom_formatter选项,将值格式化成特定格式,方便用户查看,比如FIELD_FORMATTER_UPPER表示使用大写格式化值,此格式化行为仅用于界面展示,不用于修改字段最终序列化的值。或是,渲染器还可以但不局限于根据字段的auto_completers选项,在用户输入时提供自动补全和备选,候选内容在输入时懒惰加载并缓存,以减少加载导致的启动延迟。
除上述提到的一个或多个实施例之外,本申请提出的基于接口描述语言的联动表单生成方法可使用Antlr4b编写词法分析器与语法解析器,实现特定语法的表达式解释器与计算器,且还可通过编写protoc-plugin的方式,生成平台特定的接口代码,以便于前端以及后端快速获取。
当然,前端的表单组件实时将值填写到表单消息实例中,此处可选择序列化为Json、Text或Binary,相对应的后端可根据表单消息以及序列化的Json、Text或Binary,直接使用Protobuf解析为表单消息实例,以充分利用接口描述语言的序列化以及反序列化功能。
请参阅图4,图4示出了本申请实施例提供的一种基于接口描述语言的联动表单生成装置的结构示意图。
如图4所示,该基于接口描述语言的联动表单生成装置至少可以包括扩展处理模块401、第一确定模块402、第二确定模块403以及表单生成模块404,其中:
扩展处理模块401,用于根据预设表单需求对至少两个表单选项进行扩展处理;
第一确定模块402,用于基于经过扩展处理后的至少两个表单选项,获取第一编辑代码;其中,第一编辑代码的编写语言为接口描述语言;
第二确定模块403,用于当经过扩展处理后的至少两个表单选项中包含国际化资源前缀时,在第一编辑代码中添加与国际化资源前缀对应的第二编辑代码,得到第三编辑代码;
表单生成模块404,用于基于渲染器将第三编辑代码渲染为目标表单。
在一些可能的实施例中,装置还包括:
在当经过扩展处理后的至少两个表单选项中包含国际化资源前缀时,在第一编辑代码中添加与国际化资源前缀对应的第二编辑代码,得到第三编辑代码之后,在基于渲染器将第三编辑代码渲染为目标表单之前,在经过扩展处理后的至少两个表单选项中筛选出消息渲染器选项,并根据消息渲染器选项确定渲染表单容器;
基于渲染器将第三编辑代码渲染为目标表单,包括:
基于渲染器以及渲染表单容器,将第三编辑代码渲染为目标表单。
在一些可能的实施例中,表单生成模块具体包括:
基于第二编辑代码加载国际化资源;
在第三编辑代码中获取第一描述符代码,并对第一描述符代码的字段进行深度优先遍历处理,得到第一描述符代码中与每个字段对应的字段描述符;
当检测到任意一个字段描述符的隐藏字段选项为生效时,对与字段描述符对应的字段进行第一隐藏处理;
基于渲染器以及渲染表单容器,将国际化资源以及经过第一隐藏处理后的第三编辑代码渲染为目标表单。
在一些可能的实施例中,表单生成模块还包括:
基于渲染器进行对与国际化资源以及经过第一隐藏处理后的第三编辑代码渲染对应的组件进行布局处理;
当检测到国际化资源以及经过第一隐藏处理后的第三编辑代码的字段位置不处于显示区域时,对不处于显示区域的国际化资源以及经过第一隐藏处理后的第三编辑代码的字段进行第二隐藏处理;
基于渲染器以及渲染表单容器,将经过第二隐藏处理后的国际化资源以及第三编辑代码渲染为目标表单。
在一些可能的实施例中,表单生成模块还包括:
在经过第二隐藏处理后的国际化资源以及第三编辑代码中获取第二描述符代码,并在第二描述符代码中确定出与字段对应的组件选项;
基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染,得到目标表单。
在一些可能的实施例中,表单生成模块还包括:
在基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染之后,在得到目标表单之前,在第二描述符代码中确定出与字段对应的风格选项;
基于渲染器、渲染表单容器以及与字段对应的风格选项,对经过渲染处理后的字段输入组件进行样式渲染,得到目标表单。
在一些可能的实施例中,装置还包括:
在基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染,得到目标表单之前,在第二描述符代码中确定出与字段对应的自动完成选项;
加载出与自动完成选项对应的候选字段组件;
在基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染,得到目标表单之后,还包括:
当检测到用户的输入动作时,基于渲染器对候选字段组件进行渲染。
本领域的技术人员可以清楚地了解到本申请实施例的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(Field-ProgrammableGate Array,FPGA)、集成电路(Integrated Circuit,IC)等。
请参阅图5,图5示出了本申请实施例提供的又一种基于接口描述语言的联动表单生成装置的结构示意图。
如图5所示,基于接口描述语言的联动表单生成装置500可以包括至少一个处理器501、至少一个网络接口504、用户接口503、存储器505以及至少一个通信总线502。
其中,通信总线502可用于实现上述各个组件的连接通信。
其中,用户接口503可以包括按键,可选用户接口还可以包括标准的有线接口、无线接口。
其中,网络接口504可以但不局限于包括蓝牙模块、NFC模块、Wi-Fi模块等。
其中,处理器501可以包括一个或者多个处理核心。处理器501利用各种接口和线路连接整个基于接口描述语言的联动表单生成装置500内的各个部分,通过运行或执行存储在存储器505内的指令、程序、代码集或指令集,以及调用存储在存储器505内的数据,执行路由基于接口描述语言的联动表单生成装置500的各种功能和处理数据。可选的,处理器501可以采用DSP、FPGA、PLA中的至少一种硬件形式来实现。处理器501可集成CPU、GPU和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器501中,单独通过一块芯片进行实现。
其中,存储器505可以包括RAM,也可以包括ROM。可选的,该存储器505包括非瞬时性计算机可读介质。存储器505可用于存储指令、程序、代码、代码集或指令集。存储器505可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器505可选的还可以是至少一个位于远离前述处理器501的存储装置。如图5所示,作为一种计算机存储介质的存储器505中可以包括操作系统、网络通信模块、用户接口模块以及基于接口描述语言的联动表单生成应用程序。
具体地,处理器501可以用于调用存储器505中存储的基于接口描述语言的联动表单生成应用程序,并具体执行以下操作:
根据预设表单需求对至少两个表单选项进行扩展处理;
基于经过扩展处理后的至少两个表单选项,获取第一编辑代码;其中,第一编辑代码的编写语言为接口描述语言;
当经过扩展处理后的至少两个表单选项中包含国际化资源前缀时,在第一编辑代码中添加与国际化资源前缀对应的第二编辑代码,得到第三编辑代码;
基于渲染器将第三编辑代码渲染为目标表单。
在一些可能的实施例中,在当经过扩展处理后的至少两个表单选项中包含国际化资源前缀时,在第一编辑代码中添加与国际化资源前缀对应的第二编辑代码,得到第三编辑代码之后,在基于渲染器将第三编辑代码渲染为目标表单之前,还包括:
在经过扩展处理后的至少两个表单选项中筛选出消息渲染器选项,并根据消息渲染器选项确定渲染表单容器;
基于渲染器将第三编辑代码渲染为目标表单,包括:
基于渲染器以及渲染表单容器,将第三编辑代码渲染为目标表单。
在一些可能的实施例中,基于渲染器以及渲染表单容器,将第三编辑代码渲染为目标表单,包括:
基于第二编辑代码加载国际化资源;
在第三编辑代码中获取第一描述符代码,并对第一描述符代码的字段进行深度优先遍历处理,得到第一描述符代码中与每个字段对应的字段描述符;
当检测到任意一个字段描述符的隐藏字段选项为生效时,对与字段描述符对应的字段进行第一隐藏处理;
基于渲染器以及渲染表单容器,将国际化资源以及经过第一隐藏处理后的第三编辑代码渲染为目标表单。
在一些可能的实施例中,基于渲染器以及渲染表单容器,将国际化资源以及经过第一隐藏处理后的第三编辑代码渲染为目标表单,包括:
基于渲染器进行对与国际化资源以及经过第一隐藏处理后的第三编辑代码渲染对应的组件进行布局处理;
当检测到国际化资源以及经过第一隐藏处理后的第三编辑代码的字段位置不处于显示区域时,对不处于显示区域的国际化资源以及经过第一隐藏处理后的第三编辑代码的字段进行第二隐藏处理;
基于渲染器以及渲染表单容器,将经过第二隐藏处理后的国际化资源以及第三编辑代码渲染为目标表单。
在一些可能的实施例中,基于渲染器以及渲染表单容器,将经过第二隐藏处理后的国际化资源以及第三编辑代码渲染为目标表单,包括:
在经过第二隐藏处理后的国际化资源以及第三编辑代码中获取第二描述符代码,并在第二描述符代码中确定出与字段对应的组件选项;
基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染,得到目标表单。
在一些可能的实施例中,在基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染之后,在得到目标表单之前,还包括:
在第二描述符代码中确定出与字段对应的风格选项;
基于渲染器、渲染表单容器以及与字段对应的风格选项,对经过渲染处理后的字段输入组件进行样式渲染,得到目标表单。
在一些可能的实施例中,在基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染,得到目标表单之前,还包括:
在第二描述符代码中确定出与字段对应的自动完成选项;
加载出与自动完成选项对应的候选字段组件;
在基于渲染器、渲染表单容器以及与字段对应的组件选项,对字段输入组件进行渲染,得到目标表单之后,还包括:
当检测到用户的输入动作时,基于渲染器对候选字段组件进行渲染。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(RandomAccess Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory, ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
Claims (10)
1.一种基于接口描述语言的联动表单生成方法,其特征在于,包括:
根据预设表单需求对至少两个表单选项进行扩展处理;
基于经过扩展处理后的所述至少两个表单选项,获取第一编辑代码;其中,所述第一编辑代码的编写语言为接口描述语言;
当经过扩展处理后的所述至少两个表单选项中包含国际化资源前缀时,在所述第一编辑代码中添加与所述国际化资源前缀对应的第二编辑代码,得到第三编辑代码;
基于渲染器将所述第三编辑代码渲染为目标表单。
2.根据权利要求1所述的方法,其特征在于,在所述当经过扩展处理后的所述至少两个表单选项中包含国际化资源前缀时,在所述第一编辑代码中添加与所述国际化资源前缀对应的第二编辑代码,得到第三编辑代码之后,在所述基于渲染器将所述第三编辑代码渲染为目标表单之前,还包括:
在经过扩展处理后的所述至少两个表单选项中筛选出消息渲染器选项,并根据所述消息渲染器选项确定渲染表单容器;
所述基于渲染器将所述第三编辑代码渲染为目标表单,包括:
基于渲染器以及所述渲染表单容器,将所述第三编辑代码渲染为目标表单。
3.根据权利要求2所述的方法,其特征在于,所述基于渲染器以及所述渲染表单容器,将所述第三编辑代码渲染为目标表单,包括:
基于所述第二编辑代码加载国际化资源;
在所述第三编辑代码中获取第一描述符代码,并对所述第一描述符代码的字段进行深度优先遍历处理,得到所述第一描述符代码中与每个字段对应的字段描述符;
当检测到任意一个所述字段描述符的隐藏字段选项为生效时,对与所述字段描述符对应的字段进行第一隐藏处理;
基于所述渲染器以及所述渲染表单容器,将所述国际化资源以及经过第一隐藏处理后的所述第三编辑代码渲染为目标表单。
4.根据权利要求3所述的方法,其特征在于,所述基于所述渲染器以及所述渲染表单容器,将所述国际化资源以及经过第一隐藏处理后的所述第三编辑代码渲染为目标表单,包括:
基于所述渲染器进行对与所述国际化资源以及经过第一隐藏处理后的所述第三编辑代码渲染对应的组件进行布局处理;
当检测到所述国际化资源以及经过第一隐藏处理后的所述第三编辑代码的字段位置不处于显示区域时,对不处于所述显示区域的所述国际化资源以及经过第一隐藏处理后的所述第三编辑代码的字段进行第二隐藏处理;
基于所述渲染器以及所述渲染表单容器,将经过第二隐藏处理后的所述国际化资源以及所述第三编辑代码渲染为目标表单。
5.根据权利要求4所述的方法,其特征在于,所述基于所述渲染器以及所述渲染表单容器,将经过第二隐藏处理后的所述国际化资源以及所述第三编辑代码渲染为目标表单,包括:
在经过第二隐藏处理后的所述国际化资源以及所述第三编辑代码中获取第二描述符代码,并在所述第二描述符代码中确定出与字段对应的组件选项;
基于所述渲染器、所述渲染表单容器以及与所述字段对应的所述组件选项,对字段输入组件进行渲染,得到目标表单。
6.根据权利要求5所述的方法,其特征在于,在所述基于所述渲染器、所述渲染表单容器以及与所述字段对应的所述组件选项,对字段输入组件进行渲染之后,在所述得到目标表单之前,还包括:
在所述第二描述符代码中确定出与字段对应的风格选项;
基于所述渲染器、所述渲染表单容器以及与字段对应的所述风格选项,对经过渲染处理后的所述字段输入组件进行样式渲染,得到目标表单。
7.根据权利要求5所述的方法,其特征在于,在所述基于所述渲染器、所述渲染表单容器以及与所述字段对应的所述组件选项,对字段输入组件进行渲染,得到目标表单之前,还包括:
在所述第二描述符代码中确定出与字段对应的自动完成选项;
加载出与所述自动完成选项对应的候选字段组件;
在所述基于所述渲染器、所述渲染表单容器以及与所述字段对应的所述组件选项,对字段输入组件进行渲染,得到目标表单之后,还包括:
当检测到用户的输入动作时,基于所述渲染器对所述候选字段组件进行渲染。
8.一种基于接口描述语言的联动表单生成装置,其特征在于,包括:
扩展处理模块,用于根据预设表单需求对至少两个表单选项进行扩展处理;
第一确定模块,用于基于经过扩展处理后的所述至少两个表单选项,获取第一编辑代码;其中,所述第一编辑代码的编写语言为接口描述语言;
第二确定模块,用于当经过扩展处理后的所述至少两个表单选项中包含国际化资源前缀时,在所述第一编辑代码中添加与所述国际化资源前缀对应的第二编辑代码,得到第三编辑代码;
表单生成模块,用于基于渲染器将所述第三编辑代码渲染为目标表单。
9.一种基于接口描述语言的联动表单生成装置,其特征在于,包括处理器以及存储器;
所述处理器与所述存储器连接;
所述存储器,用于存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行如权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机或处理器上运行时,使得所述计算机或处理器执行如权利要求1-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211523629.5A CN115857927A (zh) | 2022-12-01 | 2022-12-01 | 一种基于接口描述语言的联动表单生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211523629.5A CN115857927A (zh) | 2022-12-01 | 2022-12-01 | 一种基于接口描述语言的联动表单生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115857927A true CN115857927A (zh) | 2023-03-28 |
Family
ID=85668515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211523629.5A Pending CN115857927A (zh) | 2022-12-01 | 2022-12-01 | 一种基于接口描述语言的联动表单生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115857927A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093316A (zh) * | 2023-10-18 | 2023-11-21 | 北京纷扬科技有限责任公司 | 一种跨平台页面渲染系统、电子设备及存储介质 |
-
2022
- 2022-12-01 CN CN202211523629.5A patent/CN115857927A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093316A (zh) * | 2023-10-18 | 2023-11-21 | 北京纷扬科技有限责任公司 | 一种跨平台页面渲染系统、电子设备及存储介质 |
CN117093316B (zh) * | 2023-10-18 | 2023-12-29 | 北京纷扬科技有限责任公司 | 一种跨平台页面渲染系统、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10338893B2 (en) | Multi-step auto-completion model for software development environments | |
US7610545B2 (en) | Annotations for tracking provenance | |
US11366676B2 (en) | Embedded user assistance for software applications | |
US8161498B2 (en) | Providing globalization functionalities for javascript applications | |
US10229115B2 (en) | System and method for creating an internationalized web application | |
US6507812B1 (en) | Mock translation method, system, and program to test software translatability | |
US9268761B2 (en) | In-line dynamic text with variable formatting | |
US8468494B2 (en) | In-line editor | |
US6453462B1 (en) | Mock translation system, method, and program using multi-byte placeholder characters to test translatability of software that will display multi-byte languages | |
US8850274B2 (en) | Method of embedding configuration data in a non-configuration document | |
Pilgrim | Dive into HTML5 | |
CN1282914A (zh) | 采用外观类进行软件翻译的内观编辑器系统、程序和方法 | |
JP2016048471A (ja) | アプリケーション開発支援装置、そのデータ処理方法、およびプログラム | |
CN115857927A (zh) | 一种基于接口描述语言的联动表单生成方法及装置 | |
US20080282148A1 (en) | Processing method for increasing speed of opening a word processing document | |
US20080141164A1 (en) | Automated control text truncation detection | |
KR20140116438A (ko) | 연산 순서의 그래픽 표현 기법 | |
US20050183033A1 (en) | Apparatus and methods for displaying dialog box text messages including languages having different reading orders | |
US20090217254A1 (en) | Application level smart tags | |
US9645798B1 (en) | Using program code to generate help information, and using help information to generate program code | |
US7664776B1 (en) | Methods and apparatus for dynamic form definition | |
CN111651696B (zh) | 产品标签的定制方法及装置、计算机存储介质、电子设备 | |
CN114461214A (zh) | 一种页面显示方法、装置、电子设备及存储介质 | |
CN112286527A (zh) | 一种实现自定义web版excel的方法 | |
CN104809061A (zh) | 回归测试方法及装置 |
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 |