如何在销售订单界面上启用PO链接



我正在尝试改变启用" PO链接"的逻辑。操作/按钮上的销售订单行。我找不到控制启用/禁用的代码在哪里。它是由工作流控制的吗?如果有,在哪里?

我试过下面的方法,但是SetEnable()显然被覆盖了。

public class MySOOrderEntryExt : 
PXGraphExtension<PX.Objects.SO.GraphExtensions.SOOrderEntryExt.POLinkDialog, 
PX.Objects.SO.GraphExtensions.SOOrderEntryExt.PurchaseSupplyBaseExt, SOOrderEntry>
{
public void _(Events.RowSelected<SOOrder> e)
{
//Base.Actions["pOSupplyOK"].SetEnabled(false);  //Doesn't work.
Base.Actions["pOSupplyOK"].SetVisible(false);

}

}

有什么主意都可以。

TIA !

控件由2个组件组成。在网格的ActionBar的ASPX中,按钮定义为:

<px:PXToolBarButton Text="PO Link" DependOnGrid="grid" StateColumn="IsPOLinkAllowed">
<AutoCallBack Command="POSupplyOK" Target="ds" ></AutoCallBack>
</px:PXToolBarButton>

StateColumn指的是决定动作/按钮是否启用的字段。这在SOLine字段IsPOLinkAllowed中定义为:

#region IsPOLinkAllowed
public abstract class isPOLinkAllowed : PX.Data.BQL.BqlBool.Field<isPOLinkAllowed> { }
[PXFormula(typeof(Switch<Case<Where<SOLine.pOCreate, Equal<True>, And<SOLine.operation, Equal<SOOperation.issue>>>, True>, False>))]
[PXUIField(DisplayName = "", Visibility = PXUIVisibility.Invisible, Visible = false, Enabled = false)]
[PXBool]
public virtual bool? IsPOLinkAllowed
{
get;
set;
}
#endregion

PXFormula表明POCreate字段必须为true, Sales Order的操作必须为Issue。

修改此行为的最简单方法可能是通过DAC扩展或图中的CacheAttached更改字段的属性,从而在您希望启用时使为true

最新更新