Enum

概述

Enum实体代表枚举类型,常用于值域可有限穷举的情况。枚举由若干枚举项构成,枚举项由显示值Label和存储值Value组成。通常情况下枚举在界面展示为Label,数据库存储为value。在GOT模型中,在柔性设计平台中,每个枚举实体对应一个普通Java类(非Java语法的枚举类),枚举项对应一个int类型的常量。所有枚举对应Java类位于层节点enums包目录。

package gongqi.erp.layers.obj.enums;

public class ItemType{
    public final static int Prod = 0;
    public final static int Purch = 1;
    public final static int Virtual = 2;
}

枚举实体在业务建模过程主要有以下三种用途:

  • TableField继承:表字段的继承实体,用于限定字段值范围,数据字段值等于某一枚举项的值。
  • 无数据源Editor:Form中无数据源EnumEditor,与普通Editor相比,其表现形式为仅允许下拉选择,下拉内容为EnumItem集合;
  • DataType继承:DataType继承实体;

枚举实体在PC端展示为一个下拉选择列表,下拉显示内容为枚举项的label,下拉条目的先后顺序根据枚举项在Enum实体内的顺序决定(与枚举项值无关)。

[!WARNING]

针对Enum实体,GOT提供了重置EnumItem值的功能,此功能仅限于开发初期使用,如果项目已经用于实际环境或对外发布,不建议使用此功能或手动调整,主要会产生以下问题:

  • 基于Java编码规范,如果枚举存在第三方引用,实际编辑后的clas字节码为int常量而非名称引用,因此重置值后,引用只有在重新编译才会发生改变。
  • 数据库如果已经实际产生数据,此情况修改后需要进行数据校正,否则存在数据污染导致歧义。
  • 对于代码内采用硬编码value进行引用,调整值后对此情况代码无效。

实体结构

Enum

Enum枚举实体节点,一个枚举可以有多个枚举项EnumItem组成。

属性列表

属性 说明
Label 标签,用于界面字段或无数据源编辑框界面展示,一般建议不超过4个字符。
HelpText 帮助说明
DisplayLength 显示长度,单位:字符
默认值:10

EnumItem

EnumItem代表枚举项,包含两个属性:Label、Value,Label表示显示值,用于界面展示,Value表示存储值(整数类型),用于数据存储与逻辑比较。枚举项值在枚举实体内需要保持唯一,必填且不允许重复。

属性列表

属性 说明
Value 枚举项值(整数),必填且不允许重复
Label 枚举项标签,用于界面展示,不允许为空

[!NOTE]

  • 编码过程中,建议通过Java类常量引用进行枚举项比较判断。
  • 编码过程中,如果需要根据枚举值获取枚举项标签,可以通过GOTHelper工具类获取,具体用法参见GOTHelper工具类用法。

results matching ""

    No results matching ""