Run report through code at runtime in D365fo x++

Run report through code at runtime in D365fo x++

internal final class DSSContractInfoutil  extends SrsReportRunController
{

    public static void Main(Args _args)
    {
        DSSContractInfoutil controller = new  DSSContractInfoutil();
        controller.setReportName(ssrsReportStr(DSALotWiseSalesReport, Design));
        controller.parmArgs(_args);
        controller.parmShowDialog(false);
        controller.startOperation();
    }

    public void setReportName(str _reportName)
    {
        this.parmReportName(_reportName);
        Object rdpContract = this.parmReportContract().parmRdpContract();

        SrsReportRdpDataContractInfo rdpContractInfo = SrsReportRdpDataContractInfo::newParameterInfo(classId2Name(classIdGet(rdpContract)), rdpContract, DSSContractInfoutil::parmReportRun(_reportName));
        Map dataContarct   = rdpContractInfo.getMembers();
        this.setParameterValues(rdpContract, dataContarct);
    }

    public void setParameterValues(Object _rdpContract, Map _dataContarct)
    {
        var parameters = new System.Collections.ArrayList();
        parameters.Add('1');
        MapEnumerator mapEnumerator = _dataContarct.getEnumerator();
        while (mapEnumerator.moveNext())
        {
            var ret = Microsoft.Dynamics.Ax.Xpp.ReflectionCallHelper::MakeInstanceCall(_rdpContract, mapEnumerator.currentKey(), parameters.ToArray());
        }
    }

    public static SrsReportRunInterface parmReportRun(str _reportName)
    {
        SrsReportRunInterface reportRun;
        if(_reportName)
        {
            reportRun = SrsReportRunFactory::getReportRun(_reportName);
            reportRun.parmIsLocalMode(true);
        }
        else
        {
            throw error("@SYS322716");
        }
        
        return reportRun;
    }

}

Comments

Popular posts from this blog

D365FO – AX – X++ –Refresh, Reread, Research, and ExecuteQuery

Create Inventory Journal through Code in D365FO X++

SalesLine Reservation in D365fo x++