[DataSource] class PayrollEarningCode { /// <summary> /// /// </summary> public void executeQuery() { QueryBuildDataSource queryBuildDataSource , qbds1 ; QueryBuildRange QueryBuildRange ; date DateValid = today(); queryBuildDataSource = this.query().dataSourceTable(tablenum(PayrollEarningCode)); qbds1 = queryBuildDataSource.addDataSource(tableNum(PayrollEarningCodeDetail)); queryBuildDataSource.clearRanges(); qbds1.clearRanges(); if (EarningCodeStatus.selection() == EarningCodeStatusCFM::Active) { qbds1.addLink(fieldnum(PayrollEarningCodeDetail,EarningCode), fieldnum(PayrollEarningCode,RecId)); qbds1.joinMode(JoinMode::InnerJoin); qbds1.relations(true); qbds1.clearRanges(); QueryBuildRange = qbds1.addRange(fieldNum(PayrollEarningCodeDetail, ValidTo)); QueryBuildRange.value(strFmt('(%1.%2 > %3)' ,qbds1.name(), fieldStr(PayrollEarningCodeDetail, ValidTo), DateValid)); } else { queryBuildDataSource.clearRanges(); qbds1.clearRanges(); qbds1.addLink(fieldnum(PayrollEarningCodeDetail,EarningCode), fieldnum(PayrollEarningCode,RecId)); qbds1.joinMode(JoinMode::InnerJoin); qbds1.relations(true); } super(); } }