How to build query object in axapta


 Query query;  
 QueryBuildDataSource qbds1;  
 QueryBuildDataSource qbds2;  
 QueryBuildRange qbr1;  
 QueryBuildRange qbr2;  
 QueryRun queryRun;  
 CustTable custTable;  
 ;  
 query = new Query();  
 qbds1 = query.addDataSource(tablenum(CustTable));  
 qbds1.addSortField(  
 fieldnum(CustTable, Name),  
 SortOrder::Ascending);  
 qbr1 = qbds1.addRange(fieldnum(CustTable,Blocked));  
 qbr1.value(queryvalue(CustVendorBlocked::No));  
 qbr2 = qbds1.addRange(fieldnum(CustTable,CustGroup));  
 qbr2.value(queryvalue('10'));  
 qbds2 = qbds1.addDataSource(tablenum(SalesTable));  
 qbds2.relations(false);  
 qbds2.joinMode(JoinMode::ExistsJoin);  
 qbds2.addLink(  
 fieldnum(CustTable,AccountNum),  
 fieldnum(SalesTable,CustAccount));  
 queryRun = new QueryRun(query);  
 while (queryRun.next())  
 {  
 custTable = queryRun.get(tablenum(CustTable));  
 info(strfmt(  
 "%1 - %2",  
 custTable.Name,  
 custTable.AccountNum));  
 }  
 }