System.Exception ex; Filename fileName; SRSPrintDestinationSettings settings; System.Byte[] reportBytes = new System.Byte[0](); SRSProxy srsProxy; SRSReportRunService srsReportRunService = new SrsReportRunService(); Map reportParametersMap; SRSReportExecutionInfo executionInfo = new SRSReportExecutionInfo(); Microsoft.Dynamics.AX.Framework.Reporting.Shared.ReportingService.ParameterValue[] parameterValueArray; System.DateTime dateTime = System.DateTime::get_UtcNow(); str utcTimeAsStr= dateTime.ToString('yyyyMdHHmmss'); fileName = 'SalesInvoiceAutoPrint_' + custInvoiceJour.InvoiceId + '_' + utcTimeAsStr +'.pdf'; try { PrintMgmtReportFormatName printMgmtReportFormatName = PrintMgmtDocType::construct(PrintMgmtDocumentType::SalesOrderInvoice).getDefaultReportFormat(); SalesInvoiceContract salesInvoiceContract = new SalesInvoiceContract(); salesInvoiceContract.parmRecordId(custInvoiceJour.RecId); SrsReportRunController srsReportRunController = new SrsReportRunController(); srsReportRunController.parmReportName(printMgmtReportFormatName); srsReportRunController.parmExecutionMode(SysOperationExecutionMode::Synchronous); srsReportRunController.parmShowDialog(false); srsReportRunController.parmLoadFromSysLastValue(false); srsReportRunController.parmReportContract().parmRdpContract(salesInvoiceContract); SRSPrintDestinationSettings printerSettings = srsReportRunController.parmReportContract().parmPrintSettings(); printerSettings.printMediumType(SRSPrintMediumType::File); printerSettings.fileFormat(SRSReportFileFormat::PDF); printerSettings.parmFileName(fileName); printerSettings.fileName(fileName); printerSettings.overwriteFile(true); // Below is a part of code responsible for rendering the report srsReportRunController.parmReportContract().parmReportServerConfig(SRSConfiguration::getDefaultServerConfiguration()); srsReportRunController.parmReportContract().parmReportExecutionInfo(executionInfo); srsReportRunService.getReportDataContract(srsReportRunController.parmreportcontract().parmReportName()); srsReportRunService.preRunReport(srsReportRunController.parmreportcontract()); reportParametersMap = srsReportRunService.createParamMapFromContract(srsReportRunController.parmReportContract()); parameterValueArray = SrsReportRunUtil::getParameterValueArray(reportParametersMap); srsProxy = SRSProxy::constructWithConfiguration(srsReportRunController.parmReportContract().parmReportServerConfig()); reportBytes = srsproxy.renderReportToByteArray(srsReportRunController.parmReportContract().parmReportPath(), parameterValueArray, printerSettings.fileFormat(), printerSettings.deviceinfo()); //srsproxy.renderReportToFile(); //srsproxy.renderReportToPrinter(); if (reportBytes) { // upload PDF file System.IO.MemoryStream stream = new System.IO.MemoryStream(reportBytes); URL downloadLink; VKUploadToCloud uploadToCloud = VKUploadToCloud::construct( 'DefaultEndpointsProtocol=https;AccountName={AccountName};AccountKey={AccountKey};EndpointSuffix=core.windows.net', 'invoices' ); downloadLink = uploadToCloud.upload(fileName, stream); } } catch(Exception::CLRError) { ex = ClrInterop::getLastException(); if (ex != null) { ex = ex.get_InnerException(); if (ex != null) { error(ex.ToString()); } } } catch(ex) { error(ex.Message); }
DaxOnline.org is free platform that allows you to quickly store and reuse snippets, notes, articles related to Dynamics AX.
Authors are allowed to set their own AdSense units.
Join us.