透過 Dynamics 365 中的擴充功能新增顯示或編輯方法
已發佈: 2025年2月16日 上午11:56:14 [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(確保包含類別名,否則編譯器找不到該方法)。
您已完成 :-)
更新:在表單新增顯示方法時不再需要包含擴充類別名,但在最初發佈時是需要的。我在這裡留下這些資訊以防有些讀者仍在使用舊版本。