我需要添加到销售订单屏幕的自定义字段,即使订单已发货,也始终启用,订单具有“送货”状态。 我已经扩展了SOOrder_RowSelected方法以启用自定义字段,但当订单处于“送货”状态时,该字段仍然处于禁用状态。
public class SOOrderEntryExt : PXGraphExtension<SOOrderEntry>
{
public virtual void SOOrder_RowSelected(PXCache cache, PXRowSelectedEventArgs e, PXRowSelected del)
{
SOOrder row = e.Row as SOOrder;
if (row == null)
return;
if (del != null)
del(cache, e);
PXUIFieldAttribute.SetEnabled<SOOrderExt.usrContact>(cache, null, true);
}
}
答案 0 :(得分:1)
尝试代替public virtual void
使用protected virtual void
。还要检查天气del
执行不会产生异常(我生命中的某个时候我处于这种情况)。
protected virtual void SOOrder_RowSelected(PXCache cache, PXRowSelectedEventArgs e, PXRowSelected del)
{
SOOrder row = e.Row as SOOrder;
if (row == null)
return;
try{
if (del != null)
del(cache, e);
}
catch(Exception ex)
{
//check for surprises
}
PXUIFieldAttribute.SetEnabled<SOOrderExt.usrContact>(cache, null, true);
}
另一个感兴趣的领域可能是检查你或其他人通过自动化步骤修改它的启用/禁用