Unlängst hatte ich die Anforderung, in einer Tabelle ein neues Feld für einen Mitarbeiter zu integrieren. Flugs eine Tabellen-Realtion zur Tabelle HcmWorker erstellt, und das dadurch entstandene Feld in ins Formular integriert.
Dadurch wird eine ReferenceGroup erstellt und Dynamics AX generiert aufgrund der Relation den folgenden Lookup.
Nun war aber die Anforderung, nur bestimmte Mitarbeiter im Lookup anzubieten. Dazu kann man die lookupReference() des Feldes wie folgt überschreiben (die Tabelle DEV_TestTable war die einzige Datasource im Formular):
public Common lookupReference(FormReferenceControl _formReferenceControl)
{
Common ret;
FormReferenceGroupControl callingReferenceGroupControl;
FormRun lookupForm;
Args args;
HcmWorkerLookup hcmWorkerLookup;
if (!_formReferenceControl)
{
throw(error(strFmt("@SYS137393", Error::wrongUseOfFunction(funcName()))));
}
hcmWorkerLookup = hcmWorkerLookup::newActiveEmployees();
args = new Args(formStr(HcmWorkerLookup));
args.parmObject(hcmWorkerLookup);
args.record(DEV_TestTable);
args.caller(_formReferenceControl);
lookupForm = classfactory.formRunClass(args);
lookupForm.init();
if (_formReferenceControl.handle() == classNum(FormReferenceGroupControl))
{
callingReferenceGroupControl = _formReferenceControl;
callingReferenceGroupControl.performFormLookup(lookupForm);
ret = lookupForm.selectRecordModeSelectedRecord();
}
return ret;
}
Durch diese Anpassung sieht das Lookup-Formular nun wie folgt aus, und es werden nur aktive Mitarbeiter angezeigt.
Die Klasse HcmWorkerLookup bietet neben der oben verwendeten newActiveAmployees() noch zahlreiche weitere statische Methoden an, mit denen man unterschiedliche Ergebnisse erzielt.
Dieser Beitrag bezieht sich auf die Version: Dynamics AX 2012
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
Unlängst hatte ich die Anforderung, in einer Tabelle ein neues Feld für einen Mitarbeiter zu integrieren. Flugs eine Tabellen-Realtion zur Tabelle HcmWorker erstellt, und das dadurch entstandene Feld in ins Formular integriert.
Dadurch wird eine ReferenceGroup erstellt und Dynamics AX generiert aufgrund der Relation den folgenden Lookup.
Nun war aber die Anforderung, nur bestimmte Mitarbeiter im Lookup anzubieten. Dazu kann man die lookupReference() des Feldes wie folgt überschreiben (die Tabelle DEV_TestTable war die einzige Datasource im Formular):
Durch diese Anpassung sieht das Lookup-Formular nun wie folgt aus, und es werden nur aktive Mitarbeiter angezeigt.
Die Klasse HcmWorkerLookup bietet neben der oben verwendeten newActiveAmployees() noch zahlreiche weitere statische Methoden an, mit denen man unterschiedliche Ergebnisse erzielt.