如何在 Lookup ax 2012 中选择名称(或其他字段)而不是 ID

How to Chose Name (or other Field) instead of ID in Lookup ax2012

我正在通过将一个 table 的关系添加到另一个来进行查找。我定制了 table 并与 HCMWorker 建立了关系。现在,我在自定义 table 中添加了一个与 HCMWorker.personalName 的关系。然后我制作一个表格,向其添加一个网格并将该字段拖到我的网格中。现在我有一个显示 ID 和名称的查找。现在,当我 select 查找 table ID 中的任何项目出现到字段中时,我希望该名称将显示而不是 ID。任何解决方案?

通常处理方法如下所示:

使用 HcmWorker table(父)的 RecId 作为自定义(子)中的外键 table 以利用引用组功能。这将允许您创建一个显示与实际 RecId 不同的字段的字段组,但自定义 table 中的基础数据仍将是 HCMWorker table 的 RecId。使用代理项 key/RecIds(而不是自然键)作为外键是 Dynamics AX 的最佳实践。

  1. 在您的自定义中添加 RefRecid 列 table
  2. 将自定义 table 的 RefRecId 中的外键关系添加回父 table 的 RecId
  3. 向父级 table 添加一个字段组,其中仅包含要在参考组计数器上的替换字段组 属性 中使用的工作人员姓名。
  4. 当您将 RecId 字段从表单数据源拖放到表单上以创建新控件时,您将能够 select 替换字段组。

但是这种情况不适用于 HcmWorker,因为 table 不包含由于数据库规范化而导致的名称。因此,虽然上述步骤将是您的通用解决方案,但对于您的情况,有一个更高级的操作涉及创建查找表单。幸运的是,您不必在这种情况下创建自己的查找表单;这已经为您完成了。

使用(拖放)HcmWorkerRecId EDT 到您的自定义 table,创建返回 HcmWorker 的外键关系 table 并且当您拖动时查找表单应该自动投入使用数据源列表中的字段以创建新的表单控件(请参阅 EDT 的表单帮助 属性)。当 selecting 工作人员时,此查找表单将具有与应用程序其余部分相同的外观和感觉,这也是设计最佳实践。使用此技术应该默认显示名称而不是 ID。