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);
}
}
请将您的代码添加到问题中。工作完美!谢谢你的帮助。