Miklix

Erstellen eines Nachschlagefelds für eine finanzielle Dimension in Dynamics 365

Veröffentlicht: 16. Februar 2025 um 11:32:43 UTC
Zuletzt aktualisiert: 12. Januar 2026 um 08:56:05 UTC

Dieser Artikel erklärt, wie man in Dynamics 365 for Operations ein Nachschlagefeld für eine Finanzdimension erstellt, einschließlich eines X++-Codebeispiels.


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:

Creating a Lookup Field for a Financial Dimension in Dynamics 365

Die Informationen in diesem Beitrag basieren auf Dynamics 365 for Operations, aber der größte Teil davon funktioniert auch für Dynamics AX 2012 (siehe unten).

Ich wurde kürzlich beauftragt, ein neues Feld zu erstellen, in dem eine einzelne Finanzdimension, in diesem Fall „Produkt“, angegeben werden kann. Selbstverständlich sollte das neue Feld auch die gültigen Werte dieser Dimension abrufen können.

Das ist etwas komplizierter als eine normale Tabellensuche, aber wenn man weiß, wie es geht, ist es eigentlich gar nicht so schwer.

Zum Glück bietet die Standardanwendung ein praktisches Suchformular (DimensionLookup), das für diesen Zweck verwendet werden kann, wenn man ihm nur mitteilt, welches Dimensionsattribut gesucht werden soll.

Zuerst müssen Sie das Formularfeld selbst erstellen. Dies kann auf einem Tabellenfeld oder einer Bearbeitungsmethode basieren; für die Nachschlagefunktion selbst spielt das keine Rolle, aber es muss in irgendeiner Form den erweiterten Datentyp „DimensionValue“ verwenden.

Anschließend müssen Sie einen OnLookup-Ereignishandler für das Feld erstellen. Klicken Sie dazu mit der rechten Maustaste auf das OnLookup-Ereignis des Felds und wählen Sie dann „Ereignishandlermethode kopieren“. Sie können die leere Ereignishandlermethode anschließend in eine Klasse einfügen und dort bearbeiten.

Hinweis: Ein Großteil davon funktioniert auch für Dynamics AX 2012, aber anstatt einen Ereignishandler zu erstellen, können Sie die Suchmethode des Formularfelds überschreiben.

Der Ereignishandler muss in etwa so aussehen (ersetzen Sie gegebenenfalls Formularname und Feldname):

[
    FormControlEventHandler(formControlStr( MyForm,
                                            MyProductDimField),
                            FormControlEventType::Lookup)
]
public static void MyProductDimField_OnLookup(  FormControl _sender,
                                                FormControlEventArgs _e)
{
    FormStringControl   control;
    Args                args;
    FormRun             formRun;
    DimensionAttribute  dimAttribute;
    ;

    dimAttribute    =   DimensionAttribute::findByName('Product');
    args            =   new Args();
    args.record(dimAttribute);
    args.caller(_sender);
    args.name(formStr(DimensionLookup));
    formRun         =   classFactory.formRunClass(args);formRun.init();
    control         =   _sender as FormStringControl;
    control.performFormLookup(formRun);
}

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.