Miklix

Weergave- of bewerkingsmethode toevoegen via extensie in Dynamics 365

Gepubliceerd: 16 februari 2025 om 11:55:48 UTC
Laatst bijgewerkt: 12 januari 2026 om 08:57:25 UTC

In dit artikel leg ik uit hoe je een klasse-extensie kunt gebruiken om een weergavemethode toe te voegen aan een tabel en een formulier in Dynamics 365 for Operations, inclusief X++-codevoorbeelden.


Deze pagina is machinaal uit het Engels vertaald om hem voor zoveel mogelijk mensen toegankelijk te maken. Helaas is machinevertaling nog geen geperfectioneerde technologie, dus er kunnen fouten optreden. Als je dat liever hebt, kun je hier de originele Engelse versie bekijken:

Add Display or Edit Method via Extension in Dynamics 365

Hoewel het plannen van weergave- of bewerkingsmethoden in Dynamics doorgaans aanleiding geeft om te overwegen of je je oplossing misschien op een andere manier zou kunnen ontwerpen, zijn ze soms de beste optie.

In eerdere versies van Dynamics en Axapta was het heel eenvoudig om weergave- of bewerkingsmethoden aan tabellen en formulieren toe te voegen, maar toen ik onlangs mijn eerste bewerkingsmethode in Dynamics 365 moest maken, ontdekte ik dat de procedure daarvoor enigszins anders is.

Er zijn uiteraard verschillende geldige benaderingen, maar degene die ik het beste vind (zowel qua intuïtiviteit als qua code-elegantie) is het gebruik van een klasse-extensie. Ja, je kunt klasse-extensies gebruiken om methoden toe te voegen aan andere elementtypen dan klassen - in dit geval een tabel - maar het werkt ook voor formulieren.

Maak eerst een nieuwe klasse aan. Je kunt hem elke naam geven die je wilt, maar om een of andere reden moet hij eindigen op "_Extension". Stel dat je een weergavemethode aan CustTable wilt toevoegen, dan zou je hem bijvoorbeeld MyCustTable_Extension kunnen noemen.

De klasse moet worden voorzien van de annotatie ExtensionOf om het systeem te laten weten wat je uitbreidt, zoals in het volgende voorbeeld:

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

Nu kunt u uw weergavemethode gewoon in deze klasse implementeren, net zoals u dat in eerdere versies van Dynamics rechtstreeks op de tabel zou hebben gedaan. "This" verwijst zelfs naar de tabel, zodat u toegang hebt tot velden en andere methoden.

Een klasse met een simpele (en volstrekt nutteloze) weergavemethode die alleen het klantnummer retourneert, zou er bijvoorbeeld zo uit kunnen zien:

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

        return this.AccountNum;
    }
}

Om de weergavemethode aan een formulier (of formulieruitbreiding, als je het formulier niet rechtstreeks kunt bewerken) toe te voegen, moet je handmatig een veld aan het formulier toevoegen en ervoor zorgen dat je het juiste type gebruikt (string in dit voorbeeld).

Stel vervolgens in het besturingselement DataSource in op CustTable (of de naam van uw CustTable-gegevensbron) en DataMethod op MyCustTable_Extension.displayAccountNum (zorg ervoor dat u de klassenaam toevoegt, anders kan de compiler de methode niet vinden).

En klaar is Kees :-)

Update: Het is niet langer nodig om de naam van de extensieklasse op te nemen bij het toevoegen van de weergavemethode aan een formulier, maar ten tijde van de oorspronkelijke publicatie was dit wel het geval. Ik laat de informatie hier staan voor het geval sommige lezers nog oudere versies gebruiken.

Verder lezen

Als je dit bericht leuk vond, vind je deze suggesties misschien ook interessant:


Delen op BlueskyDelen op FacebookDelen op LinkedInDelen op TumblrDelen op XDelen op LinkedInPin op Pinterest

Mikkel Christensen

Over de auteur

Mikkel Christensen
Mikkel is de bedenker en eigenaar van miklix.com. Hij heeft meer dan 20 jaar ervaring als professioneel computerprogrammeur/softwareontwikkelaar en werkt momenteel fulltime voor een groot Europees IT-bedrijf. Als hij niet blogt, besteedt hij zijn vrije tijd aan een breed scala aan interesses, hobby's en activiteiten, die tot op zekere hoogte weerspiegeld kunnen worden in de verscheidenheid aan onderwerpen op deze website.