Dynamics AX Blog - Beiträge vom Februar 2012
AX 2012: Eigene Lookups mit Hilfe der Klasse SysLookupMultiSelectCtrl erstellen
21.02.2012Microsoft Dynamics AX (Axapta)
|
Eigenes Lookup-Formular mit Hilfe der Klasse SysTableLookup gestalten
20.02.2012Microsoft Dynamics AX (Axapta)
Ab und an kommt man als Entwickler in die Verlegenheit, ein Formularfeld, welches weder an eine Datenquelle (DataSource) oder einen Extended Datatyp gebunden ist, um ein Lookup-Formular zu erweitern. Dafür stellt Dynamics AX die Klasse SysTableLookup zur Seite, die man in die lookup-Methode des jeweiligen Feldes einbinden kann. Hier ein einfaches Beispiel unter Verwendung eines Queries, bei dem prinzipiell ein Lookup auf die Kundengruppen möglich sein soll, aber nur bestimmte angezeigt werden sollen. Diese Einschränkung kann über sysQuery::findOrCreateRange abgebildet werden. Das Beispiel funktioniert übrigens sowohl in Dynamics AX 2009 als auch AX 2012. public void lookup()
{ sysTableLookup sysTableLookup; query query; super(); query = new query(); query.addDataSource(tableNum(custGroup)); sysQuery::findOrCreateRange(query.dataSourceTable(tableNum(custGroup)), fieldNum(custGroup, name)).value("*inter*"); sysTableLookup = sysTableLookup::newParameters(tableNum(custGroup), this); sysTableLookup.parmQuery(query); sysTableLookup.addLookupfield(fieldNum(custGroup, custGroup)); sysTableLookup.addLookupfield(fieldNum(custGroup, name)); sysTableLookup.performFormLookup(); } |
|
|
|
|
|
|
In AX 2012 gibt es über die Klasse SysLookupMultiSelectCtrl eine neue Möglichkeit, um bei einem Formularfeld, welches weder an eine DataSource noch an einen Extended Datatyp gebunden ist, dem Benutzer ein Lookup-Formular anzubieten.
Diese Klasse hat gegenüber der Klasse SysTableLookup, die es schon in Dynamics AX 2009 gegeben hat, sowohl einige Vorteile aber auch ein paar Nachteile:
Vorteile
Nachteile