簡體   English   中英

Dynamics AX 2012下拉列表-國家

[英]Dynamics AX 2012 Drop Down - Country

我將“原產國”添加到InventTable。 我創建了一個新字段,該字段擴展了LogisticsAddressCountryRegionId。 我將字段添加到InventTable,然后將該字段添加到字段組。 一切正常。 打開下拉菜單后,該表單上會顯示一個代碼(如“ USA”)和說明(Description)(如“ United States”)。 當下拉列表關閉時,顯示“ USA”。 我們希望改為顯示描述。 這可能嗎? 有什么建議怎么做?

謝謝! 托尼

A)如果描述(在您的方案“美國”中)是LogisticsAddressCountryRegion中的一個字段而不是顯示字段,則正確的執行方式如下:

  1. 在InventTable中創建一個新的Relation,將其Table屬性設置為LogisticsAddressCountryRegion
  2. 右鍵單擊新的Relation,選擇“新建”>“ ForeignKey”>“基於單個字段AlternateKey”
  3. 它將自動創建類型為RefRecId的新字段LogisticsAddressCountryRegion(而不是示例中的LogisticsAddressCountryRegionId!)。 然后,您可以將其ExtendedDataType屬性從RefRecId手動更改為LogisticsAddressCountryRegionRecId
  4. 現在,如果您手動將此字段從表單的數據源拖放到表單中的網格或組中,則將創建ReferenceGroup控件
  5. 默認情況下,此控件將顯示LogisticsAddressCountryRegion中的CountryRegionId(“ US”)(現在對您有效)。 您不需要它-您希望顯示說明。 在這種情況下,需要將ReferenceGroup的ReplacementFieldGroup屬性值從AutoIdentification更改為Description(大概是LogisticsAddressCountryRegion表中包含Description字段的組的名稱)。
  6. Voilà-描述(“美國”)以這種形式顯示,並且查找仍然可以像以前一樣使用

B)但是,在您的特定情況下,由於表LogisticsAddressCountryRegion中沒有Description字段,因此無法使用此方法-顯示方法displayName從另一個表(LogisticsAddressCountryRegionTranslation)中提取描述。

在這種情況下,可以使用比較笨拙的方法:在InventTable中創建一個編輯方法,它應該使用擴展數據類型LogisticsAddressCountryRegionShortName。 對其進行編碼,以便a)根據輸入的值更新InventTable中的“原產國”字段,並b)根據“原產國”字段值顯示LogisticsAddressCountryRegion.displayName()。 如果您需要編碼此方法的幫助,我可以建議。 然后拖放該編輯方法以在表單中創建一個StringEdit控件。 而已。 請注意,您將無法使用此控件中的值對表單進行排序和過濾。

C)不要理會以上內容。 使用2個控件:一個選擇原產國(它將顯示“美國”),另一個選擇顯示描述(“美國”)。 您當前解決方案中需要更改的所有內容都是基於顯示方法添加一個新控件-一旦選擇了“原產國”,顯示方法將顯示其說明。 我建議您使用這種方法。

Nota bene: “實際上-我想出了一種方法。我創建的字段與“ ShortName”的長度相同,為255。然后,我只是覆蓋了該字段的查找方法。” -不,不,這是一個非常糟糕的主意,請不要這樣做。 InventTable和LogisticsAddressCountryRegion(到CountryRegionId或RecId的鏈接)之間必須存在ForeignKey關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM