Weergave- of bewerkingsmethode toevoegen via extensie in Dynamics 365
Gepubliceerd: 16 februari 2025 om 11:55:48 UTC
In dit artikel leg ik uit hoe u een klasse-extensie gebruikt om een display-methode toe te voegen aan een tabel en een formulier in Dynamics 365 for Operations, inclusief X++-codevoorbeelden.
Add Display or Edit Method via Extension in Dynamics 365
Als u van plan bent om weergave- of bewerkingsmethoden in Dynamics te gebruiken, moet u er doorgaans over nadenken of u uw oplossing niet op een andere manier kunt ontwerpen. Soms zijn ze echter de beste oplossing.
In eerdere versies van Dynamics en Axapta was het heel eenvoudig om weergave- of bewerkingsmethoden voor tabellen en formulieren te maken. Maar toen ik onlangs mijn eerste bewerkingsmethode in Dynamics 365 moest maken, ontdekte ik dat de procedure daarvoor enigszins anders is.
Er zijn duidelijk meerdere geldige benaderingen, maar degene die ik het beste vind (zowel qua intuïtiviteit als codefraaiheid) is om een class extension te gebruiken. Ja, je kunt class extensions 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. U kunt het elke naam geven die u wilt, maar om een of andere reden moet het het suffix "_Extension" hebben. Stel dat u een display-methode aan CustTable wilt toevoegen, dan kunt u het bijvoorbeeld MyCustTable_Extension noemen.
De klasse moet worden gedecoreerd met ExtensionOf om het systeem te laten weten wat u uitbreidt, zoals hier:
public final class MyCustTable_Extension
{
}
Nu kunt u uw display-methode gewoon in deze klasse implementeren, zoals u dat in eerdere versies van Dynamics rechtstreeks in de tabel zou hebben gedaan. 'this' verwijst zelfs naar de tabel, zodat u toegang hebt tot velden en andere methoden.
Een klasse met een eenvoudige (en volkomen nutteloze) display-methode die alleen het rekeningnummer van de klant retourneert, zou er bijvoorbeeld zo uit kunnen zien:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
Om de display-methode aan een formulier (of formulierextensie, als u het formulier niet rechtstreeks kunt bewerken) toe te voegen, moet u handmatig een veld aan het formulier toevoegen. Zorg er daarbij voor dat u het juiste type gebruikt (in dit voorbeeld een tekenreeks).
Vervolgens stelt u op het besturingselement DataSource in op CustTable (of hoe uw CustTable-gegevensbron ook heet) en DataMethod op MyCustTable_Extension.displayAccountNum (zorg ervoor dat u de klassenaam opneemt, anders kan de compiler de methode niet vinden).
En klaar :-)
Update: Het is niet langer nodig om de extensieklassenaam op te nemen bij het toevoegen van de display-methode aan een formulier, maar op het oorspronkelijke moment van publicatie was dat wel het geval. Ik laat de informatie hier achter voor het geval dat sommige lezers nog oudere versies gebruiken.