表单生成装置和表单生成方法

文档序号:6434646阅读:196来源:国知局
专利名称:表单生成装置和表单生成方法
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种表单生成装置和一种表单生成方法。
背景技术
在一些应用系统中,存在大量的表单,有的表单字段的数量巨多,而且这些表单字段可能只是简单的数据载体作用,添加这些字段会导致工作量重复,使得开发工作量会很大,并且系统和界面对用户来说不够友好,同时也无法随时间来对表单字段进行动态调整。现有技术中为了解决上述问题,提出了一种动态表单生成装置,但是目前的生成装置中,主要是依赖于UI元数据定义,或者实体元数据,才能去配置表单模板。这样导致的问题是,如果UI元数据或者实体数据更新,模板的配置过程也需要更改,而且模板对应的数据库表结构,历史数据调整都需要进行对应的手工调整,这样反而造成工作量更是庞大。例如需要表单增加“名称”一个字段,现有的技术不仅要修改UI元数据增加一个“名称”项,表单模板增加一个对应“名称”字段,实体元数据修改增加“名称”字段,表结构增加一个“名称”字段,如果客户那里有历史数据,还需要对历史需要迁移,需要编写调整脚本等等细节问题。因此,需要一种新的技术方案,能够有效地实现表单字段的灵活调整,并且不需要用户对表单字段涉及的文件及数据库表进行大量的操作,提高了用户的工作效率,以及提升了用户的工作体验。

发明内容
为详细解析本发明的技术方案,首先对以下名词进行解释UI 用户界面。UI元数据页面元素的描述数据。控件元数据页面控件的描述数据。布局元数据页面布局的描述数据。插件指的是生成表单模板中的一个控件的对应装置称为一个插件。本发明所要解决的技术问题在于,提供一种新的技术方案,能够有效地实现表单字段的灵活调整,并且不需要用户对表单字段涉及的文件及数据库表进行大量的操作,提高了用户的工作效率,以及提升了用户的工作体验。有鉴于此,本发明提供了一种表单生成装置,包括模板配置模块,配置或修改表单模板以及所述表单模板中的UI元数据;模板解析模块,从所述表单模板中解析出所述UI 元数据;表结构更新模块,根据所述UI元数据,在数据库中生成表结构;模板渲染模块,根据所述UI元数据和所述表结构,将所述表单模板渲染成可编程控件,以用于生成自定义表单。通过该技术方案,用户只需在模板配置模块等表单设计器中配置表单模板,则可以自动解析生成控件元数据和布局元数据,并生成元数据对应的表结构,以在将表单模板渲染时使用,不需用户进行元数据以及对应数据库表的修改。在上述技术方案中,优选地,所述模板配置模块根据HTML描述规则配置或修改所述表单模板和所述UI元数据,其中,所述UI元数据包括控件元数据和布局元数据。通过该技术方案,采用通用的HTML的描述规则,相对全面且扩张性强,新增控件特性时,不需另行开发以对其支持。在上述技术方案中,优选地,所述表结构更新模块在所述数据库中不存在表结构时,根据所述UI元数据,直接生成所述表结构,以及在所述数据库中已存在表结构时,根据所述UI元数据生成最新表结构信息,以及根据已存在的表结构的元数据生成历史表结构信息,对比所述最新表结构信息与所述历史表结构信息,并在两者不同时,根据所述最新表结构信息,将所述已存在的表结构更新为所述表结构,并将所述已存在的表结构中的数据复制进所述表结构。通过该技术方案,实现了表结构的更新,保证了更新后的表结构能兼顾以前的表结构中的数据。在上述技术方案中,优选地,所述模板渲染模块将所述表单模板中的控件标签转化为对应不同客户端的标签,以生成新模板,并根据新模板中的标签进行渲染,以生成对应所述不同客户端的所述可编程控件。通过该技术方案,保证了生成的控件可以适用于多种不同的客户端。在上述技术方案中,优选地,所述模板配置模块通过微内核扩展插件,来配置或修改所述表单模板和UI元数据。通过该技术方案,利于用户便捷地配置或修改上述的UI元数据。本发明还提供一种表单生成方法,包括步骤202,配置或修改表单模板以及所述表单模板中的UI元数据;步骤204,从所述表单模板中解析出所述UI元数据;步骤206,根据所述UI元数据,在数据库中生成表结构;步骤208,根据所述UI元数据和所述表结构,将所述表单模板渲染成可编程控件,以用于生成自定义表单。通过该技术方案,用户只需在表单设计器中配置表单模板,则可以自动解析生成控件元数据和布局元数据,并生成元数据对应的表结构,以在将表单模板渲染时使用,不需用户进行元数据以及对应数据库表的修改。在上述技术方案中,优选地,所述步骤202具体包括根据HTML描述规则配置或修改所述表单模板和所述UI元数据,其中,所述UI元数据包括控件元数据和布局元数据。通过该技术方案,采用通用的HTML的描述规则,相对全面且扩张性强,新增控件特性时,不需另行开发以对其支持。在上述技术方案中,优选地,所述步骤206具体包括在所述数据库中不存在表结构时,根据所述UI元数据,直接生成所述表结构;在所述数据库中已存在表结构时,根据所述UI元数据生成最新表结构信息,以及根据已存在的表结构的元数据生成历史表结构信息,对比所述最新表结构信息与所述历史表结构信息,并在两者不同时,根据所述最新表结构信息,将所述已存在的表结构更新为所述表结构,并将所述已存在的表结构中的数据复制进所述表结构。通过该技术方案,实现了表结构的更新,保证了更新后的表结构能兼顾以前的表结构中的数据。在上述技术方案中,优选地,在所述步骤208中,包括将所述表单模板中的控件标签转化为对应不同客户端的标签,以生成新模板,并对新模板进行渲染,以生成对应所述不同客户端的所述可编程控件。通过该技术方案,保证了生成的控件可以适用于多种不同的客户端。在上述技术方案中,优选地,所述步骤202还包括通过微内核扩展插件,来配置或修改所述表单模板中的所述UI元数据。通过该技术方案,利于用户便捷地配置或修改上述的UI元数据。通过以上技术方案,可以实现一种表单生成装置和一种表单生成方法,能够有效地实现表单字段的灵活调整,并且不需要用户对表单字段涉及的文件及数据库表进行大量的操作,提高了用户的工作效率,以及提升了用户的工作体验。


图1是根据本发明的一个实施例的表单生成装置的框图;图2是根据本发明的一个实施例的表单生成方法的流程图;图3是根据本发明的一个实施例的表单生成方法的工作流程图;图4是根据本发明的一个实施例的表单生成方法的原理示意图;图5是根据本发明的一个实施例的表单生成方法中生成脚本的流程图;图6是根据本发明的一个实施例的表单生成方法中进行表单渲染的流程图。
具体实施例方式为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式
对本发明进行进一步的详细描述。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。图1是根据本发明的一个实施例的表单生成装置的框图。如图1所示,本发明提供了一种表单生成装置100,包括模板配置模块102,配置或修改表单模板以及所述表单模板中的UI元数据;模板解析模块104,从所述表单模板中解析出所述UI元数据;表结构更新模块106,根据所述UI元数据,在数据库中生成表结构; 模板渲染模块108,根据所述UI元数据和所述表结构,将所述表单模板渲染成可编程控件, 以用于生成自定义表单。通过该技术方案,用户只需在模板配置模块等表单设计器配置表单模板,则可以自动解析生成控件元数据和布局元数据,并生成元数据对应的表结构,以在将表单模板渲染时使用,不需用户进行元数据以及对应数据库表的修改。其中,更新的方式包括新建和修改。在上述技术方案中,所述模板配置模块102根据HTML描述规则更新所述表单模板和所述UI元数据,其中,所述UI元数据包括控件元数据和布局元数据。通过该技术方案, 采用通用的HTML的描述规则,相对全面且扩张性强,新增控件特性时,不需另行开发以对其支持。在上述技术方案中,所述表结构更新模块106在所述数据库中不存在表结构时, 根据所述UI元数据,直接生成所述表结构,以及在所述数据库中已存在表结构时,根据所述UI元数据生成最新表结构信息,以及根据已存在的表结构的元数据生成历史表结构信息,对比所述最新表结构信息与所述历史表结构信息,并在两者不同时,根据所述最新表结构信息,将所述已存在的表结构更新为所述表结构,并将所述已存在的表结构中的数据复制进所述表结构。通过该技术方案,实现了表结构的更新,保证了更新后的表结构能兼顾以前的表结构中的数据。在上述技术方案中,所述模板渲染模块108还将所述表单模板中的控件标签转化为对应不同客户端的标签,以生成新模板,并根据新模板中的标签进行渲染,以生成对应所述不同客户端的所述可编程控件。通过该技术方案,保证了生成的控件可以适用于多种不同的客户端。在上述技术方案中,所述模板配置模块102通过微内核扩展插件,来配置或修改所述表单模板和所述UI元数据。通过该技术方案,利于用户便捷地配置或修改上述的UI 元数据。图2是根据本发明的一个实施例的表单生成方法的流程图。如图2所示,本发明还提供一种表单生成方法,包括步骤202,配置或修改表单模板以及所述表单模板中的UI元数据;步骤204,从所述表单模板中解析出所述UI元数据; 步骤206,根据所述UI元数据,在数据库中生成表结构;步骤208,根据所述UI元数据和所述表结构,将所述表单模板渲染成可编程控件,以用于生成自定义表单。通过该技术方案, 用户只需在表单设计器配置表单模板,则可以自动解析生成控件元数据和布局元数据,并生成元数据对应的表结构,以在将表单模板渲染时使用,不需用户进行元数据以及对应数据库表的修改。其中,更新的方式包括新建和修改。在上述技术方案中,所述步骤202具体包括根据HTML描述规则配置或修改所述表单模板和所述UI元数据,其中,所述UI元数据包括控件元数据和布局元数据。通过该技术方案,采用通用的HTML的描述规则,相对全面且扩张性强,新增控件特性时,不需另行开发以对其支持。在上述技术方案中,所述步骤206具体包括在所述数据库中不存在表结构时,根据所述UI元数据,直接生成所述表结构;在所述数据库中已存在表结构时,根据所述UI元数据生成最新表结构信息,以及根据已存在的表结构的元数据生成历史表结构信息,对比所述最新表结构信息与所述历史表结构信息,并在两者不同时,根据所述最新表结构信息, 将所述已存在的表结构更新为所述表结构,并将所述已存在的表结构中的数据复制进所述表结构。通过该技术方案,实现了表结构的更新,保证了更新后的表结构能兼顾以前的表结构中的数据。在上述技术方案中,在所述步骤208中,还包括将所述表单模板中的控件标签转化为对应不同客户端的标签,以生成新模板,并对新模板进行渲染,以生成对应所述不同客户端的所述可编程控件。通过该技术方案,保证了生成的控件可以适用于多种不同的客户端。在上述技术方案中,所述步骤202还包括通过微内核扩展插件,来配置或修改所述表单模板中的所述UI元数据。通过该技术方案,利于用户便捷地配置或修改上述的UI 元数据。图3是根据本发明的一个实施例的表单生成方法的工作流程图。如图3所示,步骤302,判断是否新建模板,在新建模板时,进入步骤304,在修改模板时,则进入步骤306。步骤304,新建模板并进行配置。步骤306,修改现有的模板的配置。步骤308,保存配置完毕之后的模板。步骤310,对模板进行解析。步骤312,组装解析出的UI元数据。步骤314,从数据库中查询UI元数据对应的数据库表是否存在,不存在则进入步骤316,存在则进入步骤318。步骤316,为UI元数据创建对应的数据库表。步骤318,根据UI元数据,对数据库中对应的数据表进行调整。步骤320,同时对数据表中的数据进行调整。其中,步骤302、步骤304、步骤306和步骤308构成了模板设计阶段,这个阶段主要是如何设计出一套格式化表单模板,设计出格式化模板的前提是需要一套生成格式化模板的设计器(相当于前述的模板配置模块),所以要解决的问题是如何设计出本文中提供的表单设计器。表单设计器需要解决的问题包括1、生成的格式化模板的规则描述定义。2、生成的模板文件如何在设计器中实现可视化展现。3、设计器如何解决基础控件开发和布局控件开发的扩展机制。第一个问题的解决办法是利用HTML的描述规则作为模板的描述规则。HTML是业界标准,在对表单模板中的控件和布局描述规则相对要全面,而且扩张性强,当需要增加新的控件特性时,可以巧妙的借助HTML的新增特性,无需做更多开发。第二个问题的解决办法是因为本文中的模板描述文件利用的是HTML的描述规则,所以本实施例中,设计器中的可视化展现利用浏览器提供的HTML渲染引擎渲染出模板的可视化展现,这样使得增加新的控件,也不需要修改设计态渲染引擎,而可以巧妙的借助浏览器的渲染引擎解决问题。问题三的解决办法是本文中设计器提供运行微内核,提供插件开发扩张机制。增加新的控件时,对新开发的插件定义进行插件注册,设计器在启动时启动对应的插件定义。通过以上三个问题的解决方案,可以实现用于配置模板的设计器,其原理可以如图4所示。步骤310和步骤312构成了模板解析阶段。这个阶段是利用模板解析器(相当于前述的模板解析模块)解析出我们需要的UI 元数据。模板解析器设计原理1、确定解析器要提取的UI元数据,主要包括控件元数据和布局元数据。例如
权利要求
1.一种表单生成装置,其特征在于,包括模板配置模块,配置或修改表单模板以及所述表单模板中的UI元数据;模板解析模块,从所述表单模板中解析出所述UI元数据;表结构更新模块,根据所述UI元数据,在数据库中生成表结构;模板渲染模块,根据所述UI元数据和所述表结构,将所述表单模板渲染成可编程控件,以用于生成自定义表单。
2.根据权利要求1所述的表单生成装置,其特征在于,所述模板配置模块根据HTML描述规则配置或修改所述表单模板和所述UI元数据,其中,所述UI元数据包括控件元数据和布局元数据。
3.根据权利要求1所述的表单生成装置,其特征在于,所述表结构更新模块在所述数据库中不存在表结构时,根据所述UI元数据,直接生成所述表结构,以及在所述数据库中已存在表结构时,根据所述UI元数据生成最新表结构信息,以及根据已存在的表结构的元数据生成历史表结构信息,对比所述最新表结构信息与所述历史表结构信息,并在两者不同时,根据所述最新表结构信息,将所述已存在的表结构更新为所述表结构,并将所述已存在的表结构中的数据复制进所述表结构。
4.根据权利要求1所述的表单生成装置,其特征在于,所述模板渲染模块将所述表单模板中的控件标签转化为对应不同客户端的标签,以生成新模板,并根据新模板中的标签进行渲染,以生成对应所述不同客户端的所述可编程控件。
5.根据权利要求1至4中任一项所述的表单生成装置,其特征在于,所述模板配置模块通过微内核扩展插件,来配置或修改所述表单模板和所述UI元数据。
6.一种表单生成方法,其特征在于,包括步骤202,配置或修改表单模板以及所述表单模板中的UI元数据;步骤204,从所述表单模板中解析出所述UI元数据;步骤206,根据所述UI元数据,在数据库中生成表结构;步骤208,根据所述UI元数据和所述表结构,将所述表单模板渲染成可编程控件,以用于生成自定义表单。
7.根据权利要求6所述的表单生成方法,其特征在于,所述步骤202具体包括根据HTML描述规则配置或修改所述表单模板和所述UI元数据,其中,所述UI元数据包括控件元数据和布局元数据。
8.根据权利要求6所述的表单生成方法,其特征在于,所述步骤206具体包括在所述数据库中不存在表结构时,根据所述UI元数据,直接生成所述表结构;在所述数据库中已存在表结构时,根据所述UI元数据生成最新表结构信息,以及根据已存在的表结构的元数据生成历史表结构信息,对比所述最新表结构信息与所述历史表结构信息,并在两者不同时,根据所述最新表结构信息,将所述已存在的表结构更新为所述表结构,并将所述已存在的表结构中的数据复制进所述表结构。
9.根据权利要求6所述的表单生成方法,其特征在于,在所述步骤208中,包括将所述表单模板中的控件标签转化为对应不同客户端的标签,以生成新模板,并根据新模板中的标签进行渲染,以生成对应所述不同客户端的所述可编程控件。
10.根据权利要求6至9中任一项所述的表单生成方法,其特征在于,所述步骤202还包括通过微内核扩展插件,来配置或修改所述表单模板和所述UI元数据。
全文摘要
本发明提供了一种表单生成装置和一种表单生成方法,其中,表单生成装置包括模板配置模块,配置或修改表单模板以及所述表单模板中的UI元数据;模板解析模块,从所述表单模板中解析出所述UI元数据;表结构更新模块,根据所述UI元数据,在数据库中生成表结构;模板渲染模块,根据所述UI元数据和所述表结构,将所述表单模板渲染成可编程控件,以用于生成自定义表单。通过本发明,用户只需在模板配置模块等表单设计器中配置表单模板,则可以自动解析生成控件元数据和布局元数据,并生成元数据对应的表结构,以在将表单模板渲染时使用,不需用户进行元数据以及对应数据库表的修改。
文档编号G06F9/44GK102360290SQ201110298248
公开日2012年2月22日 申请日期2011年9月29日 优先权日2011年9月29日
发明者田传武 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1