0

Budget Analysisフォームで、フォームを開くと、左側のグリッドにあるプロジェクトのリストが表示されます。次に、左側のグリッドで値を選択すると、右側のグリッドのみが塗りつぶされます。左手側に1つのプロジェクトしかない場合は、フォームを開いたときに、そのプロジェクトのために右手側のグリッドを設定する方法がありますか?予算分析フォーム単一プロジェクトのフォームを開くと、Rightsideグリッドがデフォルトで開くはずです。 Dynamics ax

など

を私は、フォームの initメソッドに左手側グリッドの方法を変え選択からコードを持ってみましたが、私は、ツリーのノードといくつかの困難を取得しています誰かが私にこれを行うための最善の方法を提案することはできますか?

答えて

2

バージョンAX 2012 R3では、次の2つの変更を提案します。私はこれが他のAX 2012バージョンでも動作すると思います。私はAX 2009で予算分析を見つけることができませんでしたが、AX 2012で導入された小売モジュールの一部であるため、そこに存在するのでは疑いがあります。

まず、ツリーコントロールのビルディングをカスタマイズして、ルートの代わりに選択されます。これを行うには、クラスBudgetAnalysisInquiryHelper_PSNの方法initTreeControlをカスタマイズして、ツリーが展開された後に次の行を追加します。

_formTreeControl.select(_formTreeControl.getChild(_formTreeControl.getRoot())); 

を今、ツリー内の正しいノードが選択されていることを、フォームBudgetAnalysisInquiry_PSNgetBudgetSummary方法はに呼び出すことができますグリッドを更新します。

selectedNode = ctrlDimensionTree.getItem(ctrlDimensionTree.getSelection()); 
budgetAnalysisDimensionNode = selectedNode.data(); 
ctrlSelectedNode.text(budgetAnalysisDimensionNode.getNodeText()); 
element.getBudgetSummary(ctrlDimensionTree); 

initがあまりにもある方法でこれらの行を呼び出します。フォームが開かれた後にこれを行うには、(ツリーコントロールの方法selectionChangedにと基本的に同じライン)メソッドrunの末尾に以下の行を入れてメソッドruninitの後に実行される)は、フォームの一時データソース内のデータを削除するメソッドrefreshGridsを呼び出します。

+0

ありがとうございます:)。それはうまくいった。 – Raas

+0

これはうまくいきましたが、AXでキャッシュをリフレッシュし、フォームを開くときにSelectedNodeがnull値を取得していて、行Bでエラーが発生しました: "FormTreeItemオブジェクトが初期化されていません。 "LineA:selectedNode = ctrlDimensionTree.getItem(ctrlDimensionTree.getSelection()); 012BLineB:budgetAnalysisDimensionNode = selectedNode.data();だから、私はラインAとラインBとctrlSelectedNode.text( "HardcodedExpectedText")のハードコーディングされたテキストをコメントしました;任意の入力? – Raas

+0

@Raas:それについて新しい質問を作成し、これをどのように再現することができるかを詳しく説明できますか? AXにはさまざまなキャッシュがたくさんあるので、「AXでキャッシュをリフレッシュするとどういう意味ですか? –

関連する問題