温馨提示:本文翻译自stackoverflow.com,查看原文请点击:axapta - How to Chose Name (or other Field) instead of ID in Lookup ax2012
lookup axapta x++ dynamics-ax-2012

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

发布于 2020-03-27 11:06:58

我正在通过将一个表的关系添加到另一个表进行查找。我制作了自定义表格,并与HCMWorker建立了联系。现在,我在自定义表中使用HCMWorker.personalName添加了一个关系。比我创建一个窗体添加一个网格并将其拖到我的网格。现在我有一个显示ID和Name的查询。现在,当我从查找表中选择任何项目时,ID出现在字段中,我希望该名称代替ID出现。有什么办法吗?

抬头 选定领域

查看更多

查看更多

提问者
Sohaib Anwaar
被浏览
29
rjv 2019-08-01 20:35

通常,解决方法如下:

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

  1. 在自定义表中添加RefRecid列
  2. 将自定义表的RefRecId中的外键关系添加回父表的RecId
  3. 将字段组添加到父表中,该字段组仅带有要在“引用组”计数字段上的“替换字段组”属性中使用的工作人员的名称。
  4. 当您将RecId字段从窗体数据源拖放到窗体上以创建新控件时,您将能够选择替换字段组。

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

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