Miklix

Tambahkan Tampilan atau Edit Metode melalui Ekstensi di Dynamics 365

Diterbitkan: 16 Februari 2025 pukul 11.55.36 UTC
Terakhir diperbarui: 12 Januari 2026 pukul 08.57.20 UTC

Pada artikel ini, saya menjelaskan cara menggunakan ekstensi kelas untuk menambahkan metode tampilan ke tabel dan formulir di Dynamics 365 for Operations, termasuk contoh kode X++.


Halaman ini diterjemahkan oleh mesin dari bahasa Inggris agar dapat diakses oleh sebanyak mungkin orang. Sayangnya, terjemahan mesin belum merupakan teknologi yang sempurna, sehingga kesalahan dapat terjadi. Jika Anda mau, Anda dapat melihat versi bahasa Inggris aslinya di sini:

Add Display or Edit Method via Extension in Dynamics 365

Meskipun merencanakan penggunaan metode tampilan atau pengeditan di Dynamics umumnya akan membuat Anda mempertimbangkan apakah Anda mungkin dapat mendesain solusi Anda dengan cara yang berbeda, terkadang metode tersebut adalah cara terbaik.

Pada versi Dynamics dan Axapta sebelumnya, membuat metode tampilan atau pengeditan pada tabel dan formulir sangat mudah, tetapi ketika baru-baru ini saya harus membuat metode pengeditan pertama saya di Dynamics 365, saya menemukan bahwa prosedurnya agak berbeda.

Jelas ada beberapa pendekatan yang valid, tetapi yang menurut saya terbaik (baik dari segi intuisi maupun keindahan kode) adalah menggunakan ekstensi kelas. Ya, Anda dapat menggunakan ekstensi kelas untuk menambahkan metode ke tipe elemen lain selain kelas - dalam hal ini tabel, tetapi ini juga berlaku untuk formulir.

Pertama, buat kelas baru. Anda dapat menamainya apa saja, tetapi karena alasan tertentu harus diakhiri dengan "_Extension". Misalnya, jika Anda perlu menambahkan metode tampilan ke CustTable, Anda dapat menamainya MyCustTable_Extension.

Kelas tersebut harus diberi dekorasi ExtensionOf agar sistem mengetahui apa yang Anda perluas, seperti ini:

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

Sekarang Anda dapat mengimplementasikan metode tampilan Anda di kelas ini, seperti yang Anda lakukan langsung pada tabel di versi Dynamics sebelumnya - "this" bahkan merujuk ke tabel, sehingga Anda dapat mengakses field dan metode lainnya.

Sebagai contoh, sebuah kelas dengan metode tampilan yang sederhana (dan sama sekali tidak berguna) yang hanya mengembalikan nomor rekening pelanggan dapat terlihat seperti ini:

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

        return this.AccountNum;
    }
}

Sekarang, untuk menambahkan metode tampilan ke formulir (atau ekstensi formulir, jika Anda tidak dapat mengedit formulir secara langsung), Anda perlu menambahkan bidang ke formulir secara manual dan pastikan untuk menggunakan tipe yang benar (string dalam contoh ini).

Kemudian, pada kontrol tersebut Anda akan mengatur DataSource ke CustTable (atau apa pun nama sumber data CustTable Anda) dan DataMethod ke MyCustTable_Extension.displayAccountNum (pastikan untuk menyertakan nama kelas, jika tidak, kompiler tidak dapat menemukan metode tersebut).

Selesai :-)

Pembaruan: Sekarang tidak perlu lagi menyertakan nama kelas ekstensi saat menambahkan metode tampilan ke formulir, tetapi pada saat publikasi awal, hal itu diperlukan. Saya tetap mencantumkan informasi ini di sini jika beberapa pembaca masih menggunakan versi yang lebih lama.

Bacaan Lebih Lanjut

Jika Anda menikmati postingan ini, Anda mungkin juga menyukai saran berikut:


Bagikan di BlueskyBagikan di FacebookBagikan di LinkedInBagikan di TumblrBagikan di XBagikan di LinkedInPin di Pinterest

Mikkel Christensen

Tentang Penulis

Mikkel Christensen
Mikkel adalah pencipta dan pemilik miklix.com. Dia memiliki lebih dari 20 tahun pengalaman sebagai pemrogram komputer profesional/pengembang perangkat lunak dan saat ini bekerja penuh waktu di sebuah perusahaan IT besar di Eropa. Ketika tidak menulis blog, ia menghabiskan waktu luangnya untuk beragam minat, hobi, dan kegiatan, yang mungkin sampai batas tertentu tercermin dalam berbagai topik yang dibahas di situs web ini.