我有一张有记录的表格。为了创建新的,我有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
答案 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属性。