Miklix

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

Veröffentlicht: 16. Februar 2025 um 11:55:04 UTC
Zuletzt aktualisiert: 12. Januar 2026 um 08:57:16 UTC

In diesem Artikel erkläre ich, wie man mithilfe einer Klassenerweiterung eine Anzeigemethode zu einer Tabelle und einem Formular in Dynamics 365 for Operations hinzufügt; X++-Codebeispiele sind enthalten.


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 in Dynamics Anzeige- oder Bearbeitungsmethoden verwenden möchten, sollten Sie generell darüber nachdenken, ob Sie Ihre Lösung nicht auch anders gestalten könnten. Gelegentlich sind sie jedoch die beste Wahl.

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

Es gibt offensichtlich mehrere sinnvolle Ansätze, aber der meiner Meinung nach beste (sowohl hinsichtlich Intuitivität als auch Code-Schönheit) ist die Verwendung einer Klassenerweiterung. Ja, man kann Klassenerweiterungen verwenden, um Methoden zu anderen Elementtypen als Klassen hinzuzufügen – in diesem Fall zu einer Tabelle, aber es funktioniert genauso 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“ erhalten. Angenommen, Sie möchten der Klasse „CustTable“ eine Anzeigemethode hinzufügen, könnten Sie sie beispielsweise „MyCustTable_Extension“ nennen.

Die Klasse muss mit ExtensionOf dekoriert werden, damit das System weiß, was erweitert wird, etwa so:

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

Jetzt können Sie Ihre Anzeigemethode einfach in dieser Klasse implementieren, so 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.

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

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

        return this.AccountNum;
    }
}

Um die Anzeigemethode zu einem Formular (oder einer Formularerweiterung, falls Sie das Formular nicht direkt bearbeiten können) hinzuzufügen, müssen Sie manuell ein Feld zum Formular hinzufügen und darauf achten, den richtigen Typ zu verwenden (in diesem Beispiel String).

Anschließend legen Sie im Steuerelement die DataSource auf CustTable (oder wie auch immer Ihre CustTable-Datenquelle heißt) und die DataMethod auf MyCustTable_Extension.displayAccountNum fest (achten Sie darauf, den Klassennamen anzugeben, da der Compiler die Methode sonst nicht finden kann).

Und das war's :-)

Aktualisierung: Es ist nicht mehr erforderlich, den Namen der Erweiterungsklasse beim Hinzufügen der Anzeigemethode zu einem Formular anzugeben. Zum Zeitpunkt der ursprünglichen Veröffentlichung war dies jedoch notwendig. Ich lasse die Information hier für den Fall stehen, dass einige Leser noch ältere Versionen verwenden.

Weitere Informationen

Wenn Ihnen dieser Beitrag gefallen hat, könnten Ihnen auch diese Vorschläge gefallen:


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

Mikkel Christensen

Über den Autor

Mikkel 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.