GETENUMVALUEBYNAME ER 函数
GETENUMVALUEBYNAME
函数通过使用指定为字符串值的枚举名称在指定的枚举数据源中搜索特定的枚举值。 如果找到枚举值,函数将返回此值。 否则,此函数将返回空枚举值。
语法
GETENUMVALUEBYNAME (enumeration data source path, enumeration value text)
参数
enumeration data source path
:枚举
下列枚举类型之一的数据源的有效路径:
- 电子申报 (ER) 模型枚举
- ER 格式枚举
- Microsoft Dynamics 365 Finance 枚举
enumeration value text
:字符串
代表单个枚举值的名称的字符串值。
返回值
可空枚举
生成的枚举值。
使用说明
如果使用指定为字符串值的枚举值的名称未找到枚举值,不会引发异常。
示例 1
在下图中,数据模型中引入了 ReportDirection 枚举。 请注意,为枚举值定义标签。
下图显示以下详细信息:
- $Direction 数据源在 ER 报表中配置。 此数据源是根据 ReportDirection 模型枚举配置的。
$IsArrivals
表达式设计为将基于模型枚举的 $Direction 数据源用作此函数的参数。- 此比较表达式的值为 TRUE。
示例 2
GETENUMVALUEBYNAME
和 LISTOFFIELDS
函数可让您作为文本值提取支持的枚举的值和标签。 (支持的枚举有应用程序枚举、数据模型枚举和格式枚举。)
在下图中,模型映射中引入了 TransType 数据源。 此数据源引用 LedgerTransType 应用程序枚举。
下图显示了在模型映射中配置的 TransTypeList 数据源。 此数据源是根据 TransType 应用程序枚举配置的。 LISTOFFIELDS
函数用于将所有枚举值作为包含字段的记录列表返回。 这样,每个枚举值的详细信息都将公开。
注释
将使用 GETENUMVALUEBYNAME(TransType, TransTypeList.Name)
表达式为 TransTypeList 数据源配置 EnumValue 字段。 此字段为此列表中的每个记录返回枚举值。
下图显示了在模型映射中配置的 VendTrans 数据源。 此数据源从 VendTrans 应用程序表返回供应商交易记录。 每个交易记录的分类帐类型由 TransType 字段的值定义。
注释
将使用 FIRSTORNULL(WHERE(TransTypeList, TransTypeList.EnumValue = @.TransType)).Label
表达式为 VendTrans 数据源配置 TransTypeTitle 字段。 此字段以文本形式返回当前交易记录的枚举值的标签(如果此枚举值可用)。 否则,将返回一个空字符串值。
TransTypeTitle 字段将绑定到数据模型的 LedgerType 字段,让此信息可以在使用该数据模型作为数据源的每个 ER 格式中使用。
下图显示了如何使用数据源调试器测试配置的模型映射。
数据模型的 LedgerType 字段预期将公开交易记录类型的标签。
如果您计划将这种方法用于大量交易记录数据,则必须考虑执行性能。 有关详细信息,请参阅跟踪 ER 格式的执行以解决性能问题。