Search your query

Wednesday, December 24, 2025

Add Custom Query Range with standard HCMWorkerLookup Form (HcmWorker name filter will work in this logic)

 > Copy Event Handler class method:


[FormControlEventHandler(formControlStr(PurchRFQCaseTable, PurchRFQCaseLine_NewlyCreatedWorkerRecReferenceField), FormControlEventType::Lookup)]

public static void PurchRFQCaseLine_NewlyCreatedWorkerRecReferenceField_OnLookup(FormControl sender, FormControlEventArgs e)

{

    HcmWorkerLookup         hcmWorkerLookup;

    Query                               query;

    QueryBuildDataSource    dsHcmWorkerTableDS;


    hcmWorkerLookup = HcmWorkerLookup::newOnlyActiveEmployeesWithinCompany();

    query                       = hcmWorkerLookup.updateQuery();


    dsHcmWorkerTableDS = query.dataSourceTable(tableNum(HcmWorker));

    dsHcmWorkerTableDS.addRange(fieldNum(HcmWorker,                   

            NewlyCreatedBooleanFieldInHcmWorkerToFilter)).value(queryValue(NoYes::Yes));


    hcmWorkerLookup.lookupWorker(sender);


}



>> If it is normal lookup method then replace sender by that field name. for example:

private void newlyCreatedWorkerFieldLookup(FormStringControl _newlycreatedFieldForLookup)

{

    HcmWorkerLookup         hcmWorkerLookup;

    Query                               query;

    QueryBuildDataSource    dsHcmWorkerTableDS;


    hcmWorkerLookup = HcmWorkerLookup::newOnlyActiveEmployeesWithinCompany();

    query                       = hcmWorkerLookup.updateQuery();


    dsHcmWorkerTableDS = query.dataSourceTable(tableNum(HcmWorker));

    dsHcmWorkerTableDS.addRange(fieldNum(HcmWorker,                   

            NewlyCreatedBooleanFieldInHcmWorkerToFilter)).value(queryValue(NoYes::Yes));


    hcmWorkerLookup.lookupWorker(_newlycreatedFieldForLookup);

}

No comments:

Post a Comment