Legg til visnings- eller redigeringsmetode via utvidelse i Dynamics 365
Publisert: 16. februar 2025 kl. 11:55:46 UTC
Sist oppdatert: 13. september 2025 kl. 22:52:55 UTC
I denne artikkelen forklarer jeg hvordan du bruker en klasseutvidelse til å 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 planlegging av å bruke visnings- eller redigeringsmetoder i Dynamics er noe som generelt bør få deg til å vurdere om du kanskje kan utforme løsningen på en annen måte, er de noen ganger 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 gjøre min første redigeringsmetode i Dynamics 365, oppdaget jeg at fremgangsmåten for å gjøre det er noe annerledes.
Det er tydeligvis flere gyldige tilnærminger, men den jeg synes er best (både når det gjelder intuitivitet og kodeskjønnhet) er å bruke en klasseutvidelse. Ja, du kan bruke klasseutvidelser til å legge til metoder til andre elementtyper enn klasser - i dette tilfellet en tabell, men det fungerer også for skjemaer.
Først oppretter du et nytt kurs. Du kan kalle det hva du vil, men av en eller annen grunn må det være suffikset "_Extension". La oss si at du trenger å legge til en visningsmetode i CustTable, du kan for eksempel navngi den MyCustTable_Extension.
Klassen må dekoreres med ExtensionOf for å fortelle systemet hva du utvider, slik:
public final class MyCustTable_Extension
{
}
Nå kan du bare implementere visningsmetoden din i denne klassen, slik du ville ha gjort direkte på tabellen i tidligere versjoner av Dynamics - "dette" refererer til og med til 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;
}
}
Hvis du vil 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 er) og DataMethod til MyCustTable_Extension.displayAccountNum (pass på at du inkluderer klassenavnet, ellers finner ikke kompilatoren metoden).
Og du er ferdig :-)
Oppdatering: Det er ikke lenger nødvendig å inkludere utvidelsesklassenavnet når du legger til visningsmetoden i et skjema, men på det opprinnelige publiseringstidspunktet var det det. Jeg legger igjen informasjonen her i tilfelle noen lesere fortsatt bruker eldre versjoner.
Videre lesing
Hvis du likte dette innlegget, kan du også like disse forslagene:
- Sett Dynamics 365 FO Virtual Machine Dev eller Test i vedlikeholdsmodus
- Oppdater økonomisk dimensjonsverdi fra X++-kode i Dynamics 365
- Visual Studio henger ved oppstart mens du laster inn nylige prosjekter