Tilføj visnings- eller redigeringsmetode via udvidelse i Dynamics 365
Udgivet: 16. februar 2025 kl. 11.55.02 UTC
Sidst opdateret: 12. januar 2026 kl. 08.57.15 UTC
I denne artikel forklarer jeg, hvordan man bruger en klasseudvidelse til at tilføje en displaymetode 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ægning af brugen af visnings- eller redigeringsmetoder i Dynamics generelt bør 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 løsning.
Tidligere versioner af Dynamics og Axapta var det meget nemt at oprette visnings- eller redigeringsmetoder på tabeller og formularer, men da jeg for nylig tilfældigvis skulle lave min første redigeringsmetode i Dynamics 365, opdagede jeg, at proceduren for at gøre det er noget anderledes.
Der er tydeligvis flere brugbare tilgange, men den jeg finder bedst (både med hensyn til intuitivitet og kodens pæ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 fungerer også til formularer.
Først skal du oprette en ny klasse. Du kan navngive den, hvad du vil, men af en eller anden grund skal den have suffikset "_Extension". Lad os sige, at du skal tilføje en displaymetode til CustTable, du kunne for eksempel kalde den MyCustTable_Extension.
Klassen skal dekoreres med ExtensionOf for at lade systemet vide, hvad du udvider, således:
public final class MyCustTable_Extension
{
}
Nu kan du blot implementere din displaymetode i denne klasse, ligesom du ville have gjort direkte på tabellen i tidligere versioner af Dynamics - "dette" refererer endda til tabellen, så du kan tilgå felter og andre metoder.
For eksempel kunne en klasse med en simpel (og fuldstændig ubrugelig) displaymetode, der blot returnerer kundens kontonummer, se sådan ud:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
For at tilføje displaymetoden til en formular (eller en formularudvidelse, hvis du ikke kan redigere formularen direkte), skal du manuelt tilføje et felt til formularen og sørge for at bruge den korrekte type (streng i dette eksempel).
Derefter skal du på kontrolelementet 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 navnet på udvidelsesklassen, når displaymetoden tilføjes til en formular, men på det oprindelige udgivelsestidspunkt var det det. Jeg lader oplysningerne stå her, i tilfælde af at nogle læsere stadig bruger ældre versioner.
Yderligere læsning
Hvis du kunne lide dette indlæg, kan du måske også lide disse forslag:
- Visual Studio hænger ved opstart under indlæsning af seneste projekter
- Oprettelse af et opslagsfelt for en finansiel dimension i Dynamics 365
- Sæt Dynamics 365 FO Virtual Machine Dev eller Test i vedligeholdelsestilstand
