Dodajte metodu prikaza ili uređivanja putem proširenja u Dynamics 365
Objavljeno: 16. februar 2025. u 11:57:08 UTC
U ovom članku objašnjavam kako koristiti ekstenziju klase za dodavanje metode prikaza u tablicu i obrazac u Dynamics 365 for Operations, uključujući primjere X++ koda.
Add Display or Edit Method via Extension in Dynamics 365
Iako je planiranje korištenja metoda prikaza ili uređivanja u Dynamics-u nešto što bi vas općenito trebalo navesti da razmislite da li biste možda mogli dizajnirati svoje rješenje na drugačiji način, povremeno su oni najbolji način.
U prethodnim verzijama Dynamics i Axapta, bilo je vrlo lako kreirati metode prikaza ili uređivanja na tabelama i obrascima, ali kada sam nedavno morao napraviti svoj prvi metod uređivanja u Dynamics 365, otkrio sam da je procedura za to nešto drugačija.
Očigledno postoji nekoliko valjanih pristupa, ali jedan za koji smatram da je najbolji (i u smislu intuitivnosti i lepote koda) je korištenje ekstenzije klase. Da, možete koristiti ekstenzije klase za dodavanje metoda drugim tipovima elemenata osim klasama - u ovom slučaju tablici, ali to radi i za forme.
Prvo kreirajte novu klasu. Možete ga imenovati kako god želite, ali iz nekog razloga mora imati sufiks "_Extension". Recimo da trebate dodati metodu prikaza u CustTable, možete je na primjer nazvati MyCustTable_Extension.
Klasa mora biti ukrašena ExtensionOf kako bi sistem znao šta proširujete, na primjer:
public final class MyCustTable_Extension
{
}
Sada možete jednostavno implementirati svoj metod prikaza u ovoj klasi, kao što biste to uradili direktno na tablici u ranijim verzijama Dynamics-a - "ovo" čak upućuje na tabelu, tako da možete pristupiti poljima i drugim metodama.
Na primjer, klasa s jednostavnom (i potpuno beskorisnom) metodom prikaza koja samo vraća broj računa korisnika mogla bi izgledati ovako:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
Sada, da dodate metodu prikaza u obrazac (ili ekstenziju obrasca, ako ne možete direktno uređivati obrazac), morate ručno dodati polje u obrazac i osigurati da koristite ispravan tip (string u ovom primjeru).
Zatim, na kontroli biste postavili DataSource na CustTable (ili bilo koje drugo ime vašeg izvora podataka CustTable) i DataMethod na MyCustTable_Extension.displayAccountNum (obavezno uključite ime klase, inače kompajler ne može pronaći metodu).
I gotovi ste :-)
Ažuriranje: Više nije potrebno uključiti naziv klase ekstenzije prilikom dodavanja metode prikaza u obrazac, ali u originalno vrijeme objavljivanja jeste. Ovdje ostavljam informacije u slučaju da neki čitaoci još uvijek koriste starije verzije.