Drop down menu Acumatica PX默认下拉列表

Drop down menu Acumatica PX默认下拉列表,drop-down-menu,acumatica,default-value,Drop Down Menu,Acumatica,Default Value,在“应收账款”模块的“付款和应用程序”屏幕中添加新行时,我试图将默认值更改为借方备忘。我尝试过设置PXDefault(ARDocType.DebitMemo),但似乎不起作用。有人能给我指出正确的方向吗?支付和应用程序页面使用一些有趣的逻辑来确定使用的默认值,它们在标题文档的rowselected事件期间的调用中定义该值 protected virtual void ARPayment_RowSelected(PXCache cache, PXRowSelectedEventArgs e)

在“应收账款”模块的“付款和应用程序”屏幕中添加新行时,我试图将默认值更改为
借方备忘
。我尝试过设置PXDefault(ARDocType.DebitMemo),但似乎不起作用。有人能给我指出正确的方向吗?

支付和应用程序页面使用一些有趣的逻辑来确定使用的默认值,它们在标题文档的rowselected事件期间的调用中定义该值

protected virtual void ARPayment_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
        {
.....
SetDocTypeList(e.Row);
.....
}


    public static void SetDocTypeList(PXCache cache, string docType)
    {
        string defValue = ARDocType.Invoice;
        List<string> values = new List<string>();
        List<string> labels = new List<string>();

        if (docType == ARDocType.Refund)
        {
            defValue = ARDocType.CreditMemo;
            values.AddRange(new string[] { ARDocType.CreditMemo, ARDocType.Payment, ARDocType.Prepayment });
            labels.AddRange(new string[] { Messages.CreditMemo, Messages.Payment, Messages.Prepayment });
        }
        else if (docType == ARDocType.Payment || docType == ARDocType.VoidPayment)
        {
            values.AddRange(new string[] { ARDocType.Invoice, ARDocType.DebitMemo, ARDocType.CreditMemo, ARDocType.FinCharge });
            labels.AddRange(new string[] { Messages.Invoice, Messages.DebitMemo, Messages.CreditMemo, Messages.FinCharge });
        }
        else
        {
            values.AddRange(new string[] { ARDocType.Invoice, ARDocType.DebitMemo, ARDocType.FinCharge });
            labels.AddRange(new string[] { Messages.Invoice, Messages.DebitMemo, Messages.FinCharge });
        }

        if (!PXAccess.FeatureInstalled<FeaturesSet.overdueFinCharges>() && values.Contains(ARDocType.FinCharge) && labels.Contains(Messages.FinCharge))
        {
            values.Remove(ARDocType.FinCharge);
            labels.Remove(Messages.FinCharge);
        }

        PXDefaultAttribute.SetDefault<ARAdjust.adjdDocType>(cache, defValue);
        PXStringListAttribute.SetList<ARAdjust.adjdDocType>(cache, null, values.ToArray(), labels.ToArray());
    }

    private void SetDocTypeList(object Row)
    {
        ARPayment row = Row as ARPayment;
        if (row != null)
        {
            SetDocTypeList(Adjustments.Cache, row.DocType);
        }
    }
protected virtual void ARPayment\u row选中(PXCache缓存,PXRowSelectedEventArgs e)
{
.....
SetDocTypeList(e.Row);
.....
}
公共静态void setdoctype列表(PXCache缓存,字符串docType)
{
字符串defValue=ARDocType.Invoice;
列表值=新列表();
列表标签=新列表();
如果(docType==ARDocType.return)
{
defValue=ARDocType.CreditMemo;
values.AddRange(新字符串[]{ARDocType.CreditMemo,ARDocType.Payment,ARDocType.预付款});
labels.AddRange(新字符串[]{Messages.CreditMemo,Messages.Payment,Messages.preadpayment});
}
else if(docType==ARDocType.Payment | | docType==ARDocType.VoidPayment)
{
values.AddRange(新字符串[]{ARDocType.Invoice,ARDocType.DebitMemo,ARDocType.CreditMemo,ARDocType.FinCharge});
labels.AddRange(新字符串[]{Messages.Invoice,Messages.DebitMemo,Messages.CreditMemo,Messages.FinCharge});
}
其他的
{
values.AddRange(新字符串[]{ARDocType.Invoice,ARDocType.DebitMemo,ARDocType.FinCharge});
labels.AddRange(新字符串[]{Messages.Invoice,Messages.DebitMemo,Messages.FinCharge});
}
如果(!PXAccess.FeatureInstalled()&&values.Contains(ARDocType.FinCharge)&&labels.Contains(Messages.FinCharge))
{
移除(ARDocType.FinCharge);
标签。删除(Messages.FinCharge);
}
PXDefaultAttribute.SetDefault(缓存,defValue);
pxstringlisttribute.SetList(缓存,null,value.ToArray(),labels.ToArray());
}
私有void SetDocTypeList(对象行)
{
ARPayment行=作为ARPayment的行;
如果(行!=null)
{
SetDocTypeList(Adjustments.Cache,row.DocType);
}
}
要获得所需的默认值,可以实现以下代码:

public class ARPaymentEntryExtension : PXGraphExtension<ARPaymentEntry>
{
    protected virtual void ARPayment_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
    {
            PXDefaultAttribute.SetDefault<ARAdjust.adjdDocType>(Base.Adjustments.Cache, ARDocType.DebitMemo);
    }
}
公共类arPaymentryExtension:pxGrapherExtension
{
已选择受保护的虚拟无效ARPayment(PXCache缓存,PXRowSelectedEventArgs e)
{
PXDefaultAttribute.SetDefault(Base.Adjustments.Cache,ARDocType.DebitMemo);
}
}

请将您的代码添加到问题中。工作完美!谢谢你的帮助。