現在のレコードにフィルタを適用せずにフォームを開くダイナミクスAX 4.0、
-
19-09-2019 - |
質問
IはCustAccountフィールドを有する例えばVendTableグリッドと形状を有している。
私はすべての顧客が表示されているCustTableフォームが開きますされをクリックして、ボタンを配置します。
私はちょうどCustTableのメニューアイテムを入れる場合、、それをクリックするとCustTableフォームが開きますが、この形式で1つのレコードのみが表示されます - vendTable.CustAccountと同じAccountNumを持っている1。
どのように全体custTableをオープンするのですか?フォームを表示するのClassFactory :: FormRunOnClientを使うのか?そして、ボタンを作成し、より良い解決策はあります。
PS。 >「メインテーブルフォームに移動し、」カウントされません。
- 私は人民元ので、ボタンを必要としています。解決
問題がVendTable
レコードは、その後のDynalinkを作成CustTable
形、引数として適用されるということです。解決策は、引数を避けるためです。
このようなclicked
表示メニュー項目にCustTable
メソッドをオーバーライド:
void clicked()
{
this.menufunction().run(new Args(element));
}
これは、レコード引数なしで呼び出し元オブジェクトとCustTable
フォームを呼び出します。
他のヒント
私は、これはかなり古い質問です知っている誰かが答えを探してここに来た場合、単にオブジェクトQueryBuildDataSourceの方法clearDynalinks()
を呼び出します。
は、たとえば、あなたがフォームを作成し、自動的に自動的に作成ダイナミクス、あなたは、フォームのデータソースに、init()
メソッド内で、次のコードを置くことによってそれを解決することを理由Dynalinksのあなたのデータソースをフィルタリングされます:
QueryBuildDatasource qbds;
;
qbds = this.query().dataSourceTable(tablenum(MyTableName));
qbds.clearDynalinks();
// Next line is optional, it clears initial ranges
qbds.clearRanges();
// if you need to add any ranges you can do it right after you clear the initial dynalinks / ranges
それが役に立てば幸い...
あなたがボタンを作成し、そのクリックされた()メソッドをオーバーライドするか、2つのオプションを持っている、または MenuItemButtonを使用して、それにアクションのMenuItemを割り当てます。
のMenuItemを使用して、それはあなたがAXのセキュリティ&設定フレームワークを使用することができますので、ベストプラクティスです。あなたはのMenuItemに、必要に応じてあなたがFormRunOnClient()のものを実行することができますクラスのmain()メソッドでクラスを関連付けることができます。