Legg til visnings- eller redigeringsmetode via utvidelse i Dynamics 365
Publisert: 16. februar 2025 kl. 11:55:46 UTC
I denne artikkelen forklarer jeg hvordan du bruker en klasseutvidelse for å legge til en visningsmetode i en tabell og et skjema i Dynamics 365 for Operations, inkludert X++-kodeeksempler.
Add Display or Edit Method via Extension in Dynamics 365
Selv om det å planlegge å bruke visnings- eller redigeringsmetoder i Dynamics er noe som generelt burde få deg til å vurdere om du kanskje kunne designe løsningen din på en annen måte, noen ganger er de den beste veien å gå.
I tidligere versjoner av Dynamics og Axapta var det veldig enkelt å lage visnings- eller redigeringsmetoder på tabeller og skjemaer, men da jeg nylig tilfeldigvis måtte lage min første redigeringsmetode i Dynamics 365, oppdaget jeg at prosedyren for å gjøre det er noe annerledes.
Det er tydeligvis flere gyldige tilnærminger, men den jeg finner best (både når det gjelder intuitivitet og kodeprethet) er å bruke en klasseutvidelse. Ja, du kan bruke klasseutvidelser for å legge til metoder til andre elementtyper enn klasser - i dette tilfellet en tabell, men det fungerer også for skjemaer.
Først oppretter du en ny klasse. Du kan navngi det hva du vil, men av en eller annen grunn må det ha suffikset "_Extension". La oss si at du må legge til en visningsmetode i CustTable, du kan for eksempel gi den navnet MyCustTable_Extension.
Klassen må være dekorert med ExtensionOf for å la systemet vite hva du utvider, slik:
public final class MyCustTable_Extension
{
}
Nå kan du bare implementere visningsmetoden din i denne klassen, som du ville ha gjort direkte på bordet i tidligere versjoner av Dynamics - "dette" refererer til og med tabellen, slik at du kan få tilgang til felt og andre metoder.
For eksempel kan en klasse med en enkel (og helt ubrukelig) visningsmetode som bare returnerer kontonummeret til kunden se slik ut:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
Nå, for å legge til visningsmetoden i et skjema (eller skjemautvidelse, hvis du ikke kan redigere skjemaet direkte), må du legge til et felt i skjemaet manuelt og sørge for å bruke riktig type (streng i dette eksemplet).
Deretter, på kontrollen, vil du sette DataSource til CustTable (eller hva navnet på CustTable-datakilden din er) og DataMethod til MyCustTable_Extension.displayAccountNum (sørg for å inkludere klassenavnet, ellers kan ikke kompilatoren finne metoden).
Og du er ferdig :-)
Oppdatering: Det er ikke lenger nødvendig å inkludere utvidelsesklassens navn når du legger til visningsmetoden i et skjema, men det var det på det opprinnelige publiseringstidspunktet. Jeg legger igjen informasjonen her i tilfelle noen lesere fortsatt bruker eldre versjoner.