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

时间:2019-11-20 12:29:05

标签: acumatica

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

有人可以帮我吗?预先感谢。

1 个答案:

答案 0 :(得分:1)

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

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);
    }
}

但是我不推荐,您这样做是因为“取消”行动正在招募许多非常重要的人员,并且弄乱它非常容易。
我建议考虑其他方法来做您想做的事情。可能是将逻辑放置在“持久性”或“验证”处理程序中。