我试图覆盖“采购订单”屏幕中的“取消订单”按钮,但是我在POOrderEntry中找不到Acumatica现有的源代码。
有人可以帮我吗?预先感谢。
答案 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);
}
}
但是我不推荐,您这样做是因为“取消”行动正在招募许多非常重要的人员,并且弄乱它非常容易。
我建议考虑其他方法来做您想做的事情。可能是将逻辑放置在“持久性”或“验证”处理程序中。