Report data changes based on Enum selection in report parameters in Ax2012 x++

 public void processReport()

{

    Query                   query       =   new Query();

    QueryBuildDataSource    qbdspurch,qbdsline,qbdscategory;

    QueryBuildRange         qbr;

    QueryRun                qr;

    PurchTable              purchTable;

    PurchLine               purchLine;

    EcoResCategory          ecorescategory;


    contract                            =   this.parmDataContract() as  Wre_PurchPRCategoryContract;

    fromdate                            =   contract.parmfromdate();

    todate                              =   contract.parmtodate();

    reportType                          =   contract.parmReportType();

    category                            =   contract.parmcategory();

    

    delete_from purchPRCategoryTmp;


    ttsBegin;


    if(reportType   ==   Wre_ReportType::None    ||      reportType  ==   Wre_ReportType::PurchaseRequsition)

    {

        qbdspurch                           =   query.addDataSource(tableNum(PurchTable));

        qbdsline                            =   qbdspurch.addDataSource(tableNum(PurchLine));

        qbdsline.relations(true);

        qbdscategory                        =   qbdsline.addDataSource(tableNum(EcoResCategory));

        qbdscategory.relations(true);

        qbdspurch.addRange(fieldNum(purchTable,CreatedDateTime)).value(SysQuery::range(fromdate,todate));

       // qbdspurch.addRange(fieldNum(purchTable,PurchStatus)).value(SysQuery::value(PurchStatus::Received));

        qr                                  =   new QueryRun(query);


        while (qr.next())

        {

            purchTable                      =   qr.get(tableNum(PurchTable));

            purchLine                       =   qr.get(tableNum(PurchLine));

            Ecorescategory                  =   qr.get(tableNum(EcoResCategory));


            purchPRCategoryTmp.clear();

            purchPRCategoryTmp.PurchId      =   purchTable.PurchId;

            purchPRCategoryTmp.Wre_Date     =   purchTable.createdDateTime;

            purchPRCategoryTmp.PurchReqId   =   purchLine.PurchReqId;

            purchPRCategoryTmp.Name         =   ecorescategory.Name;

            purchPRCategoryTmp.insert();

        }

    }


   else

    {

         qbdspurch                           =   query.addDataSource(tableNum(PurchTable));

         qr                                  =   new QueryRun(query);


        while (qr.next())

        {


            purchTable                      =   qr.get(tableNum(PurchTable));


            purchPRCategoryTmp.clear();

            purchPRCategoryTmp.PurchId      =   purchTable.PurchId;

            purchPRCategoryTmp.Wre_Date     =   purchTable.createdDateTime;


           while select  purchLine

                join    ecorescategory

                    where   purchLine.PurchId   ==  purchTable.PurchId

                         && ecorescategory.RecId   ==  purchLine.ProcurementCategory

            {

                

            purchPRCategoryTmp.PurchReqId   =   purchLine.PurchReqId;

            purchPRCategoryTmp.Name         =   ecorescategory.Name;

                

            }

            purchPRCategoryTmp.insert();

        }

    }


    ttsCommit;


}

Comments

Popular Posts