public static Str getReportBase64Str(RecId _RecId) { SrsReportRunController controller = new SrsReportRunController(); NW_GeneralContract contract = new NW_GeneralContract(); SRSPrintDestinationSettings settings; System.Byte[] reportBytes = new System.Byte[0](); SRSProxy srsProxy; SRSReportRunService srsReportRunService = new SrsReportRunService(); Microsoft.Dynamics.AX.Framework.Reporting.Shared.ReportingService.ParameterValue[] parameterValueArray; Map reportParametersMap; SRSReportExecutionInfo executionInfo = new SRSReportExecutionInfo(); PurchTable Table; System.IO.Stream stream; str Base64Str; changecompany("SHC") { select firstonly Table where Table.RecId == _RecId; if(Table) { Filename filename = strfmt("%1.pdf",Table.PurchId); str reportnameLocal = ssrsReportStr(NW_PurchaseOrderReport, PrecisionDesign1); if(!reportnameLocal) { error("The request Type not Exist in thee request please select it " ); } controller.parmReportName(reportnameLocal); controller.parmShowDialog(false); contract.parmRecordId(Table.RecId); controller.parmReportContract().parmRdpContract(contract); settings = controller.parmReportContract().parmPrintSettings(); settings.printMediumType(SRSPrintMediumType::File); settings.fileFormat(SRSReportFileFormat::PDF); settings.overwriteFile(true); settings.fileName(filename); controller.parmReportContract().parmReportServerConfig(SRSConfiguration::getDefaultServerConfiguration()); controller.parmReportContract().parmReportExecutionInfo(executionInfo); srsReportRunService.getReportDataContract(controller.parmreportcontract().parmReportName()); srsReportRunService.preRunReport(controller.parmreportcontract()); reportParametersMap = srsReportRunService.createParamMapFromContract(controller.parmReportContract()); parameterValueArray = SrsReportRunUtil::getParameterValueArray(reportParametersMap); srsProxy = SRSProxy::constructWithConfiguration(controller.parmReportContract().parmReportServerConfig()); // Actual rendering to byte array reportBytes = srsproxy.renderReportToByteArray(controller.parmreportcontract().parmreportpath(), parameterValueArray, settings.fileFormat(), settings.deviceinfo()); if (reportBytes) { stream = new System.IO.MemoryStream(reportBytes); //Save the file //var fileStream = new System.IO.FileStream(filename, System.IO.FileMode::Create, System.IO.FileAccess::ReadWrite); //stream.CopyTo(fileStream); Base64Str= System.Convert::ToBase64String(reportBytes); } } // end if } // end change company return Base64Str; }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter