Need to get multi select lookup in parameter level SSRS Reports Ax2012

 Contract class :

[DataContractAttribute,SysOperationContractProcessingAttribute(classstr(Wre_PurchPurchaseOrderUIBuilder))]

class Wre_PurchPurchaseOrderContract

{

    Wre_PurchPurchaseOrder          purchPurchaseOrder;

    Str1260                         purchId;

    TransDate                       fromDate,Todate;

}

[DataMemberAttribute("FromDate"),

SysOperationLabelAttribute("From date"),

SysOperationDisplayOrderAttribute('1')]

public TransDate parmFromDate(TransDate  _fromDate   =   fromDate)

{

    fromDate    =   _fromDate;

    return  fromDate;

}

[DataMemberAttribute("ToDate"),

SysOperationLabelAttribute("To date"),

SysOperationDisplayOrderAttribute('2')]

public TransDate parmTodate(TransDate    _todate =   Todate)

{

    Todate  =   _todate;

    return  Todate;

}

[DataMemberAttribute("PurchId"),

SysOperationLabelAttribute("Purchase order"),

SysOperationDisplayOrderAttribute('3')]

public Str1260 parmPurchId(Str1260   _purchId    =   purchId)

{

    purchId =   _purchId;

    return purchId;

}


Data provider class :


[SRSReportParameterAttribute('Wre_PurchPurchaseOrderContract')]

class Wre_PurchPurchaseOrderDP  extends SrsReportDataProviderPreProcessTempDB

{

    Wre_PurchPurchaseOrderContract      contract;

    Wre_PurchPurchaseOrder              purchPurchaseOrder;

    Wre_PurchPurchaseOrderLine          purchPurchaseOrderLine;

    str                                 purchId;

    TransDate                           fromDate,Todate;


}

[SRSReportDataSetAttribute('Wre_PurchPurchaseOrder')]

protected Wre_PurchPurchaseOrder getWre_PurchPurchaseOrder()

{

    select  purchPurchaseOrder;

    return  purchPurchaseOrder;

}

[SRSReportDataSetAttribute('Wre_PurchPurchaseOrderLine')]

protected Wre_PurchPurchaseOrderLine getWre_PurchPurchaseOrderLine()

{

    select  purchPurchaseOrderLine;

    return  purchPurchaseOrderLine;

}

[SysEntryPointAttribute(false)]

public void processReport()

