【问题标题】:How To Create Additional Menu Options in Report Button of Bill and Adjusment Screen in Acumatica ERP System (Version 2021 R1)如何在Acumatica ERP系统中的账单和调整屏幕的报表按钮中创建其他菜单选项(版本2021 R1)
【发布时间】:2021-07-21 13:56:43
【问题描述】:

有谁知道如何在Acumatica ERP系统的Bill & Adjusment屏幕中添加Report按钮的菜单项,请看下面的截图。

我还为新的操作按钮创建了一些自定义代码,请参阅以下代码。

namespace PX.Objects.AP
{
    public class APInvoiceEntry_Extension : PXGraphExtension<APInvoiceEntry>
    {
        public override void Initialize()
        {
            Base.report.AddMenuAction(VendorInvoiceUnreleased);
            Base.report.AddMenuAction(VendorInvoiceReleased);
        }

        #region buton Vendor Invoice Not Released
        public PXAction<APInvoice> VendorInvoiceUnreleased;
        [PXButton]
        [PXUIField(DisplayName = "Vendor Invoice")]
        public IEnumerable vendorInvoiceUnreleased(PXAdapter adapter)
        {
            var result = adapter.Get<APInvoice>();
            foreach (APInvoice doc in result)
            {

                object FinPeriodID;
                if (Base.Caches[typeof(APInvoice)].GetStatus(doc) == PXEntryStatus.Notchanged)
                {
                    Base.Caches[typeof(APInvoice)].SetStatus(doc, PXEntryStatus.Updated);
                }
                Base.Save.Press();

                var docPeriod = (FinPeriodID = Base.Caches[typeof(APInvoice)].GetValueExt<APRegister.finPeriodID>(doc)) is PXFieldState ? (string)((PXFieldState)FinPeriodID).Value : (string)FinPeriodID;
                Dictionary<string, string> parameters = new Dictionary<string, string>();
                parameters["BranchID"] = null;
                parameters["PeriodFrom"] = docPeriod;
                parameters["PeriodTo"] = docPeriod;
                parameters["CreatedBy"] = null;
                parameters["LastModifiedBy"] = null;
                parameters["DocType"] = doc.DocType;
                parameters["RefNbr"] = doc.RefNbr;
                throw new PXReportRequiredException(parameters, "AP910503", "Report");
            }
            return result;
        }
        #endregion

        #region Vendor Invoice Released
        public PXAction<APInvoice> VendorInvoiceReleased;
        [PXButton]
        [PXUIField(DisplayName = "Vendor Invoice Released")]
        public IEnumerable vendorInvoiceReleased(PXAdapter adapter)
        {
            var result = adapter.Get<APInvoice>();
            foreach (APInvoice doc in result)
            {
                object FinPeriodID;
                if (Base.Caches[typeof(APInvoice)].GetStatus(doc) == PXEntryStatus.Notchanged)
                {
                    Base.Caches[typeof(APInvoice)].SetStatus(doc, PXEntryStatus.Updated);
                }
                Base.Save.Press();

                var docPeriod = (FinPeriodID = Base.Caches[typeof(APInvoice)].GetValueExt<APRegister.finPeriodID>(doc)) is PXFieldState ? (string)((PXFieldState)FinPeriodID).Value : (string)FinPeriodID;
                Dictionary<string, string> parameters = new Dictionary<string, string>();
                parameters["BranchID"] = null;
                parameters["PeriodFrom"] = docPeriod;
                parameters["PeriodTo"] = docPeriod;
                parameters["CreatedBy"] = null;
                parameters["LastModifiedBy"] = null;
                parameters["DocType"] = doc.DocType;
                parameters["RefNbr"] = doc.RefNbr;
                throw new PXReportRequiredException(parameters, "AP910501", "Report");
            }
            return result;
        }
        #endregion

但是,我有以下错误。

此代码在 Acumatica 版本 2017 R2 中有效,但在 2021 R1 版本中无效。 有谁知道解决这个问题的正确方法吗??

谢谢。

【问题讨论】:

    标签: c# customization acumatica erp


    【解决方案1】:

    我建议使用 acumatica 自定义项目功能。这可以从定制项目中访问。对于这种方法,您有两种可能的情况。如果一个按钮只需要显示一个报告而没有额外的逻辑。在这种情况下,您只需在自定义项目的屏幕操作部分中指定按钮,如下图所示。

    另一个选项是在代码中定义按钮,然后也转到自定义项目的操作部分,而不是添加新的,您可以选择添加现有的。这将添加您现有的按钮,您将能够指定您希望它位于报告菜单下。

    【讨论】:

    • 嗨,Jean,感谢您的建议。我已经使用了您的第二个选项并且它有效,非常感谢您,我很感激。 :)
    猜你喜欢
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多