创建表单关闭时显示错误记录
Wrong record displayed when create form closes
在 AX2012 R3 中,当从 Return 订单列表视图页面(使用页眉中的按钮)创建新的 Return 订单时,SalesCreateOrder 表单打开并按预期运行。
但是,在关闭此表单时,不是打开新创建的订单,而是打开在网格中选择的订单。
一些开发人员对此表单进行了自定义,但是 none(乍一看)似乎与此行为相关。
我在哪里可以找到关闭 SalesCreateOrder 对话框时打开表单的行为?
您对 return 的创建方式的理解是错误的。表单不是在关闭时打开,而是在创建时打开。
当您执行 Ctrl+n
或单击以创建新的 return 订单时,ReturnTable
表单实际上最终会实例化 SalesCreateOrder
表单。
要看到这一点,请在 ReturnTable
的 init
方法的 \Forms\ReturnTable\Methods\init
处放置一个断点,然后尝试创建一个新的 return 订单。
您可以通过更改SalesCreateOrder.close
方法打开创建的订单:
public void close()
{
Args args = new Args(this); //Change here
// Save user's customer search type
MCRCustSearch::saveCustSearchType(mcrCustSearchType.selection());
if (salesTableType)
{
salesTableType.formMethodClose();
}
//Change here -->
args.record(salesTable);
new MenuFunction(menuitemDisplayStr(SalesTable),MenuItemType::Display).run(args);
//End of change <--
super();
}
如果从 Return 订单调用,您可能必须更改调用的菜单项。
在 AX2012 R3 中,当从 Return 订单列表视图页面(使用页眉中的按钮)创建新的 Return 订单时,SalesCreateOrder 表单打开并按预期运行。
但是,在关闭此表单时,不是打开新创建的订单,而是打开在网格中选择的订单。
一些开发人员对此表单进行了自定义,但是 none(乍一看)似乎与此行为相关。
我在哪里可以找到关闭 SalesCreateOrder 对话框时打开表单的行为?
您对 return 的创建方式的理解是错误的。表单不是在关闭时打开,而是在创建时打开。
当您执行 Ctrl+n
或单击以创建新的 return 订单时,ReturnTable
表单实际上最终会实例化 SalesCreateOrder
表单。
要看到这一点,请在 ReturnTable
的 init
方法的 \Forms\ReturnTable\Methods\init
处放置一个断点,然后尝试创建一个新的 return 订单。
您可以通过更改SalesCreateOrder.close
方法打开创建的订单:
public void close()
{
Args args = new Args(this); //Change here
// Save user's customer search type
MCRCustSearch::saveCustSearchType(mcrCustSearchType.selection());
if (salesTableType)
{
salesTableType.formMethodClose();
}
//Change here -->
args.record(salesTable);
new MenuFunction(menuitemDisplayStr(SalesTable),MenuItemType::Display).run(args);
//End of change <--
super();
}
如果从 Return 订单调用,您可能必须更改调用的菜单项。