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.
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:
- Anzeige- oder Bearbeitungsmethode über Erweiterung in Dynamics 365 hinzufügen
- Visual Studio hängt beim Starten während des Ladens der letzten Projekte
- Finanzdimensionswert aus X++-Code in Dynamics 365 aktualisieren
