Miklix

Anzeige- oder Bearbeitungsmethode über Erweiterung in Dynamics 365 hinzufügen

Veröffentlicht: 16. Februar 2025 um 11:55:04 UTC

In diesem Artikel erkläre ich, wie man mithilfe einer Klassenerweiterung einer Tabelle und einem Formular in Dynamics 365 for Operations eine Anzeigemethode hinzufügt, einschließlich X++-Codebeispielen.


Diese Seite wurde maschinell aus dem Englischen übersetzt, um sie so vielen Menschen wie möglich zugänglich zu machen. Leider ist die maschinelle Übersetzung noch keine ausgereifte Technologie, so dass Fehler auftreten können. Wenn Sie es vorziehen, können Sie sich die englische Originalversion hier ansehen:

Add Display or Edit Method via Extension in Dynamics 365

Wenn Sie Anzeige- oder Bearbeitungsmethoden in Dynamics verwenden möchten, sollten Sie grundsätzlich darüber nachdenken, ob Sie Ihre Lösung nicht auch anders gestalten könnten. Manchmal sind diese jedoch die beste Lösung.

In früheren Versionen von Dynamics und Axapta war es sehr einfach, Anzeige- oder Bearbeitungsmethoden für Tabellen und Formulare zu erstellen. Als ich jedoch kürzlich zufällig meine erste Bearbeitungsmethode in Dynamics 365 erstellen musste, stellte ich fest, dass die Vorgehensweise hierfür etwas anders ist.

Es gibt offensichtlich mehrere gültige Ansätze, aber der beste (sowohl hinsichtlich der Intuition als auch der Schönheit des Codes) ist meiner Meinung nach die Verwendung einer Klassenerweiterung. Ja, Sie können Klassenerweiterungen verwenden, um anderen Elementtypen als Klassen Methoden hinzuzufügen – in diesem Fall einer Tabelle, aber es funktioniert auch für Formulare.

Erstellen Sie zunächst eine neue Klasse. Sie können sie beliebig benennen, aber aus irgendeinem Grund muss sie das Suffix „_Extension“ haben. Angenommen, Sie müssen CustTable eine Anzeigemethode hinzufügen. Sie könnten sie beispielsweise MyCustTable_Extension nennen.

Die Klasse muss mit ExtensionOf dekoriert werden, um dem System mitzuteilen, was Sie erweitern, und zwar wie folgt:

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

Jetzt können Sie Ihre Anzeigemethode einfach in dieser Klasse implementieren, wie Sie es in früheren Versionen von Dynamics direkt in der Tabelle getan hätten – „this“ verweist sogar auf die Tabelle, sodass Sie auf Felder und andere Methoden zugreifen können.

Beispielsweise könnte eine Klasse mit einer einfachen (und völlig nutzlosen) Anzeigemethode, die lediglich die Kontonummer des Kunden zurückgibt, so aussehen:

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

        return this.AccountNum;
    }
}

Um nun die Anzeigemethode zu einem Formular (oder einer Formularerweiterung, wenn Sie das Formular nicht direkt bearbeiten können) hinzuzufügen, müssen Sie dem Formular manuell ein Feld hinzufügen und sicherstellen, dass Sie den richtigen Typ verwenden (in diesem Beispiel eine Zeichenfolge).

Anschließend würden Sie im Steuerelement „DataSource“ auf „CustTable“ (oder den Namen Ihrer CustTable-Datenquelle) und „DataMethod“ auf „MyCustTable_Extension.displayAccountNum“ festlegen (achten Sie darauf, den Klassennamen anzugeben, da der Compiler die Methode sonst nicht finden kann).

Und fertig :-)

Update: Es ist nicht mehr notwendig, den Namen der Erweiterungsklasse anzugeben, wenn die Anzeigemethode zu einem Formular hinzugefügt wird, aber zum ursprünglichen Veröffentlichungszeitpunkt war dies der Fall. Ich lasse die Informationen hier, falls einige Leser noch ältere Versionen verwenden.

Teilen auf BlueskyAuf Facebook teilenAuf LinkedIn teilenAuf Tumblr teilenTeilen auf XAuf LinkedIn teilenPin auf Pinterest

Mikkel Bang Christensen

Über den Autor

Mikkel Bang Christensen
Mikkel ist der Schöpfer und Eigentümer von miklix.com. Er verfügt über mehr als 20 Jahre Erfahrung als professioneller Computerprogrammierer/Softwareentwickler und ist derzeit in Vollzeit für ein großes europäisches IT-Unternehmen tätig. Wenn er nicht gerade bloggt, verbringt er seine Freizeit mit einer Vielzahl von Interessen, Hobbys und Aktivitäten, was sich bis zu einem gewissen Grad in der Vielfalt der auf dieser Website behandelten Themen widerspiegelt.