У меня есть отчет, который успешно печатает 1 запись на страницу в представлении PDF при запуске вручную, и экспорт в формате PDF также успешен.
Мне нужно сгенерировать отчет программно и сохранить его в записи SO,С кодом, который у меня есть, я получаю только первую страницу.Как я могу сохранить все страницы в файл?
private IEnumerable ExportReport(PXAdapter adapter, string reportID, Dictionary<String, String> parameters)
{
//Press save if the SO is not completed
if (Base.Document.Current.Completed == false)
{
Base.Save.Press();
}
PX.SM.FileInfo file = null;
using (Report report = PXReportTools.LoadReport(reportID, null))
{
if (report == null)
{
throw new Exception("Unable to access Acumatica report writer for specified report : " + reportID);
}
PXReportTools.InitReportParameters(report, parameters, PXSettingProvider.Instance.Default);
ReportNode reportNode = ReportProcessor.ProcessReport(report);
IRenderFilter renderFilter = ReportProcessor.GetRenderer(ReportProcessor.FilterPdf);
//Generate the PDF
using (StreamManager streamMgr = new StreamManager())
{
renderFilter.Render(reportNode, null, streamMgr);
UploadFileMaintenance graphUploadFile = PXGraph.CreateInstance<UploadFileMaintenance>();
file = new PX.SM.FileInfo(reportNode.ExportFileName + ".pdf", null, streamMgr.MainStream.GetBytes());
}
//Save the PDF to the SO; if it already exists save as a new version.
UploadFileMaintenance graph = new UploadFileMaintenance();
graph.SaveFile(file, FileExistsAction.CreateVersion);
PXNoteAttribute.AttachFile(Base.Document.Cache, Base.Document.Current, file);
}
//Return the info on the file
return adapter.Get();
}
Я также попытался сгенерировать PDF, используя этот код:
//Generate the PDF
byte[] data = PX.Reports.Mail.Message.GenerateReport(reportNode, ReportProcessor.FilterPdf).First();
file = new PX.SM.FileInfo(reportNode.ExportFileName + ".pdf", null, data);
И, похоже, GenerateReport возвращает IList, поэтому яПолагаю, каждая страница - это отдельный элемент списка.Как правильно их объединить и сохранить как PX.SM.FileInfo?