{


    Query                   query           =       new     Query();

    QueryBuildDataSource    qbdspurchtable,qbdsline,qbdsinventDim;

    QueryBuildRange         qbrpurchtable;

    QueryRun                qr;

    PurchTable              purchtable;

    PurchLine               purchLine;

    InventDim               inventDim;

    CompanyInfo             companyinfo;

    LineAmount              lineAmount;



    contract                                        =       this.parmDataContract() as  Wre_PurchPurchaseOrderContract;

    purchId                                         =       contract.parmPurchId();

    fromDate                                        =       contract.parmFromDate();

    Todate                                          =       contract.parmTodate();

    purchId                                         =       strReplace(purchId,";",",");




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

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

    qbdsline.relations(NoYes::Yes);

    qbdsinventDim                                   =       qbdsline.addDataSource(tableNum(InventDim));

    qbdsinventDim.relations(NoYes::Yes);

    qbdspurchtable.addRange(fieldNum(PurchTable,PurchId)).value(purchId);

    qbdspurchtable.addRange(fieldNum(PurchTable,CreatedDateTime)).value(SysQuery::range(fromDate,Todate));


    qr                                              =       new QueryRun(query);


    ttsBegin;

    while(qr.next())

    {

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

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

        inventDim                                   =       qr.get(tableNum(InventDim));


        purchPurchaseOrder.clear();

        purchPurchaseOrder.PurchId                  =       purchtable.PurchId;

        purchPurchaseOrder.PurchName                =       purchtable.PurchName;

        purchPurchaseOrder.OrderAccount             =       purchtable.OrderAccount;

        purchPurchaseOrder.InvoiceAccount           =       purchtable.InvoiceAccount;

        purchPurchaseOrder.PurchaseType             =       purchtable.PurchaseType;

        purchPurchaseOrder.PurchStatus              =       purchtable.PurchStatus;

        purchPurchaseOrder.DeliveryDate             =       purchtable.DeliveryDate;

        purchPurchaseOrder.DeliveryName             =       purchtable.DeliveryName;

        companyinfo                                 =       companyinfo::find();

        purchPurchaseOrder.Wre_Logo                 =       CompanyImage::findByRecord(companyinfo).Image;

        purchPurchaseOrder.CurrencyCode             =       purchtable.CurrencyCode;


        purchPurchaseOrderLine.ItemId               =       purchLine.ItemId;

        purchPurchaseOrderLine.Name                 =       purchLine.itemName();

        purchPurchaseOrderLine.PurchUnit            =       purchLine.PurchUnit;

        purchPurchaseOrderLine.PurchQty             =       purchLine.PurchQty;

        purchPurchaseOrderLine.PurchPrice           =       purchLine.PurchPrice;

        purchPurchaseOrderLine.CurrencyCode         =       purchLine.CurrencyCode;

        purchPurchaseOrderLine.LineAmount           =       purchLine.LineAmount;

        purchPurchaseOrderLine.InventSiteId         =       inventDim.InventSiteId;

        purchPurchaseOrderLine.InventLocationId     =       inventDim.InventLocationId;

        select  sum(LineAmount) from    purchLine

            where   purchLine.PurchId               ==  purchtable.PurchId;

        purchPurchaseOrderLine.Wre_TotalAmount      =   purchLine.LineAmount;

        purchPurchaseOrderLine.Wre_AmountToWords    =   Global::WRE_numeralsToTxt(purchPurchaseOrderLine.Wre_TotalAmount);

        purchPurchaseOrder.insert();

        purchPurchaseOrderLine.insert();


    }

    ttsCommit;

}


UIBuilder class : 

class Wre_PurchPurchaseOrderUIBuilder   extends SrsReportDataContractUIBuilder
{
    Wre_PurchPurchaseOrderContract  contract;
    DialogField                     dialogPurch,dialogFromDate,DialogTodate;
    str                             purchid;

}

public void build()
{
    contract        =   this.dataContractObject();
    this.addDialogField(methodStr(Wre_PurchPurchaseOrderContract,parmPurchId),contract);
    this.addDialogField(methodStr(Wre_PurchPurchaseOrderContract,parmfromdate),contract);
    this.addDialogField(methodStr(Wre_PurchPurchaseOrderContract,parmTodate),contract);
}

public void purchlookup(FormStringControl   _control)
{
    Query                       query   =   new Query();
    QueryBuildDataSource        qbdspurch;
    QueryBuildRange             qbr;
    container                   con;


    purchid  =   dialogPurch.value();
    purchid  =   strReplace(purchid,";",",");

    qbdspurch   =   query.addDataSource(tableNum(PurchTable));
    qbdspurch.addSelectionField(fieldNum(PurchTable,PurchId));
    //qbdspurch.addRange(fieldNum(PurchTable,PurchId)).value(purchaseid);
    //qbr         =   qbdspurch.addRange(fieldNum(PurchTable,PurchId));
    //qbr.value(purchid);
    SysLookupMultiSelectGrid::lookup(query,_control,_control,con);


}

public void postBuild()
{
    super();

    contract        =   this.dataContractObject()   as  Wre_PurchPurchaseOrderContract;
    dialogPurch     =   this.bindInfo().getDialogField(this.dataContractObject(),methodStr(Wre_PurchPurchaseOrderContract,parmPurchId));
    dialogPurch.registerOverrideMethod(methodStr(FormStringControl,lookup),methodStr(Wre_PurchPurchaseOrderUIBuilder,purchlookup),this);
}

public void postRun()
{
    super();
}


Comments