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
Post a Comment