【问题标题】:How to get report bytes in 21.208如何在 21.208 中获取报告字节
【发布时间】:2023-01-25 12:50:31
【问题描述】:

我在尝试升级到 21.208 的 2020 R1 系统中有以下代码。问题是“SettingsProvider”没有“Instance”属性,因此会导致构建错误。此外,我收到 PXReportTools 已过时的警告,但我不确定用什么替换它?

此代码是获取报告的 byte[],然后将其附加到电子邮件中。更新的 21.208 方法是什么?

                    Dictionary<string, string> dictionary = new Dictionary<string, string>();
                    dictionary["ARInvoice.DocType"] = current.DocType;
                    dictionary["ARInvoice.RefNbr"] = current.RefNbr;

                    Report report = PXReportTools.LoadReport("AR641000", (IPXResultset)null);
                    PXReportTools.InitReportParameters(report, (IDictionary<string, string>)dictionary, SettingsProvider.Instance.Default);
                    
                    
                    byte[] data = PX.Reports.Mail.Message.GenerateReport((object)ReportProcessor.ProcessReport(report), "PDF").First<byte[]>();

TIA!

【问题讨论】:

    标签: acumatica


    【解决方案1】:

    从 21R2 开始,对于报告加载,您需要使用依赖注入在图表中导入两个依赖项

    [InjectDependency]
    protected IReportLoaderService ReportLoader { get; private set; }
    
    [InjectDependency]
    protected IReportRenderer ReportRenderer { get; private set; }
    

    然后使用这两个服务,您可以使用以下方法检索字节报告数据:

    Dictionary<String, String> parameters = new Dictionary<String, String>();
    Report _report = reportLoader.LoadReport(ARReports.InvoiceMemoReportID, null);
    reportLoader.InitDefaultReportParameters(_report, parameters);
    
    byte[] fileDate = null;
    
    using (StreamManager streamMgr = new StreamManager())
    {
        reportRenderer.Render(RenderType.FilterPdf, _report, deviceInfo: null, streamMgr);
        fileData = streamMgr.MainStream.GetBytes();
    }
    

    如果你想用一个名字在本地保存它,你也可以将它保存在一个 FileInfo 对象中。

    【讨论】:

    • 让克洛德 - 谢谢!这正是我所缺少的。
    【解决方案2】:

    @MikeNlke 嗨,我面临同样的问题。你能在这里分享整个报告处理代码sn-p吗?

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多