Miklix

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.


Denne siden er maskinoversatt fra engelsk for å gjøre den tilgjengelig for så mange som mulig. Dessverre er maskinoversettelse ennå ikke en fullkommen teknologi, så det kan forekomme feil. Hvis du foretrekker det, kan du se den engelske originalversjonen her:

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 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:

[ExtensionOf(tableStr(CustTable))]
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:

[ExtensionOf(tableStr(CustTable))]
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:


Del på BlueskyDel på FacebookDel på LinkedInDel på TumblrDel på XDel på LinkedInFest på Pinterest

Mikkel Christensen

Om forfatteren

Mikkel Christensen
Mikkel er skaperen og eieren av miklix.com. Han har over 20 års erfaring som profesjonell dataprogrammerer/programvareutvikler og er for tiden ansatt på fulltid i et stort europeisk IT-selskap. Når han ikke blogger, bruker han fritiden sin på en lang rekke interesser, hobbyer og aktiviteter, noe som til en viss grad kan gjenspeiles i de mange ulike temaene som dekkes på dette nettstedet.