TL; DR查詢對話框現場查找不總是在AutoIdentification
場羣的屬性AutoPopulate
設置爲No
定義關係表關係領域工作。他們不工作的一種情況是當數據源與FetchMode
1:n結合在一起時。
雖然Alex K的回答有一些有趣的建議,在我的情況下,罪魁禍首是AutoIdentification
表AgreementHeader
的字段組AutoPopulate
財產。在sys層中,此屬性設置爲No
,如果查詢中的關係爲1:1,則該組包含查詢對話框字段查找中顯示的字段。如果此屬性切換爲Yes
,則查找將顯示字段Agreement header record ID (Record-ID)
(並且只有該字段,不管查詢關係的FetchMode
如何定義)。
基本上,AX將使用來自AutoIdentification
字段組的信息來確定在代理關鍵引用/關係情況下gui中顯示的信息。如果字段組的AutoPopulate
屬性爲Yes
,則AX將使用該表的備用密鑰來確定要使用的字段。如果不存在備用密鑰(表AgreementHeader
的情況),則AX使用關係字段。如果AutoPopulate
是No
,則使用組中定義的字段。但是如上所述,如果查詢中的關係不是1:1(不幸的是沒有像使用關係字段那樣的後備選項似乎已經實現),則此選項不起作用。
FetchMode AutoPopulate Lookup
1:1 Yes AlternateKey (or Relation) fields
1:1 No AutoIdentification fields
1:n Yes AlternateKey (or Relation) fields
1:n No Nothing
更新: 我在這個問題又來了,但這次現場SalesTaker
。原來AutoPopulate
屬性只是故事的一部分,因爲它在HcmWorker
表上設置爲Yes
時沒有解決問題。此表(不同於表AgreementHeader
)也具有屬性ReplacementKey
集合,AX用於填充AutoIdentification
字段組。只有在我刪除了ReplacementKey
之後,AutoIdentification
中再沒有出現任何字段,並且查找現在顯示「銷售員(記錄標識)」。所以底線是AutoIdentification
字段組不能包含任何字段。