Drop down menu Dynamics AX 2012下拉列表-国家/地区

Drop down menu Dynamics AX 2012下拉列表-国家/地区,drop-down-menu,axapta,dynamics-ax-2012-r2,Drop Down Menu,Axapta,Dynamics Ax 2012 R2,我在InventTable中添加了“原产国”。我创建了一个扩展LogisticsAddressCountryRegionId的新字段。我将该字段添加到InventTable,然后将该字段添加到字段组。一切正常。表单上有一个下拉列表,当下拉列表打开时显示代码(如“USA”)和说明(如“USA”)。当下拉列表关闭时,显示“美国”。我们希望它显示描述。这可能吗?有什么建议吗 谢谢! TonyA)如果描述(在您的场景“美国”)是LogisticsAddressCountryRegion中的一个字段而不是

我在InventTable中添加了“原产国”。我创建了一个扩展LogisticsAddressCountryRegionId的新字段。我将该字段添加到InventTable,然后将该字段添加到字段组。一切正常。表单上有一个下拉列表,当下拉列表打开时显示代码(如“USA”)和说明(如“USA”)。当下拉列表关闭时,显示“美国”。我们希望它显示描述。这可能吗?有什么建议吗

谢谢! Tony

A)如果描述(在您的场景“美国”)是LogisticsAddressCountryRegion中的一个字段而不是一个显示字段,那么正确的做法如下:

  • 在InventTable中创建新关系,将其表属性设置为LogisticsAddressCountryRegion
  • 在新关系上单击鼠标右键,选择“新建>外键>基于单个字段的替换键”
  • 它将自动创建RefRecId类型的新字段LogisticsAddressCountryRegion(而不是像您的示例中那样的LogisticsAddressCountryRegionId!)。然后,您可以手动将其ExtendedDataType属性从RefRecId更改为LogisticsAddressCountryRegionRecId
  • 现在,如果手动将此字段从表单的数据源拖放到表单中的网格或组,将创建ReferenceGroup控件
  • 默认情况下,此控件将显示LogisticsAddressCountryRegion中的CountryRegionId(“US”)(与您现在使用的方式相同)。您不需要它-您希望显示描述。在这种情况下,ReferenceGroup的ReplacementFieldGroup属性值需要从AutoIdentification更改为Description(可能是包含Description字段的LogisticsAddressCountryRegion表中的组名)
  • 瞧,描述(“美国”)以这种形式显示,查找仍然可以像以前一样使用
  • B)但是,在您的特定场景中,无法使用这种方法,因为表LogisticsAddressCountryRegion中没有描述字段-有显示方法displayName,它从另一个表中提取描述(LogisticsAddressCountryRegionTranslation)

    在这种情况下,可以使用更笨拙的方法:在InventTable中创建一个编辑方法,它应该使用扩展数据类型LogisticsAddressCountryRegionShortName。对其编码,使其a)根据输入的值更新InventTable中的“原产国”字段,b)根据“原产国”字段值显示LogisticsAddressCountryRegion.displayName()。如果您需要帮助编码这种方法,我可以提供建议。然后拖放该编辑方法以在窗体中创建StringEdit控件。就这样。请注意,您将无法使用此控件中的值对表单进行排序和筛选

    C)不要为上述内容操心。使用两个控件:一个用于选择原产国(将显示“美国”),另一个用于显示说明(“美国”)。在当前解决方案中,您只需根据显示方法添加一个新控件-一旦选择了原产国,显示方法将显示其说明。我建议您使用这种方法


    没有好处:“事实上,我找到了一种方法。我创建的字段与“ShortName”的长度相同,即255。然后,我只是覆盖了字段上的查找方法。”-不,不,这是一个非常糟糕的主意,不要这样做。InventTable和LogisticsAddressCountryRegion(指向CountryRegionId或RecId的链接)之间必须存在ForeignKey关系。

    请发布您的代码。实际上没有任何代码可发布。到目前为止,一切都很顺利。如果你愿意,我可以把xpo寄给你?事实上,我想出了一个办法。我创建的字段长度与“ShortName”相同,即255。然后,我就在字段上重写了查找方法。谢谢!非常感谢!