Lägg till visnings- eller redigeringsmetod via tillägg i Dynamics 365
Publicerad: 16 februari 2025 kl. 11:56:07 UTC
I den här artikeln förklarar jag hur man använder ett klasstillägg för att lägga till en visningsmetod i en tabell och ett formulär i Dynamics 365 for Operations, inklusive X++-kodexempel.
Add Display or Edit Method via Extension in Dynamics 365
Även om planering att använda visnings- eller redigeringsmetoder i Dynamics är något som generellt borde få dig att överväga om du kanske skulle kunna designa din lösning på ett annat sätt, ibland är de det bästa sättet att gå.
I 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 göra 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 tillvägagångssätt, men den jag tycker är bäst (både när det gäller intuitivitet och kodfinhet) är att använda en klasstillägg. Ja, du 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 för formulär också.
Skapa först en ny klass. Du kan namnge det vad du vill, men av någon anledning måste det ha suffixet "_Extension". Låt oss säga att du behöver lägga till en visningsmetod till CustTable, du kan till exempel namnge den MyCustTable_Extension.
Klassen måste vara dekorerad med ExtensionOf för att låta systemet veta vad du utökar, så här:
public final class MyCustTable_Extension
{
}
Nu kan du bara implementera din visningsmetod i den här klassen, som du skulle ha gjort direkt på tabellen i tidigare versioner av Dynamics - "detta" refererar till och med 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) visningsmetod som bara returnerar kundens kontonummer se ut så här:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
Nu, för att lägga till visningsmetoden i ett formulär (eller 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, skulle du ställa in DataSource till CustTable (eller vad som helst namnet på din CustTable-datakälla är) 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 tilläggsklassens namn när man lägger till visningsmetoden i ett formulär, men det var det vid den ursprungliga publiceringstillfället. Jag lämnar informationen här ifall vissa läsare fortfarande använder äldre versioner.