public boolean modified() { container employemntResource, resources; QueryBuildDataSource qbds; QueryRun queryRun; boolean ret; ret = super(); queryRun = new queryRun(TSTimesheetTable_ds.query()); while(queryRun.next()) { TSTimesheetTable timesheetTable = queryRun.get(tableNum(TSTimesheetTable)); int resource = conFind(resources, timesheetTable.Resource); if(resource == 0) { resources += timesheetTable.Resource; } } int resource = conLen(resources); for(int i = 1; i <= resource; i++) { HcmWorker hcmWorker; HcmEmployment hcmEmployemnt; HcmEmploymentDetail hcmEmploymentDetailRec; BenefitEmploymentType benefitEmploymentTypeRec; RecId resourceRecId = conPeek(resources,i); HcmWorkerRecId hcmworkerRecId = ResourceView::find(resourceRecId).Worker; select firstonly hcmWorker join hcmEmployemnt join hcmEmploymentDetailRec join benefitEmploymentTypeRec where hcmWorker.RecId == hcmEmployemnt.Worker && hcmEmploymentDetailRec.Employment == hcmEmployemnt.RecId && benefitEmploymentTypeRec.RecId == hcmEmploymentDetailRec.BenefitEmploymentType && hcmWorker.RecId == hcmworkerRecId; if(benefitEmploymentTypeRec && benefitEmploymentTypeRec.EmploymentTypeId == this.text()) { employemntResource += conPeek(resources,i); } hcmWorker.clear(); hcmEmployemnt.clear(); hcmEmploymentDetailRec.clear(); benefitEmploymentTypeRec.clear(); } qbds = TSTimesheetTable_ds.query().dataSourceTable(tableNum(TSTimesheetTable)); qbds.clearRange(fieldNum(TSTimesheetTable, Resource)); int workerLeft = conLen(employemntResource); for(int i = 1; i <= workerLeft; i++) { RecId workersLeft = conPeek(employemntResource,i); qbds.addRange(fieldNum(TSTimesheetTable, Resource)).value(queryValue(workersLeft)); } TSTimesheetTable_ds.executeQuery(); //TSTimesheetTable_ds.reread(); //TSTimesheetTable_ds.research(true); return ret; }