如何更改应付帐款付款的“文档类型”下拉菜单中的标签

时间:2019-06-25 22:53:53

标签: acumatica

我正在尝试更改“应付账款付款”表单上“文档类型”下拉菜单的标签,类似于我在上一个问题How to change the appearance of APInvoice types (Bill, Credit Adjustment, etc)?中对“应付账款发票”所做的操作。我正尝试将“借方和贷方调整”的标签更改为更熟悉该术语的客户的贷方和借项备忘录。尝试时出现错误,指出我使用的数组长度不相等。

我还试图更改“ AP付款”行项目的“调整文档类型”下拉菜单的标签来执行相同的操作。但是,我编译的代码不会导致任何下拉标签更改。

我试图使用类似的代码来更改AP发票文档类型的标签,但是由于它没有出现在AP Payment下拉菜单的属性中,因此我取消了对迁移模式的引用。

CustomAPPaymentType:

    public class CustomAPPaymentType : APPaymentType
    {
        public new static readonly string[] NewLabels = new string[]
        {
          "Check",
          "Credit Memo",
          "Prepayment",
          "Vendor Refund",
          "Voided Refund",
          "Voided Check"
        };

        public new class ListAttribute : PXStringListAttribute
        {
            public ListAttribute() : base(APPaymentType.Values, 
                                               CustomAPPaymentType.NewLabels )
            {
            }
        }

    }

CustomAPPaymentTypeListAttribute:

    public class CustomAPPaymentTypeListAttribute : 
                                            CustomAPPaymentType.ListAttribute
    {

           public override void CacheAttached(PXCache sender)
           {
                this._AllowedValues = new string[]
                {
                      "CHK",
                      "ADR",
                      "PPM",
                      "REF",
                      "VRF",
                      "VCK"
                };
                this._AllowedLabels = new string[]
                {
                      "Check",
                      "Credit Memo",
                      "Prepayment",
                      "Vendor Refund",
                      "Voided Refund",
                      "Voided Check"
                };
                this._NeutralAllowedLabels = new string[]
                {
                      "Check",
                      "Credit Memo",
                      "Prepayment",
                      "Vendor Refund",
                      "Voided Refund",
                      "Voided Check"
                };
                base.CacheAttached(sender);
           }
     }

APPaymentEntry:

     public class APPaymentEntry_Extension : PXGraphExtension<APPaymentEntry>
     {

            #region Event Handlers
            [PXDBString(3, IsKey = true, IsFixed = true)]
            [PXDefault]
            [CustomAPPaymentTypeList]
            [PXUIField(DisplayName = "Type", Visibility = 
                PXUIVisibility.SelectorVisible, Enabled = true, TabOrder = 0)]
            [PXFieldDescription]

        protected virtual void APPayment_DocType_CacheAttached(PXCache sender)
        {
        }

            [PXDBString(3, IsKey = true, IsFixed = true, InputMask = "")]
            [PXDefault(APDocType.Invoice)]
            [PXUIField(DisplayName = "Document Type", 
                        Visibility = PXUIVisibility.Visible)]
            [CustomAPInvoiceType.AdjdList()]
    protected virtual void APAdjust_AdjdDocType_CacheAttached(PXCache sender)
    {
    }

           #endregion
  }

CustomAPInvoiceType:包括AdjdListAttribute以便更改Adjd文档类型下拉菜单

    public class CustomAPInvoiceType : APInvoiceType
    {

        public new static readonly string[] NewLabels = new string[]
        {
            "Bill",
            "Debit Memo",
            "Credit Memo",
            "Prepayment"
        };

        public new class ListAttribute : PXStringListAttribute
        {
            public ListAttribute() : base(APInvoiceType.Values, 
                                                CustomAPInvoiceType.NewLabels)
            {
            }
        }

        public new class AdjdListAttribute : PXStringListAttribute
        {
            public AdjdListAttribute() : base(APInvoiceType.Values, 
                                                CustomAPInvoiceType.NewLabels)
            {
            }
        }
    }

我想要的是“应付帐款”窗体中“凭证类型”和“调整凭证类型”的下拉菜单,以反映我正在尝试的更改,将“借方和贷方调整”标签更改为“贷方和借项凭单”。尝试访问AP付款表单时收到的错误是:

错误#0:值数组的长度不等于标签数组的长度。参数名称:allowedLabels。

我不确定如何进行,似乎我有太多的“标签”或“值”,但不清楚在哪一个上。我试图对当前APPayment类型的当前设置保持准确,关于我出了错的地方有何建议?

1 个答案:

答案 0 :(得分:2)

1) 更改文档类型字段的标签: 将“借方/贷方调整”更改为“借方/贷方通知单” 您无需编写任何代码行。

您可以使用“翻译词典”屏幕(SM200540)来实现此目的。 https://www.youtube.com/watch?v=AdHnBtRPOd0

当我们需要在字符串列表中添加或删除“文档类型”时,我们会在开发中自定义属性。

2) 使用“翻译”的另一个原因是,您可以在应用程序的多个位置(例如消息),您尚未想到的地方进行更改:)像这样:“只能选择发票和借方调整进行付款。”

您将比开发解决方案快:) 您也可以将更改发布到“自定义项目”(系统区域设置)中。

3) 良好做法:对于Labels,请在PXLocalizable类内使用常量而不是文字字符串。这样,它将是多国语言,或者客户可能能够“编辑”可能需要的任何标签。