Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Axapta 如何从AX 2012中的代码调用菜单项_Axapta_X++_Dynamics Ax 2012 - Fatal编程技术网

Axapta 如何从AX 2012中的代码调用菜单项

Axapta 如何从AX 2012中的代码调用菜单项,axapta,x++,dynamics-ax-2012,Axapta,X++,Dynamics Ax 2012,我在PurchTable“Register”菜单项的clicked方法中有一些自定义代码,现在我需要在执行buttons函数后从代码中运行Register命令 我的问题是如何从代码中调用Register命令 将寄存器按钮的自动声明设置为是 然后直接调用单击的,: register.clicked(); 在表单方法中使用大量代码是不可取的 : 三层体系结构的基本概念是表单应该是 仅用于表示层,因此没有其他代码,例如 表单上应该有业务逻辑。表格上的代码也 降低了它们的可重用性和进一步定制的便利

我在PurchTable“Register”菜单项的clicked方法中有一些自定义代码,现在我需要在执行buttons函数后从代码中运行Register命令

我的问题是如何从代码中调用Register命令


寄存器
按钮的
自动声明
设置为是

然后直接调用单击的

 register.clicked(); 
在表单方法中使用大量代码是不可取的

:

三层体系结构的基本概念是表单应该是 仅用于表示层,因此没有其他代码,例如 表单上应该有业务逻辑。表格上的代码也 降低了它们的可重用性和进一步定制的便利性;例如 如果您想开发一个企业门户,那么在表单上编写的代码 必须在类或表方法等中再次编写 这将使实现变得复杂


我看到您实际上正在尝试执行clicked()方法,但是如果您想通过代码执行菜单项,可以执行以下操作:

new MenuFunction(menuItemDisplayStr(MyDisplayMenuItem), MenuItemType::Display).run();
当然,可以更改上面的代码以执行不同类型的菜单项,例如,下面的代码运行输出菜单项:

new MenuFunction(menuItemOutputStr(MyOutputMenuItem), MenuItemType::Output).run();
如果您在试图执行的菜单项上需要任何参数,可以将其与Args类一起传递:


这将是推荐的解决方案,而不是自动声明注册表按钮。这样,编译器可以跟踪菜单项的更改。
Args args = new Args();

args.record(myArgumentRecord);

args.caller(this);

new MenuFunction(menuItemOutputStr(MyOutputMenuItem), MenuItemType::Output).run(args);