创建表单关闭时显示错误记录

Wrong record displayed when create form closes

在 AX2012 R3 中,当从 Return 订单列表视图页面(使用页眉中的按钮)创建新的 Return 订单时,SalesCreateOrder 表单打开并按预期运行。

但是,在关闭此表单时,不是打开新创建的订单,而是打开在网格中选择的订单。

一些开发人员对此表单进行了自定义,但是 none(乍一看)似乎与此行为相关。

我在哪里可以找到关闭 SalesCreateOrder 对话框时打开表单的行为?

您对 return 的创建方式的理解是错误的。表单不是在关闭时打开,而是在创建时打开。

当您执行 Ctrl+n 或单击以创建新的 return 订单时,ReturnTable 表单实际上最终会实例化 SalesCreateOrder 表单。

要看到这一点,请在 ReturnTableinit 方法的 \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 订单调用,您可能必须更改调用的菜单项。