2016-08-04 54 views
-1

我想从类中刷新表格。我想要一个insert()语句后的refreh。这里是对这个问题更好的解决方案。在插入后刷新表格()

这里是我的代码:

try { 
    do { 
     row++; 
     this.readRow(row, cells); 
     ttsbegin; 
     this.insert(); 
     ttscommit; 
     type = cells.item(row+1, 1).value().variantType(); 
    } 
    while (type != COMVariantType::VT_EMPTY); 
         <-------- 

插入结束了一段时间之后,在这个位置,我会刷新。

+0

我不得不保持我的答案相当通用,因为我无法根据您发布的小片段推断代码的体系结构。如果我的答案太笼统,那么请发布更多的代码(例如,如何从表单创建和调用你的类,以及使用什么表等) – DAXaholic

+0

我有一个主要的方法(运行)在这种方法你如何看到我称之为readRow和插入方法。 我通过窗体上的按钮调用run方法。该按钮开始导入Excel表格。 –

回答

2

通常情况下,您会将想要刷新的表单数据源的引用传递给您的课程,然后调用research进行刷新,以便显示新插入的记录。

另外,虽然恕我直言,不那么干净,是通过该表单的数据源的缓冲区到您的类,然后(可能在通过isFormDataSource检查后)通过缓冲区的dataSource方法访问和刷新数据源。

第三种方法是在您的表单上实现专用方法,仅用于上述刷新数据源的目的。当创建你的类的实例时,你传递一个对你的表单的引用,以便你可以在需要时调用该方法。

更新:要了解如何调用窗体上定义的方法,请参阅类Tutorial_Apply和窗体Tutorial_Form_Apply,其中显示如何调用在窗体上实现的方法applyText。同样,您可以定义一个方法refreshData,它在您的数据源上调用research

+0

我认为最后的办法是最好的办法。但是我对AX很陌生,所以我不知道要做到这一点。 –

+0

需要我的表单刷新一个特殊方法吗? 目前我的表单有两个方法init和classDeclaration。 –

+0

那么它需要你想从课堂上调用的方法,例如我们称之为refreshData。然后在其中您可以调用表单数据源的研究。正如我所提到的,如果你显示更多的代码,我可以更具体 – DAXaholic