advanced lookup
Tue Dec 03 2024 14:54:44 GMT+0000 (Coordinated Universal Time)
Saved by @MinaTimo
[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(); }
Comments