Generate report using x++.
By using the below code I am generating the report and adding it is adding as a attachment to that purchase order.
Filename fileName = 'PurchaseOrder'.pdf';
SrsReportRunController controller = new SrsReportRunController();
PurchaseOrderContract contract = new PurchaseOrderContract();
SRSPrintDestinationSettings settings;
Array arrayFiles;
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();
str ReportPath, fileContentType;
DocuRef docuRef;
DocuValue docuValue;
System.IO.MemoryStream mstream;
PurchTable purchTable;
Filename attachmentName;
select firstOnly purchTable
where purchTable.PurchId == _purchId;
delete_from docuValue
exists join docuRef
where docuRef.RefRecId == purchTable.RecId
&& docuValue.RecId == docuRef.ValueRecId;
delete_from docuRef
where docuRef.RefRecId == purchTable.RecId;
//set the contract parameters
contract.parmPurchId(purchTable.PurchId);
//set controller parameters
controller.parmReportName('ReportName');//
controller.parmShowDialog(false);
controller.parmLoadFromSysLastValue(false);
controller.parmReportContract().parmRdpContract(contract);
// Provide printer settings
settings = controller.parmReportContract().parmPrintSettings();
settings.printMediumType(SRSPrintMediumType::File);
settings.fileName(fileName);
settings.fileFormat(SRSReportFileFormat::PDF);
// Below is a part of code responsible for rendering the report
controller.parmReportContract().parmReportServerConfig(SRSConfiguration::getDefaultServerConfiguration());
controller.parmReportContract().parmReportExecutionInfo(executionInfo);
//set proxy and service values
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());
//conver the byte array to memory stream
mstream = new System.IO.MemoryStream(reportBytes);
attachmentName = System.IO.Path::GetFileNameWithoutExtension(fileName);
fileContentType = System.Web.MimeMapping::GetMimeMapping(fileName);
//create file attachment in purchase order header with blob storage URL
docuRef = DocumentManagement::attachFileToCommon(purchTable, DocuType::typeFile(),
mstream, fileName, fileContentType, attachmentName);
//Modify the attachment's custom field details
if(docuRef.RecId)
{
}
Comments
Post a Comment