无法覆盖采购订单屏幕中的取消订单按钮

Unable to Override Cancel Order button in Purchase Order screen

我试图覆盖采购订单屏幕中的取消订单按钮,但我没有在 POOrderEntry 中找到 Acumatica 现有源代码。

谁能帮我解决这个问题。提前致谢。

从技术上讲,您可以执行以下操作:

public class POOrderEntryExt : PXGraphExtension<POOrderEntry>
{
    public MyCancelButton<POOrder> Cancel;
}

public sealed class MyCancelButton<TNode> : PXCancel<TNode> where TNode : class, IBqlTable, new()
{
    public MyCancelButton(PXGraph graph, string name) : base(graph, name)
    {
    }

    public MyCancelButton(PXGraph graph, Delegate handler) : base(graph, handler)
    {
    }
    [PXUIField(DisplayName = "Cancel", MapEnableRights = PXCacheRights.Select)]
    [PXCancelButton]
    protected override IEnumerable Handler(PXAdapter adapter)
    {
        //DO SOME STAFF HERE
        throw new PXException("Very bad idea");
        return base.Handler(adapter);
    }
}

但我不建议你这样做,因为"Cancel"行动涉及很多非常重要的员工,很容易搞砸。
我建议考虑其他方法来做你想做的事。可能是将逻辑放在 Persisting 或 Verifying 处理程序中。