バージョンAX 2012 R3では、次の2つの変更を提案します。私はこれが他のAX 2012バージョンでも動作すると思います。私はAX 2009で予算分析を見つけることができませんでしたが、AX 2012で導入された小売モジュールの一部であるため、そこに存在するのでは疑いがあります。
まず、ツリーコントロールのビルディングをカスタマイズして、ルートの代わりに選択されます。これを行うには、クラスBudgetAnalysisInquiryHelper_PSN
の方法initTreeControl
をカスタマイズして、ツリーが展開された後に次の行を追加します。
_formTreeControl.select(_formTreeControl.getChild(_formTreeControl.getRoot()));
を今、ツリー内の正しいノードが選択されていることを、フォームBudgetAnalysisInquiry_PSN
のgetBudgetSummary
方法はに呼び出すことができますグリッドを更新します。
selectedNode = ctrlDimensionTree.getItem(ctrlDimensionTree.getSelection());
budgetAnalysisDimensionNode = selectedNode.data();
ctrlSelectedNode.text(budgetAnalysisDimensionNode.getNodeText());
element.getBudgetSummary(ctrlDimensionTree);
init
があまりにもある方法でこれらの行を呼び出します。フォームが開かれた後にこれを行うには、(ツリーコントロールの方法selectionChanged
にと基本的に同じライン)メソッドrun
の末尾に以下の行を入れてメソッドrun
(init
の後に実行される)は、フォームの一時データソース内のデータを削除するメソッドrefreshGrids
を呼び出します。
ありがとうございます:)。それはうまくいった。 – Raas
これはうまくいきましたが、AXでキャッシュをリフレッシュし、フォームを開くときにSelectedNodeがnull値を取得していて、行Bでエラーが発生しました: "FormTreeItemオブジェクトが初期化されていません。 "LineA:selectedNode = ctrlDimensionTree.getItem(ctrlDimensionTree.getSelection()); 012BLineB:budgetAnalysisDimensionNode = selectedNode.data();だから、私はラインAとラインBとctrlSelectedNode.text( "HardcodedExpectedText")のハードコーディングされたテキストをコメントしました;任意の入力? – Raas
@Raas:それについて新しい質問を作成し、これをどのように再現することができるかを詳しく説明できますか? AXにはさまざまなキャッシュがたくさんあるので、「AXでキャッシュをリフレッシュするとどういう意味ですか? –