在AOT中创建的表单上,您可以通过右键单击和覆盖来重写方法。如何在X ++代码创建的表单上执行相同的操作?
例如。如何更改close方法,以便在关闭之前调用 info(" close"); :
form = new Form();
formBuildDataSource = form.addDataSource("Table");
formBuildDesign = form.addDesign("Design");
form.design().caption("Caption");
…
args = new Args();
formRun = classfactory.formRunClass(args);
formRun.run();
formRun.detach();
我正在使用AX2012
答案 0 :(得分:2)
通常,您需要执行预定义的方法。然后,您可以使用表单控件的registerOverrideMethod
方法。这是explained here。
在对registerOverrideMethod
的调用中,始终提供第三个参数,即持有该方法的对象。
formButtonControl.registerOverrideMethod(
methodStr(FormButtonControl,clicked), //method to override
methodStr(testClass,testMethod), //method to invoke
new testClass()); //object of class containing method
还可以使用类TreeNode
方法AOTSetSource将源保存到AOT。
一个example here。
在执行FormRun
之前,您需要将表单保存到AOT并进行编译。