2009-08-24 7 views
7

私はVendTableグリッドのフォームを持っています。これにはCustAccountフィールドがあります。Dynamics ax 4.0、現在のレコードにフィルタを適用しないでフォームを開く

ボタンをクリックして、すべての顧客が表示されているCustTableフォームを開きます。

私はCustTableのmenuitemを置くだけでそれをクリックするとCustTableフォームが開きますが、このフォームでは1つのレコード、つまり、vendTable.CustAccountと同じAccountNumを持つレコードが表示されます。

custTable全体を開く方法?フォームを表示するには、ClassFactory :: FormRunOnClientを使用してください。

PS。ボタンが必要なので、人民元 - > "メインテーブルフォームに行く"はカウントされません。

答えて

6

VendTableレコードがCustTableフォームの引数として適用され、次にdynalinkが作成されるという問題があります。解決策は、議論を避けることです。

このような CustTable表示]メニュー項目に clickedメソッドをオーバーライド

void clicked() 
{ 
    this.menufunction().run(new Args(element)); 
} 

これは、レコード引数なしで呼び出し元オブジェクトとCustTableフォームを呼び出します。

0

ボタンを作成してclicked()メソッドをオーバーライドするか、 MenuItemButtonを使用してAction MenuItemを割り当てることができます。

AXITセキュリティ&構成フレームワークを使用できるため、MenuItemsの使用がベストプラクティスです。 MenuItemにクラスを関連付け、クラスのmain()メソッドで、必要に応じてFormRunOnClient()を実行することができます。

3

これはかなり古い質問ですが、誰かが答えを探している場合は、オブジェクト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 

希望します。

関連する問題