Axapta 是否在AX 2012中刷新整个表单?

Axapta 是否在AX 2012中刷新整个表单?,axapta,x++,dynamics-ax-2012,Axapta,X++,Dynamics Ax 2012,我目前正在使用一个底部有网格的表单。每当我点击f5,网格就会刷新,但表单的其余部分不会。如何使整个表单刷新其数据 谢谢。您可以覆盖数据源上的研究方法: public void research(boolean _retainPosition = false) { super(_retainPosition); other_ds.research(_retainPosition); } 其他\u ds是当前数据源未加入的数据源。它取决于您使用的表单。当您在记录上点击F5时,它会在

我目前正在使用一个底部有网格的表单。每当我点击f5,网格就会刷新,但表单的其余部分不会。如何使整个表单刷新其数据


谢谢。

您可以覆盖数据源上的
研究
方法:

public void research(boolean _retainPosition = false)
{
    super(_retainPosition);
    other_ds.research(_retainPosition);
}

其他\u ds
是当前数据源未加入的数据源。

它取决于您使用的表单。当您在记录上点击F5时,它会在该记录所属的数据源或其父数据源上运行方法(取决于表单的查询,例如,如果您在SalesTable表单的SalesLine上点击F5,
SalesTable\u ds.research(true)
将运行)。在我看来,如果表单的其余部分显示属于这些数据源的字段,那么这些字段将被更新。如果字段不属于这些数据源,则不会更新表单的其余部分(除非已重写该方法以从代码中刷新表单的其余部分)


当F5被点击时,你可以做什么来让整个表单刷新它的数据:同样,这取决于表单,所以不知道所有的细节,很难给出建议,但是你可以做的一件事是覆盖数据源上的
research
方法,并从那里以编程方式刷新表单的其余部分n要覆盖
active
方法,您通常应该使用它。

不是在AX 4.0中调用
refresh
,而是在AX 2009/2012中,单击F5时调用
research
,并且
refresh
是由Ctrl+F5触发的?我的不需要使用其他数据源,但这通过覆盖research m使我走上了正确的道路ethod.在我的项目id查找上有一个修改过的方法,我把它添加到了研究中,现在它可以工作了!谢谢!