【问题标题】:How to Chose Name (or other Field) instead of ID in Lookup ax2012如何在 Lookup ax 2012 中选择名称(或其他字段)而不是 ID
【发布时间】:2019-08-01 20:35:29
【问题描述】:
我正在通过将一个表与另一个表的关系添加来进行查找。我制作了自定义表格并与 HCMWorker 建立了关系。现在我在我的自定义表中添加了一个与 HCMWorker.personalName 的关系。比我制作一个表格添加一个网格并将该字段拖到我的网格中。现在我有一个显示 ID 和名称的查找。现在,当我从查找表 ID 中选择任何项目时,我希望将显示该名称而不是 ID 的字段。有什么解决办法吗?
【问题讨论】:
标签:
lookup
axapta
x++
dynamics-ax-2012
【解决方案1】:
通常方法如下:
使用 HcmWorker 表(父)的 RecId 作为自定义(子)表中的外键,以利用参考组功能。这将允许您创建一个显示与实际 RecId 不同的字段的字段组,但自定义表中的基础数据仍将是 HCMWorker 表的 RecId。使用代理键/RecIds(而不是自然键)作为外键是 Dynamics AX 的最佳实践。
- 在您的自定义表格中添加一个 RefRecid 列
- 将自定义表的 RefRecId 中的外键关系添加回父表的 RecId
- 将字段组添加到父表,其中仅包含要在参考组国家/地区的替换字段组属性中使用的工作人员名称。
- 当您将 RecId 字段从表单数据源拖放到表单上以创建新控件时,您将能够选择替换字段组。
但是这种情况不适用于 HcmWorker,因为由于数据库规范化,该表不包含名称。因此,虽然上述步骤将是您的通用解决方案,但对于您的情况,还有一个更高级的操作,其中涉及创建查找表单。幸运的是,在这种情况下您不必创建自己的查找表单;这已经为您完成了。
使用(拖放)HcmWorkerRecId EDT 到您的自定义表,创建与 HcmWorker 表的外键关系,当您从数据源列表中拖动字段以创建新的时,查找表单应自动使用表单控件(请参阅 EDT 的表单帮助属性)。在选择工作人员时,此查找表单将具有与应用程序的其余部分相同的外观,这也是一种设计最佳实践。使用这种技术应该默认显示名称而不是 ID。