Dynamics AX Blog - Dynamics AX 2009 - lookup - Beiträge von 2012
Momentan angezeigt werden nur Beiträge, welche für die Dynamics AX-Version »Dynamics AX 2009« relevant sind. 
RSS-Feed dieser Version

RSS-Feed dieser Version
Momentan angezeigt werden nur Beiträge von »2012«.
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.
{
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();
}