Miklix

Lägg till visnings- eller redigeringsmetod via tillägg i Dynamics 365

Publicerad: 16 februari 2025 kl. 11:56:07 UTC
Senast uppdaterad: 12 januari 2026 kl. 08:57:29 UTC

I den här artikeln förklarar jag hur man använder ett klasstillägg för att lägga till en displaymetod i en tabell och ett formulär i Dynamics 365 for Operations, inklusive X++-kodexempel.


Denna sida har maskinöversatts från engelska för att göra den tillgänglig för så många som möjligt. Tyvärr är maskinöversättning ännu inte en fulländad teknik, så fel kan uppstå. Om du föredrar det kan du se den engelska originalversionen här:

Add Display or Edit Method via Extension in Dynamics 365

Även om det generellt sett är bra att överväga att använda visnings- eller redigeringsmetoder i Dynamics, så är de ibland det bästa alternativet.

Tidigare versioner av Dynamics och Axapta var det väldigt enkelt att skapa visnings- eller redigeringsmetoder på tabeller och formulär, men när jag nyligen råkade behöva skapa min första redigeringsmetod i Dynamics 365 upptäckte jag att proceduren för att göra det är något annorlunda.

Det finns uppenbarligen flera giltiga metoder, men den jag tycker är bäst (både vad gäller intuitivitet och kodsnygghet) är att använda en klasstillägg. Ja, man kan använda klasstillägg för att lägga till metoder till andra elementtyper än klasser – i det här fallet en tabell, men det fungerar även för formulär.

Skapa först en ny klass. Du kan döpa den till vad du vill, men av någon anledning måste den ha suffixet "_Extension". Låt oss säga att du behöver lägga till en displaymetod till CustTable, du kan till exempel döpa den till MyCustTable_Extension.

Klassen måste dekoreras med ExtensionOf för att systemet ska veta vad du utökar, så här:

[ExtensionOf(tableStr(CustTable))]
public final class MyCustTable_Extension
{
}

Nu kan du bara implementera din displaymetod i den här klassen, precis som du skulle ha gjort direkt i tabellen i tidigare versioner av Dynamics - "detta" refererar till och med till tabellen, så att du kan komma åt fält och andra metoder.

Till exempel kan en klass med en enkel (och helt värdelös) displaymetod som bara returnerar kundens kontonummer se ut så här:

[ExtensionOf(tableStr(CustTable))]
public final class MyCustTable_Extension
{
    public display CustAccount displayAccountNum()
    {
        ;

        return this.AccountNum;
    }
}

För att lägga till visningsmetoden i ett formulär (eller ett formulärtillägg om du inte kan redigera formuläret direkt) måste du lägga till ett fält i formuläret manuellt och se till att använda rätt typ (sträng i det här exemplet).

Sedan, på kontrollen, ställer du in DataSource till CustTable (eller vad namnet nu är på din CustTable-datakälla) och DataMethod till MyCustTable_Extension.displayAccountNum (se till att inkludera klassnamnet, annars kan kompilatorn inte hitta metoden).

Och du är klar :-)

Uppdatering: Det är inte längre nödvändigt att inkludera namnet på tilläggsklassen när man lägger till displaymetoden i ett formulär, men vid den ursprungliga publiceringstillfället var det det. Jag lämnar informationen här ifall vissa läsare fortfarande använder äldre versioner.

Vidare läsning

Om du gillade det här inlägget kanske du också gillar dessa förslag:


Dela på BlueskyDela på FacebookDela på LinkedInDela på TumblrDela på XDela på LinkedInFäst på Pinterest

Mikkel Christensen

Om författaren

Mikkel Christensen
Mikkel är skaparen och ägaren av miklix.com. Han har över 20 års erfarenhet som professionell datorprogrammerare/mjukvaruutvecklare och är för närvarande heltidsanställd på ett stort europeiskt IT-bolag. När han inte bloggar ägnar han sin fritid åt en mängd olika intressen, hobbies och aktiviteter, vilket i viss mån kan återspeglas i de olika ämnen som behandlas på den här webbplatsen.