自定义动态表单
整体描述:通过XML配置完成表单及表单控件的定义、通过对XML的解析完成表单及表单控件的展示、表单的验证控制、表单数据的加载、表单相关操作的接口设计,实现动态表单。
动态表单组件为独立的开发工具包,详细需求分析如下:
1、表单分类
对创建的表单进行分类,分类包括分类编码(固定位数的数字字符串编码)和分类名称,至少支持三级分类。
可以对表单分类进行编辑、排序和删除,分类下存在表单的不能删除。
建议和流程分类、办事项分类合并或共用同一个分类体系。
2、表单管理
完成一个新表单的设计,包括表单ID(UUID)、表单名称(中文)、表单标识(英文)、所在分类、表单类型、模板视图(对应的)、表单版本、表单XML配置文件等;
表单类型包括普通表单、表格表单、模板表单三种;
表单可以进行升级,升级后的表单版本增加一个新版本,老的版本自动禁用,如果老的版本没有使用过时,将自动删除,升级需要记录更新日志。
老版本的表单禁用后不能启用,最新版本可以进行禁用和启用。
表单可以进行删除,已经使用的表单不能被删除。
3、表单配置
在表单配置中需要完成对表单中的数据项进行配置,数据项包含需要填写的、展示的、隐式关联的所有数据项目,进行中文名称和英文标识的定义。
4、表单设计
表单设计由表单设计器导入表单数据生成表单XML配置文件,XML配置文件的版本依据当前最新的表单视图解析器版本。
表单设计器建议采用桌面应用程序开发,生成XML配置文件。桌面应用程序采用C#.net开发,表单解析采用XSL解析(要区分版本)实现。
5、表单应用
在表单应用中可以查询每一个表单应用的办事项列表,点击办事项名称可以链接至办事项的应用情况分析报表。
表单管理在系统管理后台分为5个子栏目:
l 添加新表单:添加一个新的表单;
l 表单管理:通过分类检索,完成表单的应用情况链接、信息编辑、配置设计、升级、禁用启用、删除等;
l 表单分类管理:完成表单的分类管理;
l 表单控件信息:查看表单可用的所有控件相关信息;
l 更新日志:了解表单的版本变化、查看表单的升级日志信息。
涉及的表单基础数据表设计:
1、表单分类表(Sys_FormType)
分类编码、上级编码、分类名称、排序码等;
2、表单基本信息表(Sys_Form)
表单ID(UUID)、表单所属分类(对应分类表的分类编码)、表单名称(中文描述)、表单标识(英文)、表单当前版本(和表单解析器的版本保持一致)、添加人、添加时间、禁用启用状态等;
3、表单扩展信息表(Sys_FormInfo)
表单ID、表单版本、表单类型(0-普通表单、1-表格表单、2-模板表单)、模板视图(对应的模板文件地址)、配置信息(存储XML数据)、添加人、添加时间等;
4、表单控件表(Sys_FormControl)
控件编码(两位数字编码)、控件标识(英文)、控件名称、默认格式化函数、默认宽度、默认高度、默认值、默认控件样式(JSON字符串)、默认控件属性(JSON字符串)、默认控件事件(JSON字符串)、默认验证条件(JSON字符串)、默认辅助信息(JSON字符串)等;
5、表单配置信息表(Sys_FormControls)
表单ID、表单版本、控件序号(流水数字)、控件标识、控件ID、控件NAME、控件标题、是否允许为空、是否只读、备注信息、格式化函数、宽度、高度、最大输入字符数、默认值、数据源、数据字段、自定义控件样式(JSON字符串)、自定义控件属性(JSON字符串)、自定义控件事件(JSON字符串)、验证条件(JSON字符串)、自定义辅助信息(JSON字符串)等;
系统内置的解析器:
1、表单解析器
根据对应版本的表单的“模板试图”结合表单类型、控件组解析代码获取表单HTML代码;
2、控件解析器
根据控件的基本信息、配置信息,获取控件属性、样式、事件代码,结合辅助信息的解析代码和验证要求,获取控件的HTML代码、验证脚本代码;
3、控件验证脚本解析器
根据控件配置的验证枚举类型,获取控件的验证脚本代码;
4、控件辅助解析器
主要包括控件事件、控件属性、控件样式、格式化、辅助信息的解析,解析生成的结果用于对应的控件解析。
5、数据源解析器
根据配置的数据源生成数据集,用于对应的控件解析。
整体描述:通过XML配置完成表单及表单控件的定义、通过对XML的解析完成表单及表单控件的展示、表单的验证控制、表单数据的加载、表单相关操作的接口设计,实现动态表单。
动态表单组件为独立的开发工具包,详细需求分析如下:
1、表单分类
对创建的表单进行分类,分类包括分类编码(固定位数的数字字符串编码)和分类名称,至少支持三级分类。
可以对表单分类进行编辑、排序和删除,分类下存在表单的不能删除。
建议和流程分类、办事项分类合并或共用同一个分类体系。
2、表单管理
完成一个新表单的设计,包括表单ID(UUID)、表单名称(中文)、表单标识(英文)、所在分类、表单类型、模板视图(对应的)、表单版本、表单XML配置文件等;
表单类型包括普通表单、表格表单、模板表单三种;
表单可以进行升级,升级后的表单版本增加一个新版本,老的版本自动禁用,如果老的版本没有使用过时,将自动删除,升级需要记录更新日志。
老版本的表单禁用后不能启用,最新版本可以进行禁用和启用。
表单可以进行删除,已经使用的表单不能被删除。
3、表单配置
在表单配置中需要完成对表单中的数据项进行配置,数据项包含需要填写的、展示的、隐式关联的所有数据项目,进行中文名称和英文标识的定义。
4、表单设计
表单设计由表单设计器导入表单数据生成表单XML配置文件,XML配置文件的版本依据当前最新的表单视图解析器版本。
表单设计器建议采用桌面应用程序开发,生成XML配置文件。桌面应用程序采用C#.net开发,表单解析采用XSL解析(要区分版本)实现。
5、表单应用
在表单应用中可以查询每一个表单应用的办事项列表,点击办事项名称可以链接至办事项的应用情况分析报表。
表单管理在系统管理后台分为5个子栏目:
l 添加新表单:添加一个新的表单;
l 表单管理:通过分类检索,完成表单的应用情况链接、信息编辑、配置设计、升级、禁用启用、删除等;
l 表单分类管理:完成表单的分类管理;
l 表单控件信息:查看表单可用的所有控件相关信息;
l 更新日志:了解表单的版本变化、查看表单的升级日志信息。
涉及的表单基础数据表设计:
1、表单分类表(Sys_FormType)
分类编码、上级编码、分类名称、排序码等;
2、表单基本信息表(Sys_Form)
表单ID(UUID)、表单所属分类(对应分类表的分类编码)、表单名称(中文描述)、表单标识(英文)、表单当前版本(和表单解析器的版本保持一致)、添加人、添加时间、禁用启用状态等;
3、表单扩展信息表(Sys_FormInfo)
表单ID、表单版本、表单类型(0-普通表单、1-表格表单、2-模板表单)、模板视图(对应的模板文件地址)、配置信息(存储XML数据)、添加人、添加时间等;
4、表单控件表(Sys_FormControl)
控件编码(两位数字编码)、控件标识(英文)、控件名称、默认格式化函数、默认宽度、默认高度、默认值、默认控件样式(JSON字符串)、默认控件属性(JSON字符串)、默认控件事件(JSON字符串)、默认验证条件(JSON字符串)、默认辅助信息(JSON字符串)等;
5、表单配置信息表(Sys_FormControls)
表单ID、表单版本、控件序号(流水数字)、控件标识、控件ID、控件NAME、控件标题、是否允许为空、是否只读、备注信息、格式化函数、宽度、高度、最大输入字符数、默认值、数据源、数据字段、自定义控件样式(JSON字符串)、自定义控件属性(JSON字符串)、自定义控件事件(JSON字符串)、验证条件(JSON字符串)、自定义辅助信息(JSON字符串)等;
系统内置的解析器:
1、表单解析器
根据对应版本的表单的“模板试图”结合表单类型、控件组解析代码获取表单HTML代码;
2、控件解析器
根据控件的基本信息、配置信息,获取控件属性、样式、事件代码,结合辅助信息的解析代码和验证要求,获取控件的HTML代码、验证脚本代码;
3、控件验证脚本解析器
根据控件配置的验证枚举类型,获取控件的验证脚本代码;
4、控件辅助解析器
主要包括控件事件、控件属性、控件样式、格式化、辅助信息的解析,解析生成的结果用于对应的控件解析。
5、数据源解析器
根据配置的数据源生成数据集,用于对应的控件解析。