Dodajte metodu prikaza ili uređivanja putem proširenja u sustavu Dynamics 365
Objavljeno: 16. veljače 2025. u 11:57:40 UTC
U ovom članku objašnjavam kako koristiti proširenje 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 Dynamicsu nešto što bi vas općenito trebalo natjerati da razmislite o tome biste li možda mogli dizajnirati svoje rješenje na drugačiji način, povremeno su oni najbolji način.
U prethodnim verzijama sustava Dynamics i Axapta bilo je vrlo jednostavno kreirati metode prikaza ili uređivanja na tablicama i obrascima, no kad sam nedavno morao napraviti svoju prvu metodu uređivanja u Dynamics 365, otkrio sam da je postupak za to nešto drugačiji.
Očito postoji nekoliko valjanih pristupa, ali onaj koji smatram najboljim (i u smislu intuitivnosti i ljepote koda) je korištenje proširenja klase. Da, možete koristiti proširenja klase za dodavanje metoda drugim vrstama elemenata osim klasa - u ovom slučaju tablici, ali funkcionira i za obrasce.
Prvo stvorite 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 nazvati MyCustTable_Extension.
Klasa mora biti ukrašena s ExtensionOf kako bi sustav znao što proširujete, ovako:
public final class MyCustTable_Extension
{
}
Sada možete jednostavno implementirati svoju metodu prikaza u ovoj klasi, kao što biste to učinili izravno na tablici u ranijim verzijama Dynamicsa - "ovo" se čak referira na tablicu, 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 kupca mogla bi izgledati ovako:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
Sada, da biste dodali metodu prikaza u obrazac (ili proširenje obrasca, ako ne možete izravno uređivati obrazac), morate ručno dodati polje u obrazac i pobrinuti se da koristite ispravnu vrstu (string u ovom primjeru).
Zatim biste na kontroli postavili DataSource na CustTable (ili bilo koji naziv vašeg izvora podataka CustTable) i DataMethod na MyCustTable_Extension.displayAccountNum (svakako uključite naziv klase, inače kompajler ne može pronaći metodu).
I gotovi ste :-)
Ažuriranje: više nije potrebno uključiti naziv klase proširenja prilikom dodavanja metode prikaza u obrazac, ali u izvornom trenutku objavljivanja, bilo je. Ovdje ostavljam informacije u slučaju da neki čitatelji još uvijek koriste starije verzije.