Axapta 获取全局菜单中菜单项的调用方
我正在通过GlobalToolsMenu中的菜单项调用一个类。 我的参数的调用者总是空的,尽管它是从窗体调用的Axapta 获取全局菜单中菜单项的调用方,axapta,microsoft-dynamics,dynamics-ax-2012,dynamics-ax-2009,ax,Axapta,Microsoft Dynamics,Dynamics Ax 2012,Dynamics Ax 2009,Ax,我正在通过GlobalToolsMenu中的菜单项调用一个类。 我的参数的调用者总是空的,尽管它是从窗体调用的 是否有方法将表单作为调用者传输?当您从GlobalToolsMenu打开菜单项时,它与当前表单不关联,其工作原理就像您试图从独立菜单打开菜单项一样。如果需要从调用的类访问当前表单,则需要使用一些变通方法 例如,您可以尝试从类中调用WinAPI::getForegroundWindow(),以检索前台窗口(用户当前使用的AX窗体)的句柄。有了句柄,您需要找到相应的FormRun对象。为此
是否有方法将表单作为调用者传输?当您从
GlobalToolsMenu
打开菜单项时,它与当前表单不关联,其工作原理就像您试图从独立菜单打开菜单项一样。如果需要从调用的类访问当前表单,则需要使用一些变通方法
例如,您可以尝试从类中调用
WinAPI::getForegroundWindow()
,以检索前台窗口(用户当前使用的AX窗体)的句柄。有了句柄,您需要找到相应的FormRun
对象。为此,您可以尝试自定义\Classes\SysSetupFormRun\init
,以保持表单句柄与infolog.globalCache()中FormRun
对象之间的关系。然后可以使用类中的缓存映射从检索到的句柄中获取FromRun
对象。调用菜单项的表单是什么?是否通过代码调用菜单项?菜单项以各种形式显示,因为它位于GlobalToolsMenu(菜单栏)中。它不是由代码调用的。