Preview:
 [FormControlEventHandler(formControlStr(HRMRecruitingTable, HRMRecruitingTable_Position), FormControlEventType::Lookup)]
    public static void HRMRecruitingTable_Position_OnLookup(FormControl sender, FormControlEventArgs e)
    {
        HRMRecruitingTable HRMRecruitingTable = sender.formRun().dataSource(1).cursor();
        HRMRecruitingTable  HRMRecruitingTableCheck;
        HcmPosition HcmPosition;
        HcmPositionDetail   HcmPositionDetail;
        Query query = new Query();
        QueryBuildDataSource qbds;
        str             Recids;
        HcmPositionWorkerAssignment HcmPositionWorkerAssignment;

        while select HcmPosition
            join HcmPositionDetail
            where HcmPositionDetail.Position == HcmPosition.Recid
                //&& HcmPositionDetail.Job == HRMRecruitingTable.Job
                && HcmPositionDetail.Department == HRMRecruitingTable.Department
        {
            HRMRecruitingTableCheck.clear();
            select HRMRecruitingTableCheck
                    where HRMRecruitingTableCheck.Position == HcmPosition.PositionId;
            if(!HRMRecruitingTableCheck)
            {
                HcmPositionWorkerAssignment.Clear();
                select HcmPositionWorkerAssignment
                        where HcmPositionWorkerAssignment.Position == HcmPosition.Recid;
                        //&& HcmPositionWorkerAssignment.Worker == 0;

                if(!HcmPositionWorkerAssignment)
                    //&& HcmPositionWorkerAssignment.Validto > DateTimeUtil::getSystemDateTime())
                            Recids = queryRangeConcat(Recids , queryValue(HcmPosition.Recid));
                //if(!HcmPositionWorkerAssignment
                //        || HcmPositionWorkerAssignment.Validto > DateTimeUtil::getSystemDateTime())
                //            Recids = queryRangeConcat(Recids , queryValue(HcmPosition.Recid));
            }
        }
        SysTableLookup _sysTableLookup = SysTableLookup::newParameters(tableNum(HcmPosition),sender);

        qbds= query.addDataSource(tableNum(HcmPosition));

        if(Recids)
            qbds.addRange(fieldNum(HcmPosition,Recid)).value(Recids);
        else
            qbds.addRange(fieldNum(HcmPosition,Recid)).value(int2Str(0));

        _sysTableLookup.parmQuery(query);
        _sysTableLookup.addLookupfield(fieldNum(HcmPosition,PositionID),true);
        _sysTableLookup.addLookupMethod(tableMethodStr(HcmPosition, description));

        _sysTableLookup.performFormLookup();
    }
    
downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter