0

如果我覆盖特定屏幕上的方法怎么办。
For example:假设日志交易屏幕,我已经覆盖了该方法Release(),我已经让它Posting Transactions应用了自General Ledger定义的情况下停止方法,会先申请吗?Journal Transaction

4

1 回答 1

1

从我所见,首先调用扩展,然后调用基本调用。如果您认为调用顺序不明确可能会导致处理程序中的特定代码出错,我建议您在被覆盖的方法中显式声明和调用基本方法。

使用 Acumatica 自定义项目编辑器是降低声明语法的最简单方法: 在此处输入图像描述

这样,调用顺序就毫无疑问了:

public delegate IEnumerable ReleaseDelegate(PXAdapter adapter);

[PXOverride]
public IEnumerable Release(PXAdapter adapter, ReleaseDelegate baseMethod)
{
  // Put your code before calling base
  return baseMethod(adapter);

  /* Or after calling base

     IEnumerable returnValue = baseMethod(adapter);
     // put your code to be executed after base here

     return returnValue;
  */
}
于 2019-01-04T15:19:18.460 回答