Miklix

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.


Ova je stranica strojno prevedena s engleskog kako bi bila dostupna što većem broju ljudi. Nažalost, strojno prevođenje još nije usavršena tehnologija pa se mogu pojaviti pogreške. Ako želite, izvornu englesku verziju možete pogledati ovdje:

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:

[ExtensionOf(tableStr(CustTable))]
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:

[ExtensionOf(tableStr(CustTable))]
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.

Podijeli na BlueskyPodijelite na FacebookuPodijelite na LinkedInuPodijelite na TumblrPodijeli na XPodijelite na LinkedInuPrikvači na Pinterest

Mikkel Bang Christensen

O autoru

Mikkel Bang Christensen
Mikkel je kreator i vlasnik miklix.com. Ima više od 20 godina iskustva kao profesionalni računalni programer/razvijač softvera i trenutno je zaposlen na puno radno vrijeme za veliku europsku IT korporaciju. Kada ne piše blog, svoje slobodno vrijeme provodi na široku lepezu interesa, hobija i aktivnosti, što se u određenoj mjeri može odraziti na različite teme obrađene na ovoj web stranici.