当我使用Acumatica代码单击销售订单屏幕上的自定义操作时,如何附加报告PDF/Excel文件

当我使用Acumatica代码单击销售订单屏幕上的自定义操作时,如何附加报告PDF/Excel文件,acumatica,acumatica-kb,Acumatica,Acumatica Kb,我们的要求是在销售订单屏幕上创建新操作,当我们单击该自定义操作时,我们将打开电子邮件活动屏幕以在该电子邮件中发送电子邮件,我们希望在不单独单击“报告操作”按钮的情况下附加报告PDF/Excel文件,但当我们通过代码点击自定义操作按钮时,应该会发生这种情况 当我们单击“自定义操作”按钮而不是“报告操作”时,是否可以附加报告文件 提前谢谢。 这可以在自定义操作中使用PXReportTools和PX.SM.FileInfo实现。正如Dmitrii Naumov在评论中指出的那样,要做到这一点,您只需要

我们的要求是在销售订单屏幕上创建新操作,当我们单击该自定义操作时,我们将打开电子邮件活动屏幕以在该电子邮件中发送电子邮件,我们希望在不单独单击“报告操作”按钮的情况下附加报告PDF/Excel文件,但当我们通过代码点击自定义操作按钮时,应该会发生这种情况

当我们单击“自定义操作”按钮而不是“报告操作”时,是否可以附加报告文件

提前谢谢。

这可以在自定义操作中使用
PXReportTools
PX.SM.FileInfo
实现。正如Dmitrii Naumov在评论中指出的那样,要做到这一点,您只需要设置所需的报告并设置它期望的参数

以下是发现此问题的所有人所需的代码:

公共类ARInvoiceEntryExtension:pxGrapherExtension
{
公共行动报告;
[PXUIField(DisplayName=“附加报告”)]
[按钮]
公共虚拟IEnumerable AttachReport(PXAdapter适配器)
{
//报告参数
字典参数=新字典();
参数[“ARInvoice.DocType”]=Base.Document.Current.DocType;
参数[“ARInvoice.RefNbr”]=Base.Document.Current.RefNbr;
//报表处理
PX.Reports.Controls.Report _Report=PXReportTools.LoadReport(“AR641000”,null);
PXReportTools.InitReportParameters(_report,parameters,
SettingsProvider.Instance.Default);
ReportNode ReportNode=ReportProcessor.ProcessReport(_report);
//生成PDF
字节[]数据=PX.Reports.Mail.Message.GenerateReport(reportNode,
ReportProcessor.FilterPdf).First();
PX.SM.FileInfo file=新的PX.SM.FileInfo(reportNode.ExportFileName+“.pdf”,空,数据);
UploadFileMaintenance图形=新建UploadFileMaintenance();
graph.SaveFile(文件);
PXNoteAttribute.AttachFile(Base.Document.Cache,Base.Document.Current,file);
返回适配器Get();
}
}

请检查以下问题:我认为它包含一个相关示例,您也可以使用HI Dimtri,是否可以在不使用API callSure的情况下附加报表pdf,只需使用答案中的代码并从UI调用即可