Nur bestimmte Mitarbeiter in einem Mitarbeiter-Lookup anzeigen

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.

Screenshot

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.

Screenshot

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

Kommentar hinzufügen
 
 

 

 
 
 
Beiträge des aktuellen Monats
Dezember 2020
MoDiMiDoFrSaSo
 123456
78910111213
14151617181920
21222324252627
28293031 
 
© 2006-2020 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
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