无法覆盖采购订单屏幕中的取消订单按钮
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 处理程序中。
我试图覆盖采购订单屏幕中的取消订单按钮,但我没有在 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 处理程序中。