Miklix

透過 Dynamics 365 中的擴充功能新增顯示或編輯方法

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

本文將介紹如何使用類別擴充功能為 Dynamics 365 for Operations 中的表格和表單新增顯示方法,並附有 X++ 程式碼範例。


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

Add Display or Edit Method via Extension in Dynamics 365

雖然在 Dynamics 中規劃使用顯示或編輯方法通常應該讓您考慮是否可以以不同的方式設計解決方案,但有時它們是最佳選擇。

在先前的 Dynamics 和 Axapta 版本中,在表格和表單上建立顯示或編輯方法非常容易,但最近當我需要在 Dynamics 365 中建立我的第一個編輯方法時,我發現執行此操作的過程有所不同。

顯然有幾種有效的方法,但我認為最好的方法(無論從直觀性還是程式碼美觀性方面來說)是使用類別擴展。是的,您可以使用類別擴展為類別以外的其他元素類型添加方法——在本例中是表格,但它也適用於表單。

首先,建立一個新類別。你可以隨意命名,但出於某種原因,它必須以“_Extension”為後綴。例如,假設你需要在 CustTable 中新增一個顯示方法,你可以將其命名為 MyCustTable_Extension。

必須使用 ExtensionOf 裝飾器來修飾該類,以便系統知道您正在擴展哪個類,如下所示:

[ExtensionOf(tableStr(CustTable))]
public final class MyCustTable_Extension
{
}

現在,您可以像在早期版本的 Dynamics 中直接在表格上一樣,在這個類別中實現您的顯示方法——「this」甚至引用了表格,因此您可以存取欄位和其他方法。

例如,一個包含簡單(且完全無用)的顯示方法的類,該方法僅傳回客戶的帳號,可能如下所示:

[ExtensionOf(tableStr(CustTable))]
public final class MyCustTable_Extension
{
    public display CustAccount displayAccountNum()
    {
        ;

        return this.AccountNum;
    }
}

現在,要向表單(或表單擴展,如果您無法直接編輯表單)新增顯示方法,您需要手動向表單新增一個字段,並確保使用正確的類型(在本例中為字串)。

然後,在控制項中,將 DataSource 設定為 CustTable(或 CustTable 資料來源的任何名稱),並將 DataMethod 設定為 MyCustTable_Extension.displayAccountNum(確保包含類別名,否則編譯器找不到該方法)。

大功告成 :-)

更新:現在向窗體新增顯示方法時不再需要包含擴充類別名,但在最初發佈時需要。我保留此信息,以防部分讀者仍在使用舊版本。

進一步閱讀

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


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

Mikkel Christensen

關於作者

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