基于MVVM模式的表单渲染方法及系统技术方案

技术编号:23984635 阅读:41 留言:0更新日期:2020-04-29 12:56
本发明专利技术公开基于MVVM模式的表单渲染方法及系统,其中,该方法包括步骤:描述表单元数据,将表单元数据反序列化为ViewModel元数据,最后将内存中ViewModel元数据描述的表单渲染为表单控件,有效的降低了表单渲染系统的展现层与数据层的耦合,同时简化了表单的创建与维护过程。基于MVVM模式的表单渲染系统,采用上述基于MVVM模式的表单渲染方法,解决了现有技术中需要在RPA业务流程项目的开发过程预先在代码中定义表单,导致RPA业务流程项目的开发、维护过程重复性高且繁琐的技术问题。

Form rendering method and system based on MVVM mode

【技术实现步骤摘要】
基于MVVM模式的表单渲染方法及系统
本专利技术涉及企业应用中机器人流程自动化领域,尤其涉及基于MVVM模式的表单渲染方法及系统。
技术介绍
在使用RPA设计器开发RPA业务流程的过程中,通常需要为流程中的每个动作组件配置入参信息和返回值信息,设计器中提供了属性编辑区域,用于渲染当前选中的动作组件的入参表单和返回值表单。在基于MVVM模式的WPF客户端系统中,表单的创建过程通常需要先在ViewModel中定义表单中数据信息的字段,然后在表示页面的XAML文件中定义各字段对应的表单控件,最后将ViewModel中的字段与表单控件绑定。当字段的值发生变化时,触发PropertyChanged事件,通知页面刷新相应的表单控件;同样地,当用户在表单控件中输入数据时,ViewModel中相应的字段值也会同步更新。使用上述表单创建方式时,需要在RPA业务流程的项目开发阶段的代码中根据入参信息和返回值信息预先对应地定义入参表单和返回值表单,但是由于RPA设计器中有几百个动作组件,在开发阶段为每个动作组件单独定义表单,使得开发过程重复且增大了开发工作量,一旦动作组件的入参信息或返回值信息需要调整时,需要在修改代码后重新编译,并发布整个RPA业务流程项目的工程,使得RPA业务流程项目的开发、维护过程重复性高且繁琐。
技术实现思路
本专利技术的目的在于提供基于MVVM模式的表单渲染方法及系统,以解决现有技术中需要在RPA业务流程项目的开发过程中预先定义表单,导致RPA业务流程项目在开发、维护过程重复性高且繁琐的技术问题。为了实现上述目的,本专利技术提供如下技术方案:一种基于MVVM模式的表单渲染方法,用于在RPA业务流程的创建过程中,将基础动作的入参信息和/或返回值信息渲染生成可视化表单,所述方法包括步骤:描述表单元数据;将表单元数据反序列化为ViewModel元数据;将内存中ViewModel元数据描述的表单渲染为表单控件。优选地,其特征在于,用XML语言来描述表单元数据。具体地,描述表单元数据的方法具体包括:创建XML格式的表单,每个表单对应一个表单项列表;根据基础动作的入参信息和/或返回值信息配置每个表单项元数据的格式,得到XML格式的表单元数据。进一步地,配置表单项元数据的格式的方法包括配置表单项类型、表单项名称、表单项展示名称、表单项描述、表单项默认值和表单项枚举;其中,所述表单项的数据类型包括字符串类型、元素ID类型、布尔类型、文件类型、文件夹类型、密码类型、下拉列表类型、图片类型、日期时间类型或通用类型;当所述表单项类型为下拉列表类型时,所述表单项枚举生效,用于描述下拉列表中的选项。优选地,将XML格式的表单元数据反序列化为ViewModel元数据的方法包括:读取XML格式的表单元数据;根据所述XML格式的表单元数据为内存中的ViewModel赋值,得到ViewModel元数据。较佳地,将内存中ViewModel元数据描述的表单渲染为表单控件的方法包括:创建多种数据模板并存储到表单容器模块中,每种数据模板对应一种表单项类型;利用数据模板选择器根据ViewModel元数据中的表单项类型选择相应的数据模板;将数据模板渲染为对应的表单控件。进一步地,所述数据模板为C#语言描述的XAML格式的数据模板,所述数据模板在WPF框架下渲染为对应的表单控件。一种基于MVVM模式的表单渲染系统,包括表单描述模块、加载模块和表单容器模块,其中,所述表单描述模块用于描述表单元数据;所述加载模块用于将表单元数据反序列化为ViewModel元数据;所述表单容器模块将内存中ViewModel元数据描述的表单渲染为表单控件。一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于MVVM模式的表单渲染方法的步骤。一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,其特征在于,计算机程序被处理器运行时执行上述基于MVVM模式的表单渲染方法的步骤。与现有技术相比,本专利技术提供的基于MVVM模式的表单渲染方法及系统具有以下有益效果:本专利技术提供的基于MVVM模式的表单渲染方法中,包括步骤:先用XML语言描述表单元数据,然后将表单元数据反序列化为ViewModel元数据,最后使用自定义的数据模板选择器选择不同表单样式的数据模板,将内存中ViewModel元数据描述的表单渲染为可视化的UI表单控件。该方法采用WPF的双向绑定机制,通过自定义的数据模板选择器根据表单项类型来匹配表单控件,有效的降低了展现层与数据层的耦合;采用XML语言作为表单元数据描述,只需编辑相应的XML文件即可完成对表单的修改,简洁易懂、扩展性强,简化了表单的创建与维护过程。本专利技术提供的基于MVVM模式的表单渲染系统,采用上述基于MVVM模式的表单渲染方法,有效的降低了表单渲染系统的展现层与数据层的耦合,同时简化了表单的创建与维护过程。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本专利技术的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1为本专利技术实施例中基于MVVM模式的表单渲染方法的流程示意图;图2为本专利技术实施例中描述表单元数据的方法了流程示意图;图3为本专利技术实施例中将XML格式的表单元数据反序列化为ViewModel元数据的方法流程示意图;图4为本专利技术实施例中将内存中ViewModel元数据描述的表单渲染为表单控件的方法流程示意图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本专利技术保护的范围。实施例一请参阅图1,本实施例提供的基于MVVM模式的表单渲染方法,用于在RPA业务流程的创建过程中,将基础动作的入参信息和/或返回值信息渲染生成可视化表单,该方法包括步骤:描述表单元数据;将表单元数据反序列化为ViewModel元数据;将内存中ViewModel元数据描述的表单渲染为表单控件。请参阅图2,本实施例提供的基于MVVM模式的表单渲染方法中,描述表单元数据的方法具体包括:创建XML格式的表单,每个表单对应一个表单项列表;根据基础动作的入参信息和/或返回值信息配置每个表单项元数据的格式,得到XML格式的表单元数据。选用XML语言来描述表单元数据,简洁易懂、扩展性强,只需编辑相应的XML文件即可完成对表单的修改,能够有效地简化RPA组件入参表本文档来自技高网...

【技术保护点】
1.一种基于MVVM模式的表单渲染方法,用于在RPA业务流程的创建过程中,将基础动作的入参信息和/或返回值信息渲染生成可视化表单,其特征在于,所述方法包括步骤:/n描述表单元数据;/n将表单元数据反序列化为ViewModel元数据;/n将内存中ViewModel元数据描述的表单渲染为表单控件。/n

【技术特征摘要】
1.一种基于MVVM模式的表单渲染方法,用于在RPA业务流程的创建过程中,将基础动作的入参信息和/或返回值信息渲染生成可视化表单,其特征在于,所述方法包括步骤:
描述表单元数据;
将表单元数据反序列化为ViewModel元数据;
将内存中ViewModel元数据描述的表单渲染为表单控件。


2.根据权利要求1所述的基于MVVM模式的表单渲染方法,其特征在于,用XML语言来描述表单元数据。


3.根据权利要求2所述的基于MVVM模式的表单渲染方法,其特征在于,描述表单元数据的方法具体包括:
创建XML格式的表单,每个表单对应一个表单项列表;
根据基础动作的入参信息和/或返回值信息配置每个表单项元数据的格式,得到XML格式的表单元数据。


4.根据权利要求3所述的基于MVVM模式的表单渲染方法,其特征在于,配置表单项元数据的格式的方法包括配置表单项类型、表单项名称、表单项展示名称、表单项描述、表单项默认值和表单项枚举;其中,
所述表单项的数据类型包括字符串类型、元素ID类型、布尔类型、文件类型、文件夹类型、密码类型、下拉列表类型、图片类型、日期时间类型或通用类型;当所述表单项类型为下拉列表类型时,所述表单项枚举生效,用于描述下拉列表中的选项。


5.根据权利要求3所述的基于MVVM模式的表单渲染方法,其特征在于,将XML格式的表单元数据反序列化为ViewModel元数据的方法包括:
读取XML格式的表单元数据;
根...

【专利技术属性】
技术研发人员:蒋旭曦高勇曹艳敏朱宏雷孙慧生
申请(专利权)人:苏宁云计算有限公司
类型:发明
国别省市:江苏;32

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

1