static void concatenatemultipleRange(Args _args) { ProjTable ProjTable1; QueryBuildDataSource qbds; Query q = new Query(); queryRun queryRun1; str range; str 20 InventId; ProjTable ProjTable2; QueryBuildDataSource qbds1; Query q1 = new Query(); queryRun queryRun2; ProjTable ProjTable3; QueryBuildDataSource qbds2; Query q2 = new Query(); queryRun queryRun3; date startdate; ; startdate = str2date('31/07/2010',123); range = ''; q = new Query(); qbds = q.addDataSource(tablenum(ProjTable)); // dimensionRange = ProjTable_ds.query().dataSourceTable(TableNum(ProjTable)).addRange(FieldId2Ext(FieldNum(ProjTable, Dimension),2)); qbds.addRange(FieldId2Ext(FieldNum(ProjTable, Dimension),2)).value(''); qbds.addRange(fieldNum(ProjTable, Created)).value(strFmt('((Created >= %1)', date2StrXpp(startdate))); qbds.addSelectionField(fieldnum(ProjTable, recid)); queryRun1 = new queryRun(q); while(queryRun1.next()) { ProjTable1 = queryRun1.get(tablenum(ProjTable)); range = queryRangeConcat(range, ProjTable1.RecId); } ///////////////////////// q1 = new Query(); qbds1 = q1.addDataSource(tablenum(ProjTable)); qbds1.addRange(FieldId2Ext(FieldNum(ProjTable, Dimension),2)).value(querynotvalue('')); queryRun2 = new queryRun(q1); while(queryRun2.next()) { ProjTable2 = queryRun1.get(tablenum(ProjTable)); range = queryRangeConcat(range, ProjTable2.RecId); } //////////////////////////// q2 = new Query(); qbds2 = q2.addDataSource(tablenum(ProjTable)); qbds2.addRange(fieldnum(ProjTable, recid)).value(range); queryRun2 = new queryRun(q2); while(queryRun2.next()) { ProjTable3 = queryRun1.get(tablenum(ProjTable)); // info(ProjTable3.Created); } InventId = ''; while select * from ProjTable1 where (ProjTable1.Created < startdate && ProjTable1.Dimension() { } }