Acumatica-将合并报告添加到电子邮件附件中



我目前正试图通过通知活动将组合报告添加到电子邮件附件中。我目前已经通过一个标准报告实现了这样的功能,该报告没有使用堆栈溢出的帮助进行组合问题:当我使用Acumatica代码点击销售订单屏幕上的自定义操作时,我们如何附加报告PDF/Excel文件。

然而,我似乎需要将组合的报告转换为字节数组才能使用sender。AddAttatchment((。我尝试过像这样生成两个报告,并将它们连接在一起以形成一个字节数组,但它只显示加载的最后一个报告:

//Load First Report
PX.Reports.Controls.Report _report = PXReportTools.LoadReport("AR010000", null);
PXReportTools.InitReportParameters(_report, parameters,
SettingsProvider.Instance.Default);
PX.Reports.Data.ReportNode reportNode = PX.Reports.Data.ReportProcessor.ProcessReport(_report);
//Create Byte Array From First report
byte[] first = PX.Reports.Mail.Message.GenerateReport(reportNode,
ReportProcessor.FilterPdf).First();
//Load Second Report
PX.Reports.Controls.Report _report2 = PXReportTools.LoadReport("AR010000", null);
PXReportTools.InitReportParameters(_report2, parameters,
SettingsProvider.Instance.Default);
PX.Reports.Data.ReportNode reportNode2 = PX.Reports.Data.ReportProcessor.ProcessReport(_report2);
//Create Byte Array From Second Report
byte[] second = PX.Reports.Mail.Message.GenerateReport(reportNode2,
ReportProcessor.FilterPdf).First();
//Concat Both Byte Arrays
byte[] finalReport = new byte[first.Length + second.Length];
Buffer.BlockCopy(first, 0, finalReport, 0, first.Length);
Buffer.BlockCopy(second, 0, finalReport, first.Length, second.Length);
//Attatch The Reports To The Email
sender.AddAttachment("Combined Report.pdf", finalReport.ToArray());

通常,要创建一个组合报告,我会使用以下代码:

//Generate Combined Report 
PXReportRequiredException combineReport = PXReportRequiredException.CombineReport(null, "AP010000", new Dictionary<string, string>(), false);
//Convert Combined Report To Byte Array
byte[] report = PX.Reports.Mail.Message.GenerateReport(combineReport,
ReportProcessor.FilterPdf).First();

然而,我不确定如何将其转换为字节数组,因为它不适用于此代码,因为我得到了错误

Unable to cast object of type 'PX.Data.PXReportRequiredException' to type 'PX.Reports.Data.ReportNode'.

有人知道我该怎么做吗?或者,如果有一些程序集引用我可以使用,类似于用于将none组合报表转换为字节数组的引用,该数组使用PXReportRequiredException?

感谢大家

不幸的是,串联字节数组并不能达到您想要的效果。你需要找到一个第三方库,当我需要这样做时,我使用了PDFSharp。看看这里

使用PDFSharp 组合多个PDF

最新更新