spritekuang

导航

企业级自定义表单引擎解决方案(五)--自定义表单典型业务案例

这篇文章结合案例再来直观的感受一下自定义表单的应用,纯技术上的应用会比较枯燥一些,后面再对大的设计细节进行展开。

我们平时的业务绝大多数都是围绕着单表、一对多关系、多对多关系,以及扩展开来的一对多对多、一对一、一(树结构)对多等展开。 如果把这些关系做成自定义表单模板,则只需要几步就能够配置出满足绝大多数业务场景的功能。

本文介绍从模板创建单表应用,只需要简单三步就能够生成一个功能比较全面的单表表单应用, 创建出来的表单包括新增、删除、修改、批量删除、普通查询、高级查询、导出Excel、导入Excel、表单验证、数据字典管理等各种功能。

本文以人员管理做为一个案例,并从模板快速创建表单应用,讲解自定义表单单表应用的定义与使用的常见功能与自定义表单的一些实现基本算法介绍。界面大概如下:

  

  自定义表单架构参考 

单表表单定义

步骤一:创建实体对象

  1. 实体对象主要是自定义表单与真实数据库存储之间的桥梁,在界面上管理自定义表单,相当于DBA在操作数据库脚本一样,但是这里的自定义表单还赋予了一些更高级的功能。
  2. 创建实体对象时,可以选择是否为树(自动生成通用树结构需要的字段如PId,Code,Path等字段,并在运行时自动管理字段值,查询里,自动构建树结构信息); 可选择新增、编辑、删除审计(自动管理新增人,新增时间,修改人,修改时间,逻辑删除数据)功能。
  3. 字段可填写字段名称,字段类型(不同的字段默认最常见的控件编辑和查询,如Date字段则用日期控件编辑以及查询,新增编辑、Excel导入自动添加字段验证),是否为空, 是否必填(新增编辑、Excel导入等自动添加验证必填),是否唯一,字段长度,自定义验证,数据字典(新增编辑、Excel导入、普通查询、高级查询均用下拉选择字典控件处理)。
  4. 添加完成对象后,还可以添加自定义方法,自定义方法主要为开发人员自己编写一些特殊的业务逻辑提供接入API。

点击查看演示

 

步骤二:选择模板,生成自定义表单

选择模板单表表单,填写对象Map(模板对象名称和新建的表单对应的对象名称)、描述Map(模板中的一些说明文字替换为新建表单的描述文字)、 列表排除字段(哪些字段不需要自动生成)、业务分类(表单管理和视图管理的分类信息,方便快速查询),然后确认生成。

确认生成后,可修改任何表单定义信息,修改后,立即生效。

从模板快速创建表单基本原理------>在模板管理中,已经预定义好单表应用相关的表单、视图、规则、控件、Wrap信息、列表查询、表单行、表单列、表单视图、列表视图等自定义表单方方面面的内容。 而且根据模板自定生成表单时,后台会自动复制这些内容,并重新生成各种对象的Id,再用新生成的Id替换模板中相应字段的Id,并根据第一步定义的实体对象属性信息, 选择合适的控件,为表单视图生成对应的字段并自动添加验证规则,为列表视图生成查询字段、高级查询字段、列表字段 (如:字段类型为dict,则用下拉选择字典控件生成表单字段信息、查询字段、列表显示字段、高级查询字段; 如果定义了必填,唯一,自定义验证等,都会在不同的区域默认生成验证表达式和唯一判断规则等),生成完成后,将所有信息保存到数据库同时更新缓存内容。

点击查看演示

步骤三:配置菜单,运行表单

1. 复制新建的列表表单Id

2. 在功能模块管理新菜单(可选择类似新增),配置菜单,填写表单Id到对应字段位置

3. 配置菜单访问角色,刷新界面,即可看到自定义表单生成的内容

点击查看演示

至此三步即可完成一个单表应用的配置,多数场景即可做为生产环境功能模块直接使用。另外可以在界面随时修改表单定义,修改好立即生效。接下来介绍一下生成的表单拥有的基础功能。

单表表单功能说明

增、删、改、批量删除

1. 点击新增按钮,弹出新增信息界面,所有字段的验证规则和使用的控件均根据第一步定义的对象属性信息默认生成。
2. 姓名、用户名、性别等带红色*符号的字段为必填
3. 性别、学历、职称为下拉选择数据字典
4. 电话、邮箱为自定义验证(内置的电话和邮箱验证,可自行添加正则表达式)
5. 入职日期、出生年月为日期控件
6. 数据类型为string的,自动添加字段长度验证
7. 点击保存,判断验证是否通过,验证通过后,保存数据到数据库,刷新列表

点击列表编辑按钮,列表编辑,可编辑表单,表单验证信息同上

点击列表删除按钮,弹出确认是否删除

可勾选列表数据列,勾选之后,批量删除按钮可用,可批量删除数据

点击查看演示

普通查询、高级查询、列表数据显示

查询分了普通查询、高级查询和隐藏查询(多数情况是通过参数传入到视图中)

普通查询,根据第一步的对象属性自动选择前5个类型为string、text、date、datetime的属性做为查询字段,并选择默认的控件。string、text系统构造like查询条件,如果为字典,则构造in查询条件,date、datetime为日期区间选择控件,系统构造between and查询条件

高级查询,根据第一步的对象属性自动选择剩余查询字段,并选择默认的控件。选择高级查询时,先选择字段,然后选择配置可以使用的查询类型(等于、大于、大于等于、区间、模糊、In等),系统根据字段类型和查询类型构造查询控件,选择一个查询字段后,清空剩余可选查询字段,另外可以修改删除经选择的高级查询字段
点击查询,查询列表数据

列表中,数据字典自动显示字典显示名称,日期自动格式化日期显示
另外还可自定义列字段显示样式

点击查看演示

导入导出Excel

导入导出Excel也是各种管理系统常见的功能,系统根据第一步创建的对象属性自动生成Excel模板。

模板自动构造字典下拉、必填样式、字段格式,导入时,根据验证规则验证各种数据合法性

可设置导入的唯一字段或者联合唯一字段集合,导入时,判断Excel数据是否有重复,有重复则修改数据,无重复则新增(案例中唯一字段为用户名)

导入结果会显示导入成功的数据条数,还会输出导入失败Excel,记录原始行号和验证错误原因,提示用户编辑之后重新导入

根据查询条件查询数据,导出所有满足查询条件的数据,输出Excel

点击查看演示

Excel技术实现参考

编辑表单定义

以上是根据模板自动创建出来的自定义表单,能够满足绝大多数业务需求。

另外,创建出来的自定义表单的方方面面均可以新增或者修改,比如列表查询、高级查询、列表样式、弹出样式、表单验证、执行规则、控件样式、执行自定义方法、绑定数据等等

点击查看演示

posted on 2021-07-05 09:47  spritekuang  阅读(3323)  评论(1编辑  收藏  举报