You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

X++扩展表display方法获取Enum枚举文本显示值问题求助

问题原因

你当前的display方法直接返回ServiceSubStatus枚举类型值,界面渲染时默认会输出枚举的整数编码值,只要调整逻辑输出枚举对应的标签文本即可解决。

解决方案

方案1:调整display方法返回字符串(无需修改表单配置,兼容性最好)

修改方法返回类型为字符串,调用X++标准enum2Label方法获取枚举的多语言标签文本:

[ExtensionOf(tableStr(EntAssetObjectTable))]
public final class ObjectTable_Extension
{
    public display str ServiceSubStatusDisplay()
    {    
        ServiceSubStatus subStatus = ServiceStatus::findByRecId(this.ServiceStatus).ServiceSubStatus;
        // 兼容空值场景,空值返回空字符串
        return subStatus ? enum2Label(subStatus) : '';
    }
}

提示:如果需要保留原方法名,也可直接修改原方法的返回类型,建议方法名增加标识后缀避免和表原有字段重名

方案2:不修改代码,调整表单控件属性

如果不想改动现有代码逻辑,可直接修改绑定该字段的表单控件属性:

  • 找到对应表单控件的「DataType」属性,选择ServiceSubStatus枚举类型
  • 将控件的「DisplayType」属性设置为Text(而非默认的Value)
    保存并同步表单后即可正常显示枚举文本。

内容的提问来源于stack exchange,提问作者Granger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 10:15:00