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));
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.
Mehr dazu
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();
}