Voeg vertoning of wysigingsmetode by via uitbreiding in Dynamics 365
Gepubliseer: 16 Februarie 2025 om 11:56:42 UTC
In hierdie artikel verduidelik ek hoe om 'n klasuitbreiding te gebruik om 'n vertoonmetode by 'n tabel en 'n vorm in Dynamics 365 for Operations te voeg, X++ kode voorbeelde ingesluit.
Add Display or Edit Method via Extension in Dynamics 365
Alhoewel beplanning om vertoon- of redigeermetodes in Dynamics te gebruik iets is wat jou oor die algemeen moet laat oorweeg of jy dalk jou oplossing op 'n ander manier kan ontwerp, is dit soms die beste manier om te gaan.
In vorige weergawes van Dynamics en Axapta was dit baie maklik om vertoon- of redigeermetodes op tabelle en vorms te skep, maar toe ek onlangs toevallig my eerste redigeermetode in Dynamics 365 moes maak, het ek ontdek dat die prosedure om dit te doen ietwat anders is.
Daar is klaarblyklik verskeie geldige benaderings, maar die een wat ek die beste vind (beide in terme van intuïtiteit en kode-mooiheid) is om 'n klasuitbreiding te gebruik. Ja, jy kan klasuitbreidings gebruik om metodes by ander elementtipes as klasse te voeg - in hierdie geval 'n tabel, maar dit werk ook vir vorms.
Skep eers 'n nuwe klas. Jy kan dit enigiets noem wat jy wil, maar om een of ander rede moet dit "_Extension" agtervoeg. Kom ons sê jy moet 'n vertoonmetode by CustTable voeg, jy kan dit byvoorbeeld MyCustTable_Extension noem.
Die klas moet versier word met ExtensionOf om die stelsel te laat weet wat jy uitbrei, soos so:
public final class MyCustTable_Extension
{
}
Nou kan jy net jou vertoonmetode in hierdie klas implementeer, soos jy direk op die tafel sou gedoen het in vroeëre weergawes van Dynamics - "dit" verwys selfs na die tabel, sodat jy toegang tot velde en ander metodes kan kry.
Byvoorbeeld, 'n klas met 'n eenvoudige (en heeltemal nuttelose) vertoonmetode wat net die rekeningnommer van die kliënt terugstuur, kan soos volg lyk:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
Nou, om die vertoonmetode by 'n vorm te voeg (of vormuitbreiding, as jy nie die vorm direk kan wysig nie), moet jy 'n veld handmatig by die vorm voeg en seker maak dat jy die korrekte tipe gebruik (string in hierdie voorbeeld).
Dan, op die kontrole stel jy DataSource na CustTable (of wat ook al die naam van jou CustTable-databron is) en DataMethod na MyCustTable_Extension.displayAccountNum (maak seker dat jy die klasnaam insluit, anders kan die samesteller nie die metode vind nie).
En jy is klaar :-)
Opdatering: Dit is nie meer nodig om die uitbreidingklasnaam in te sluit wanneer die vertoonmetode by 'n vorm gevoeg word nie, maar op die oorspronklike tyd van publisering was dit. Ek laat die inligting hier vir ingeval sommige lesers nog ouer weergawes gebruik.