代码之家  ›  专栏  ›  技术社区  ›  Prathyusha

流程屏幕上的自定义打印发票操作

  •  0
  • Prathyusha  · 技术社区  · 6 年前

    我正在尝试在我的新流程屏幕上打印发票操作,该操作指向以客户参考编号为参数的新自定义报告。有什么帮助吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Hugues Beauséjour    6 年前

    在Acumatica中,重定向到另一个页面(指向新的自定义报表)是通过抛出重定向异常来完成的。要重定向到报表页,应使用的异常为“PXReportRequiredException”。

        public PXAction<Customer> printInvoice;
    
        [PXUIField(DisplayName = "Print Invoice", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]
        public virtual IEnumerable PrintInvoice(PXAdapter adapter)
        {
            Customer customer = [fetch desired customer record here];
    
            if (customer != null && customer.RefNbr != null)
            {
                // Add your report parameters to a Dictionary<string, string> collection.
                // The dictionary key is the parameter name as shown in the report editor.
                // The dictionary value is the value you assign to that parameter.
                Dictionary<string, string> parameters = new Dictionary<string, string>();
                parameters["RefNbr"] = customer.RefNbr;
    
                // Provide your custom report ReportID
                string reportID = "AR641000";
    
                // Provide a title name for your report page
                string reportName = "Customer Invoice"
    
                // Redirect to report page by throwing a PXReportRequiredException object 
                throw new PXReportRequiredException(parameters, reportID, reportName);
            }
    
            return adapter.Get();
        }
    

    您可以在Acumatica报表设计器的“架构生成器”对话框的“参数”选项卡中查找参数名称: enter image description here