透過 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 裝飾器來修飾該類,以便系統知道您正在擴展哪個類,如下所示:
public final class MyCustTable_Extension
{
}
現在,您可以像在早期版本的 Dynamics 中直接在表格上一樣,在這個類別中實現您的顯示方法——「this」甚至引用了表格,因此您可以存取欄位和其他方法。
例如,一個包含簡單(且完全無用)的顯示方法的類,該方法僅傳回客戶的帳號,可能如下所示:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
現在,要向表單(或表單擴展,如果您無法直接編輯表單)新增顯示方法,您需要手動向表單新增一個字段,並確保使用正確的類型(在本例中為字串)。
然後,在控制項中,將 DataSource 設定為 CustTable(或 CustTable 資料來源的任何名稱),並將 DataMethod 設定為 MyCustTable_Extension.displayAccountNum(確保包含類別名,否則編譯器找不到該方法)。
大功告成 :-)
更新:現在向窗體新增顯示方法時不再需要包含擴充類別名,但在最初發佈時需要。我保留此信息,以防部分讀者仍在使用舊版本。
進一步閱讀
如果您喜歡這篇文章,您可能也會喜歡這些建議:
