Voeg vertoning of wysigingsmetode by via uitbreiding in Dynamics 365
Gepubliseer: 16 Februarie 2025 om 11:56:42 UTC
Laas opgedateer: 12 Januarie 2026 om 08:57:44 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++-kodevoorbeelde ingesluit.
Add Display or Edit Method via Extension in Dynamics 365
Alhoewel die beplanning om vertoon- of wysigingsmetodes in Dynamics te gebruik iets is wat jou oor die algemeen moet laat oorweeg of jy jou oplossing dalk 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 wysigingsmetodes op tabelle en vorms te skep, maar toe ek onlangs my eerste wysigingsmetode in Dynamics 365 moes maak, het ek ontdek dat die prosedure daarvoor ietwat anders is.
Daar is klaarblyklik verskeie geldige benaderings, maar die een wat ek die beste vind (beide in terme van intuïtiwiteit 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 die agtervoegsel "_Extension" hê. 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 volg:
public final class MyCustTable_Extension
{
}
Nou kan jy net jou vertoonmetode in hierdie klas implementeer, soos jy direk op die tabel in vorige weergawes van Dynamics sou gedoen het - "hierdie" 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 so lyk:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
Om nou die vertoonmetode by 'n vorm (of vormuitbreiding, as jy nie die vorm direk kan wysig nie) te voeg, moet jy handmatig 'n veld by die vorm voeg en seker maak dat jy die korrekte tipe gebruik (string in hierdie voorbeeld).
Dan, op die kontrole, sou jy DataSource stel 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 naam van die uitbreidingsklas in te sluit wanneer die vertoonmetode by 'n vorm gevoeg word nie, maar ten tyde van die oorspronklike publikasie was dit wel nodig. Ek los die inligting hier ingeval sommige lesers steeds ouer weergawes gebruik.
Verdere Leeswerk
As jy hierdie plasing geniet het, sal jy dalk ook van hierdie voorstelle hou:
- Visual Studio hang vas tydens opstart tydens laai van onlangse projekte
- Skep 'n opsoekveld vir 'n finansiële dimensie in Dynamics 365
- Dateer finansiële dimensiewaarde op vanaf X++-kode in Dynamics 365
