使用 PreHandler AX7 从 SalesEditLines 表单 formRun 获取 SalesFormLetter class

Get SalesFormLetter class from SalesEditLines form formRun using PreHandler AX7

我需要对 SalesEditLines 表单的 closeOk 进行一些更改。据我所知,我无法更改标准方法,因此我需要为 closeOk 创建一个事件处理程序。

[PreHandlerFor(formStr(SalesEditLines), formMethodStr(SalesEditLines, closeOk))]
public static void SalesEditLines_Pre_closeOk(XppPrePostArgs args)
{
    FormRun sender  = args.getThis() as FormRun;
    Object callerObject = sender.args().caller();
}

问题是 - 如何使用 PreHandler 通过 SalesEditLines 表单 formRun 访问 SalesFormLetter

你可以在SalesEditLines形式的init方法中看到下面一行

salesFormLetter = element.args().caller();

所以您的 callerObject 是 SalesFormLetter class 的实例,您只需将其转换为正确的类型即可。

请检查以下内容link: https://docs.microsoft.com/en-us/dynamicsax-2012/developer/expression-operators-is-and-as-for-inheritance