Tuesday, October 27, 2015

How to Create X++ Query in Ax 2012 R3

Hi Friends,

Simple Example of how create X++ Query

static void XPPQuery(Args _args)
{
    Query                   query;
    QueryRun                queryRun;
    QueryBuildDataSource    queryBuildDataSource;
    QueryBuildDataSource    queryBuildDataSource1;
    QueryBuildDataSource    queryBuildDataSource2;
    QueryBuildRange         queryBuildRange;
 
    CustomerTable           customerTable;
    CardTable               cardTable;
    TransactionTable        transactionTable;
 
 
    query = new query();
    queryBuildDataSource    = query.addDataSource(tableNum(customerTable)); //Add Query
    queryBuildDataSource.addSortField(fieldNum(customerTable,AccountNumber),SortOrder::Descending);
 
    queryBuildRange =    queryBuildDataSource.addRange(fieldNum(customerTable,AccountNumber));
    //queryBuildRange.value(queryValue('11')+('*'));
 
    queryBuildDataSource1   = queryBuildDataSource.addDataSource(tableNum(cardTable));
 
    queryBuildDataSource1.relations(true); // define Relations
    queryBuildDataSource1.joinMode(JoinMode::InnerJoin); //define Join Mode
 
    queryBuildDataSource2   =  queryBuildDataSource1.addDataSource(tableNum(transactionTable));
    queryBuildDataSource2.relations(true);
    queryBuildDataSource2.joinMode(JoinMode::ExistsJoin); // only shows trasancton customers no dublicate;
    queryBuildDataSource2.joinMode(JoinMode::NoExistsJoin);// no did transactions
    queryBuildDataSource2.joinMode(JoinMode::InnerJoin);// all trasaction details with multple times
    queryBuildDataSource2.joinMode(JoinMode::OuterJoin);
 
    queryRun    = new QueryRun(query);  //Passsing Query to Queryrun
 
    while(queryRun.next())
    {
        customerTable = queryRun.get(tableNum(CustomerTable));
        cardTable     = queryRun.get(tableNum(cardTable));
        transactionTable    =queryRun.get(tableNum(transactionTable));
     
        info(strFmt("%1,%2,%3,%4", customerTable.AccountNumber, customerTable.AddressCity,cardTable.Amount,transactionTable.TransID));//customerTable.Name));
 
 
    }
    
 
}

Keep Daxing....!

No comments:

Post a Comment