Tilføj visnings- eller redigeringsmetode via udvidelse i Dynamics 365
Udgivet: 16. februar 2025 kl. 11.55.02 UTC
I denne artikel forklarer jeg, hvordan man bruger en klasseudvidelse til at tilføje en visningsmetode til en tabel og en formular i Dynamics 365 for Operations, inklusive X++ kodeeksempler.
Add Display or Edit Method via Extension in Dynamics 365
Selvom planlægningen af at bruge visnings- eller redigeringsmetoder i Dynamics er noget, der generelt burde få dig til at overveje, om du måske kunne designe din løsning på en anden måde, er de nogle gange den bedste vej at gå.
I tidligere versioner af Dynamics og Axapta var det meget nemt at lave visnings- eller redigeringsmetoder på tabeller og formularer, men da jeg for nylig skulle lave min første redigeringsmetode i Dynamics 365, opdagede jeg, at proceduren for at gøre det er noget anderledes.
Der er åbenbart flere gyldige tilgange, men den jeg finder bedst (både med hensyn til intuitivitet og kodepænhed) er at bruge en klasseudvidelse. Ja, du kan bruge klasseudvidelser til at tilføje metoder til andre elementtyper end klasser - i dette tilfælde en tabel, men det virker også til formularer.
Først skal du oprette en ny klasse. Du kan navngive det, hvad du vil, men af en eller anden grund skal det have suffikset "_Extension". Lad os sige, at du skal tilføje en visningsmetode til CustTable, du kan for eksempel navngive den MyCustTable_Extension.
Klassen skal være dekoreret med ExtensionOf for at lade systemet vide, hvad du udvider, som sådan:
public final class MyCustTable_Extension
{
}
Nu kan du bare implementere din visningsmetode i denne klasse, som du ville have gjort direkte på bordet i tidligere versioner af Dynamics - "dette" refererer endda til tabellen, så du kan få adgang til felter og andre metoder.
For eksempel kunne en klasse med en simpel (og fuldstændig ubrugelig) visningsmetode, der bare returnerer kundens kontonummer, se sådan ud:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
For nu at tilføje visningsmetoden til en formular (eller formularudvidelse, hvis du ikke kan redigere formularen direkte), skal du tilføje et felt til formularen manuelt og sørge for at bruge den korrekte type (streng i dette eksempel).
På kontrollen ville du derefter indstille DataSource til CustTable (eller hvad navnet på din CustTable-datakilde nu er) og DataMethod til MyCustTable_Extension.displayAccountNum (sørg for at inkludere klassenavnet, ellers kan compileren ikke finde metoden).
Og du er færdig :-)
Opdatering: Det er ikke længere nødvendigt at inkludere udvidelsesklassens navn, når du tilføjer visningsmetoden til en formular, men på det oprindelige udgivelsestidspunkt var det det. Jeg efterlader oplysningerne her, hvis nogle læsere stadig bruger ældre versioner.