2016-08-04 5 views
-1

クラスからフォームをリフレッシュしたい。私はinsert()の遺言書の後にrefrehをしたい。この問題に対するより良い解決法はここにあります。ここでinsert()の後にクラスからフォームをリフレッシュする

は私のコードです:

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

このメソッドでmainメソッド(run)を使用して、挿入メソッド。 フォーム上のボタンでrunメソッドを呼び出します。ボタンは、Excelシートのインポートを開始します。 –

答えて

2

通常、リフレッシュするフォームのデータソースの参照をクラスに渡してから、researchを呼び出して更新し、新しく挿入されたレコードが表示されるようにします。

また、IMHOではクリーンではありませんが、そのフォームのデータソースのバッファをクラスに渡してから(isFormDataSourceで確認した後に)バッファのdataSourceメソッドを使用してデータソースにアクセスして更新してください。

第3の方法は、上記のようにデータソースをリフレッシュする目的でのみ専用のメソッドをフォームに実装することです。クラスのインスタンスを作成するときには、必要に応じてそのメソッドを呼び出すことができるように、フォームへの参照を渡します。

更新:フォーム上に実装される方法applyTextを呼び出す方法を示しクラスTutorial_ApplyとフォームTutorial_Form_Apply参照クラスからフォームに定義されたメソッドを呼び出す方法を参照します。同様に、データソースにresearchを呼び出すメソッドrefreshDataを定義することもできます。

+0

私は最後の方法が最善の方法だと思います。しかし、私はAXに新しいので、私はこれを作る考えがありません。 –

+0

リフレッシュするために私のフォームに特別な方法が必要ですか? 私のフォームには、initとclassDeclarationという2つのメソッドがあります。 –

+0

クラスから呼び出すメソッドが必要です(例:それをrefreshDataと呼ぶことにしましょう。次に、フォームのデータソースに関する調査を呼び出します。私が言及したように、コードの詳細を表示すると、より具体的になる可能性があります – DAXaholic

関連する問題