无法通过UI正确设置Dynamics AX强制枚举字段

时间:2011-04-13 13:29:16

标签: dynamics-ax-2009 axapta

有人可以向我解释以下行为吗?

当AX Table中的字段类型设置为Enum时,您可以选择任何Enum值作为该字段的值。

但是,如果您将字段设为Mandatory,则无法再通过用户界面选择列表中的第一个Enum值。

显然,这可以通过不使该字段强制性来解决。我正在寻找对这种奇怪行为的解释。

2 个答案:

答案 0 :(得分:6)

AX没有空值概念。而是通过定义将以下值视为“未输入”:

  • string:blank
  • int和int64:0(零)
  • enum:0(通常是第一个值)
  • 日期:01 \ 01 \ 1900(显示为空白)

对于新的基本枚举,请创建一个空的零枚举值(按惯例名称为无)。这将使此枚举类型可以使用必填字段。

另请查看:Mark mandatory fields on form, if not filled with valid value

答案 1 :(得分:1)

你说“如果你使字段为必填项,你就不能再通过用户界面选择列表中的第一个枚举值” - 这正是强制属性对枚举的作用:阻止你使用零值。例如。如果你强制NoYesId,那么你只能输入Yes,因为No将不再被允许 - 为什么你需要在表格中使用它?

请注意,从用户的角度来看,并不一定清楚枚举值是零是什么,所以如果它的工作方式不起作用,那么在强制枚举时理解不允许的值可能会很棘手。