当打开模式new的孩子关闭时,如何在呼叫者上设置位置?

时间:2015-02-19 10:56:36

标签: axapta

我有一张有记录的表格。为了创建新的,我有menuitem按钮打开一个新的表单,您可以在其中创建新的记录(并且有很多逻辑,这些逻辑不容易进入父数据源的新记录操作)。此菜单项具有OpenMode = New,因此在数据源中创建新记录。

当我关闭这个新表单时,我想将调用者设置为新创建的记录。我试图这样做。

    TableName TableName;
    FormDataSource FormDataSource;
    boolean test;
    #Task
    element.args().caller().task(#taskF5);
    FormDataSource = element.args().caller().dataSource('CallerDataSourceName');
    FormDataSource.research();
    TableName= getFirstSelection('ThisDatasourceName');
    test = FormDataSource.findRecord(TableName);

findRecord的结果为true,看起来它在第二个网格切换到1后的位置设置了一秒的位置。(并且测试结果为真。)

我将设置位置移动到来电者但没有帮助。是menuitem打开模式属性中的问题吗?如何确保来电者的位置?

我正在使用AX2012

1 个答案:

答案 0 :(得分:1)

我最终得到了这个解决方案。我没有在孩子身上设定位置,而是在来电者身上。

对于一个孩子,我有这个(+ hasMethod):

tableToFind = getFirstSelection(SQLTables_DS);
element.args().caller().setRecord(tableToFind);

它位于 super();

之下

在调用者上我有方法:

public void setRecord(TableName _TableName)
{
boolean test;    

CallerDataSourceName_DS.research();
test = CallerDataSourceName_DS.findRecord(_TableName);
CallerDataSourceName.refresh();
}

关闭孩子的同样伎俩不起作用。我想这是由于OpenMode属性。