主页
手机版
扫描查看手机站
所在位置:首页 → 教程资讯 → 表单引擎的组件扩展性研究

表单引擎的组件扩展性研究

发布: 更新时间:2024-06-25 12:03:03

在软件行业的发展过程中,从业者一直致力于提高开发效率和软件质量。复用软件模块通常是实现这些目标的有效手段。从头文件引入、面向对象的封装、动态库的引入、代码生成器类工具、低代码引擎等,随着行业技术的发展,软件复用的层次也逐步从底层文件扩展到界面层面。本文将围绕OA和低代码平台中不可或缺的一个组件——表单引擎,对表单控件的扩展性进行探讨。

表单引擎一般由表单设计器和表单渲染引擎两部分组成。表单设计器通常通过拖拉拽的形式定义表单的样式和交互行为,并将配置信息以JSON的形式保存到数据库中。表单渲染引擎则通过读取数据库中的配置信息,动态生成表单并进行渲染。在这种设计模式下,表单控件的扩展性直接影响着表单引擎的能力。以下以LuBase低代码框架为例,介绍其表单控件的扩展实现方式。

表单引擎通常提供丰富的控件类型以满足日常业务需求。不同的控件类型在不同的数据库中有不同的映射类型。因此,在扩展控件类型时必须考虑数据库的兼容性。LuBase提供了一种机制来支持不同数据库的兼容性。它定义了两个概念:字段类型和显示类型。字段类型可以有不同的显示类型,显示类型决定最终的UI交互,而字段类型决定在不同数据库中的映射类型。以下是LuBase的字段类型和显示类型的示例:

字段类型定义了常用的文本、数字、时间、下拉等类型,而显示类型决定了不同的显示效果。

LuBase表单控件的扩展点涉及对显示类型的扩展。例如,一个字段类型为文本的字段可以显示为文本框、身份证输入框或其他显示类型。字段类型决定了数据库的映射类型和数据新增更新时的处理逻辑。因此,这一部分不提供扩展功能,但框架实现了常用的字段类型。LuBase的字段类型与各数据库的映射关系如下表所示:

字段类型 字段类型名称 可用显示类型 是否支持多值 对应mysql列类型 对应MSSql列类型 对应pgsql列类型
0 大整数(表主键) 0:表单不显示 × bigint bigint
1 文本 10:普通文本

11:手机号输入框

12:身份证号

13:银行卡

14:数据源设置
× length>8000时string,

length<=8000时varchar(length)
length>8000时varchar(max),

length<=8000时nvarchar(length)
2 日期时间 20:年月日

21:年月日时分秒
× datetime datetime
3 复选框 30:默认是否 × tinyint bit
4 整数 40:默认数字框 × int int
5 小数 50:默认numeric数字框 × decimal(19,小数位数) decimal(19,小数位数)
6 关联-码表 60:单级下拉框

61:多级代码表
varchar(值数量*32) varchar(值数量*32)
7 关联-数据表 70:通用下拉

71:通用弹窗
单值时bigint

多值时varchar(值数量*32)
单值时bigint

多值时varchar(值数量*32)
8 附件 80:普通附件 varchar(64) varchar(64)
9 图片 90:图片 varchar(64) varchar(64)
10 关联-系统服务 根据工号显示用户信息

根据用户id显示用户信息

根据部门id获取部门信息
varchar(值数量*32) varchar(值数量*32)
软件上新 查看更多