Miklix

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

Veröffentlicht: 16. Februar 2025 um 11:32:43 UTC

In diesem Artikel wird erläutert, wie Sie ein Nachschlagefeld für eine Finanzdimension in Dynamics 365 for Operations erstellen, 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 das meiste wird auch für Dynamics AX 2012 funktionieren (siehe unten).

Ich wurde kürzlich mit der Erstellung eines neuen Feldes beauftragt, in dem es möglich sein sollte, eine einzelne Finanzdimension anzugeben, in diesem Fall Produkt. Natürlich sollte das neue Feld auch in der Lage sein, die gültigen Werte dieser Dimension nachzuschlagen.

Das ist etwas komplizierter als ein normales Nachschlagen in einer Tabelle, aber wenn man weiß, wie es geht, ist es eigentlich gar nicht so schlimm.

Glücklicherweise bietet die Standardanwendung ein praktisches Nachschlageformular (DimensionLookup), das für diesen Zweck verwendet werden kann, wenn Sie ihm nur mitteilen, welches Dimensionsattribut nachgeschlagen werden soll.

Zunächst müssen Sie das Formularfeld selbst erstellen. Dieses kann auf einem Tabellenfeld oder einer Bearbeitungsmethode basieren, für die Suche selbst spielt das keine Rolle, aber auf die eine oder andere Weise muss es den erweiterten Datentyp DimensionValue verwenden.

Anschließend müssen Sie einen OnLookup-Event-Handler für das Feld erstellen. Um einen Event-Handler zu erstellen, klicken Sie mit der rechten Maustaste auf das OnLookup-Ereignis für das Feld und wählen Sie dann "Copy event handler method". Sie können dann eine leere Ereignisbehandlungsmethode in eine Klasse einfügen und sie von dort aus bearbeiten.

Hinweis: Das meiste davon funktioniert auch für Dynamics AX 2012, aber statt einen Event-Handler zu erstellen, können Sie die Lookup-Methode des Formularfelds überschreiben.

Der Event-Handler muss in etwa so aussehen (ersetzen Sie den Formularnamen und den Feldnamen nach Bedarf):

[
    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);
}
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.