Tambah Kaedah Paparan atau Edit melalui Sambungan dalam Dynamics 365
Diterbitkan: 19 Mac 2025 pada 9:35:51 PTG UTC
Dalam artikel ini, saya menerangkan cara menggunakan sambungan kelas untuk menambah kaedah paparan pada jadual dan borang dalam Dynamics 365 for Operations, termasuk contoh kod X++.
Add Display or Edit Method via Extension in Dynamics 365
Semasa merancang untuk menggunakan kaedah paparan atau penyuntingan dalam Dynamics, ia adalah sesuatu yang sepatutnya membuat anda mempertimbangkan sama ada anda mungkin boleh merancang penyelesaian anda dengan cara yang berbeza, namun kadang-kadang ia adalah cara terbaik untuk diteruskan.
Dalam versi terdahulu Dynamics dan Axapta, adalah sangat mudah untuk mencipta kaedah paparan atau penyuntingan pada jadual dan borang, tetapi apabila saya baru-baru ini terpaksa membuat kaedah penyuntingan pertama saya dalam Dynamics 365, saya mendapati bahawa prosedur untuk melakukannya agak berbeza.
Secara jelas, terdapat beberapa pendekatan yang sah, tetapi yang saya dapati terbaik (dari segi keintuitifan dan kebersihan kod) adalah dengan menggunakan peluasan kelas. Ya, anda boleh menggunakan peluasan kelas untuk menambah kaedah kepada jenis elemen lain selain kelas - dalam kes ini, sebuah jadual, tetapi ia juga berfungsi untuk borang.
Pertama, cipta sebuah kelas baru. Anda boleh menamakannya apa sahaja yang anda mahu, tetapi atas sebab tertentu ia harus diakhiri dengan "_Extension". Katakan anda perlu menambah kaedah paparan kepada CustTable, anda boleh sebagai contoh menamakannya MyCustTable_Extension.
Kelas tersebut mesti dihias dengan ExtensionOf untuk memberitahu sistem apa yang anda peluaskan, seperti berikut:
public final class MyCustTable_Extension
{
}
Sekarang anda boleh melaksanakan kaedah paparan anda dalam kelas ini, seperti yang anda lakukan terus pada jadual dalam versi Dynamics terdahulu - "this" juga merujuk kepada jadual, jadi anda boleh mengakses medan dan kaedah lain.
Contohnya, sebuah kelas dengan kaedah paparan yang mudah (dan tidak berguna) yang hanya mengembalikan nombor akaun pelanggan boleh kelihatan seperti ini:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
Sekarang, untuk menambah kaedah paparan kepada sebuah borang (atau peluasan borang, jika anda tidak boleh mengedit borang tersebut secara langsung), anda perlu menambah medan ke borang secara manual dan pastikan untuk menggunakan jenis yang betul (string dalam contoh ini).
Seterusnya, pada kawalan tersebut, anda akan menetapkan DataSource kepada CustTable (atau apa sahaja nama sumber data CustTable anda) dan DataMethod kepada MyCustTable_Extension.displayAccountNum (pastikan untuk menyertakan nama kelas, jika tidak penyusun tidak dapat mencari kaedah tersebut).
Dan anda sudah selesai :-)
Kemas kini: Kini tidak lagi perlu untuk menyertakan nama kelas peluasan apabila menambah kaedah paparan kepada borang, tetapi pada masa asal penerbitan, ia adalah perlu. Saya meninggalkan maklumat ini di sini sekiranya ada pembaca yang masih menggunakan versi lama.