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

时间:2019-07-03 10:47:35

标签: lookup axapta x++ dynamics-ax-2012

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

LookUp Selected Field

1 个答案:

答案 0 :(得分:2)

通常的处理方式如下:

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

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

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

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