Dynamics AX Blog - lookup - Seite 2
Eigenes Lookup-Formular mit Hilfe der Klasse SysTableLookup gestalten
20.02.2012Microsoft Dynamics AX (Axapta)
|
Dynamics AX: Datumslookup um Anzeige der Kalenderwoche erweitern
12.03.2009Microsoft Dynamics AX (Axapta)
Es muss lediglich die Eigenschaft ShowRowlabels des Table-Controls DaysTable auf YES geändert werden. Warum diese Eigenschaft nicht standardmässig auf YES gesetzt ist, wundert mich zwar, da ja die dahinterliegende Logik komplett vorhanden ist, aber das darf jemand anderer mit Microsoft diskutieren :-) Nachtrag vom 19.11.2009 |
|
|
|
|
|
|
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();
}