Concatenating Query range values in form datasource using axapta

Taking value in range by concatenating values in form and use of data source in form

 public void insert_tmpVillage()  
 {  
 QueryBuildDataSource qbds, qbds1, qbdsid, qbdsid1;  
 Query q = new Query();  
 Query qid = new Query();  
 QueryBuildLink QueryBuildLink1;  
 QueryBuildLink QueryBuildLink2;  
 queryRun queryRun1;  
 queryRun queryRun2;  
 _BlockVillage _BlockVillage1;  
 str range;  
 QueryBuildRange qbr;  
 Query query;  
 QueryRun qr;  
 ;  
 Office = _Block.Office;  
 TechYear = _Block.Year;  
 Crop = _Block.CropId;  
 season = _Block.Season;  
 if(District.valueStr() != '' && Taluka.valueStr() != '')  
 {  
 qbdsid = qid.addDataSource(tablenum(_Block));  
 qbdsid.addRange(fieldnum(_Block, Office)).value(Office);  
 qbdsid.addRange(fieldnum(_Block, Year)).value(TechYear);  
 qbdsid.addRange(fieldnum(_Block, CropId)).value(Crop);  
 qbdsid.addRange(fieldnum(_Block, Season)).value(queryValue(season));  
 qbdsid1 = qbdsid.addDataSource(tablenum(_BlockVillage));  
 qbdsid1.joinMode(JoinMode::InnerJoin);  
 QueryBuildLink2 = qbdsid1.addLink(fieldnum(_Block, ID), fieldnum(_BlockVillage, ID));  
 qbdsid1.relations(true);  
 queryRun2 = new queryRun(qid);  
 while(queryRun2.next())  
 {  
 _BlockVillage1 = queryRun2.get(tablenum(_BlockVillage));  
 range = queryRangeConcat(range, querynotValue(_BlockVillage1.Village));  
 }  
 query = new Query();  
 qbds = query.addDataSource(tablenum(_Village));  
 qbds.addRange(fieldnum(_Village, _DistrictCd)).value(District.valueStr());  
 qbds.addRange(fieldnum(_Village, _TalukaCd)).value(Taluka.valueStr());  
 qbr = qbds.addRange(fieldNum(_Village, _VillageCd));  
 qbr.value(range);  
 // qbds1 = qbds.addDataSource(tablenum(_BlockVillage));  
 // qbds1.joinMode(JoinMode::NoExistsJoin);  
 // QueryBuildLink1 = qbds1.addLink(fieldnum(_Village, _VillageCd),fieldnum(_BlockVillage,Village));  
 // qbds1.relations(true);  
 delete_from _tmpVillage;  
 // queryRun1 = new queryRun(q);  
 qr = new QueryRun(query);  
 while(qr.next())  
 // while select * from _Village1 where _Village1._DistrictCd == District.valueStr()  
 // && _Village1._TalukaCd == Taluka.valueStr()  
 {  
 _Village1 = qr.get(tablenum(_Village));  
 _tmpVillage.District = District.valueStr();  
 _tmpVillage.Taluka = Taluka.valueStr();  
 _tmpVillage.Village = _Village1._VillageCd;  
 _tmpVillage.YesNo = false;  
 _tmpVillage.insert();  
 }  
 Grid1.update();  
 _tmpVillage_ds.refresh();  
 _tmpVillage_ds.reread();  
 _tmpVillage_ds.research();  
 }  
 }