Miklix

在 Dynamics 365 中為財務維度建立查找字段

已發佈: 2025年2月16日 上午11:34:14 [UTC]
最後更新: 2026年1月12日 上午8:56:20 [UTC]

本文解釋如何在 Dynamics 365 for Operations 中為財務維度建立查找字段,並提供了一個 X++ 程式碼範例。


該頁面是由英語機器翻譯而來的,以便盡可能多的人可以訪問。不幸的是,機器翻譯還不是一項完善的技術,因此可能會出現錯誤。如果您願意,可以在這裡查看原始英文版本:

Creating a Lookup Field for a Financial Dimension in Dynamics 365

本文中的資訊是基於 Dynamics 365 for Operations,但其中大部分也適用於 Dynamics AX 2012(見下文)。

我最近的任務是建立一個新字段,該字段應能夠指定一個財務維度,在本例中為「產品」。當然,新欄位也應能找到該維度的有效值。

這比在表中進行常規查找要複雜一些,但如果你知道方法,其實並不難。

幸運的是,標準應用程式提供了一個方便的查找表單(DimensionLookup),只要告訴它要查找哪個維度屬性,就可以用於此目的。

首先,您需要建立表單欄位本身。它可以基於表格欄位或編輯方法,對查找本身並不重要,但它必須以某種方式使用 DimensionValue 擴展資料類型。

接下來,您需要為該欄位建立一個 OnLookup 事件處理程序。若要建立事件處理程序,請以滑鼠右鍵按一下該欄位的 OnLookup 事件,然後選擇「複製事件處理程序方法」。之後,您可以將一個空的事件處理程序方法貼到類別中,並從那裡進行編輯。

注意:大部分內容也適用於 Dynamics AX 2012,但您可以重寫表單欄位的尋找方法,而不是建立事件處理程序。

事件處理程序必須類似於這樣(根據需要替換表單名稱和欄位名稱):

[
    FormControlEventHandler(formControlStr( MyForm,
                                            MyProductDimField),
                            FormControlEventType::Lookup)
]
public static void MyProductDimField_OnLookup(  FormControl _sender,
                                                FormControlEventArgs _e)
{
    FormStringControl   control;
    Args                args;
    FormRun             formRun;
    DimensionAttribute  dimAttribute;
    ;

    dimAttribute    =   DimensionAttribute::findByName('Product');
    args            =   new Args();
    args.record(dimAttribute);
    args.caller(_sender);
    args.name(formStr(DimensionLookup));
    formRun         =   classFactory.formRunClass(args);formRun.init();
    control         =   _sender as FormStringControl;
    control.performFormLookup(formRun);
}

進一步閱讀

如果您喜歡這篇文章,您可能也會喜歡這些建議:


分享至 Bluesky在 Facebook 分享在 LinkedIn 分享在 Tumblr 上分享分享至 X在 LinkedIn 分享固定在 Pinterest 上

Mikkel Christensen

關於作者

Mikkel Christensen
麥可 是 miklix.com 的創建者和所有者。他有超過 20 年的專業電腦程式設計師/軟體開發人員經驗,目前全職受僱於一家歐洲大型 IT 公司。不寫部落格時,他會將業餘時間花在各種各樣的興趣、愛好和活動上,這在一定程度上反映在本網站所涵蓋的主題的多樣性上。