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

时间:2013-04-02 04:39:55

标签: axapta x++ dynamics-ax-2012

我在PurchTable“Register”menuitem的clicked方法中有一些自定义代码,现在我需要在按钮功能执行后从代码运行Register命令。

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

Screenshot

2 个答案:

答案 0 :(得分:22)

我发现您实际上是在尝试执行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);

答案 1 :(得分:4)

AutoDeclaration按钮的Register设置为是。

然后直接拨打clicked

 register.clicked(); 

不建议在表单方法中使用大量代码。

Reference

  

三层架构的基本概念是形式应该是   仅用于表示层,因此没有其他代码,如   表格上应该有业务逻辑。表格也放在表格上   降低了它们的可重用性和进一步定制的便利性;例如   如果要开发企业门户,则在表单上编写代码   将不得不在类或表方法等中再次写入   将使实施变得复杂。