Acumatica 如何在销售订单屏幕中启用CustomerOrderNbr字段?
在销售订单屏幕中,如果状态已完成,我将尝试启用CustomerOrderNbr字段Acumatica 如何在销售订单屏幕中启用CustomerOrderNbr字段?,acumatica,Acumatica,在销售订单屏幕中,如果状态已完成,我将尝试启用CustomerOrderNbr字段 protected void SOOrder_RowSelected(PXCache cache, PXRowSelectedEventArgs e) { SOOrder doc = e.Row as SOOrder; if (doc == null) { return; } if (doc.Completed == true ) { PXUIFieldAttr
protected void SOOrder_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
{
SOOrder doc = e.Row as SOOrder;
if (doc == null)
{
return;
}
if (doc.Completed == true )
{
PXUIFieldAttribute.SetEnabled(cache, doc , true);
PXUIFieldAttribute.SetEnabled<SOOrder.customerOrderNbr>(cache, doc, true);
}
}
protectedvoid SOOrder\u row选中(PXCache缓存,PXRowSelectedEventArgs e)
{
SOOrder doc=e.行作为SOOrder;
如果(doc==null)
{
返回;
}
如果(doc.Completed==true)
{
PXUIFieldAttribute.SetEnabled(缓存、文档、真);
PXUIFieldAttribute.SetEnabled(缓存、文档、真);
}
}
然而,它仍然处于禁用状态,没有做它应该做的事情。那么我做错了什么?我是否在正确的事件上进行覆盖
或者,一旦销售订单完成,屏幕真的锁定了吗
感谢您的回答。由于销售订单屏幕主要由自动化步骤驱动,除了SOOrder DAC的扩展RowSelected处理程序外,绝对必须为禁用整个SOOrder的已完成订单修改自动化步骤: 除了上面所示的自动化步骤更改之外,您还应该保持SOOrder_row Selected handler:
public class SOOrderEntryExt : PXGraphExtension<SOOrderEntry>
{
public void SOOrder_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
{
SOOrder order = e.Row as SOOrder;
if (order == null) return;
if (order.Completed == true)
{
PXUIFieldAttribute.SetEnabled<SOOrder.customerOrderNbr>(sender, order, true);
}
}
}
公共类SOOrderEntryExt:PXGraphExtension
{
已选择公共无效排序(PXCache发送方,PXRowSelectedEventArgs e)
{
SOOrder order=e.行作为SOOrder;
if(order==null)返回;
if(order.Completed==true)
{
PXUIFieldAttribute.SetEnabled(发送方、订单、true);
}
}
}
这两项更改到位后,客户订单将保持启用状态,以便SO订单处于已完成状态: