在预算分析表单中,当我们打开表单时,它会在左侧网格中显示项目列表。然后,当我们在左侧网格上选择值时,只有右侧的网格被填充。如果我左手边只有一个项目,那么当我打开表格时,有什么方法可以为该项目填充右侧网格吗?
我尝试将代码从左侧网格的选择更改方法带到 形式的init方法,但我在树节点等方面遇到了一些困难。
有人可以建议我这样做的最好方法吗?
答案 0 :(得分:2)
对于版本AX 2012 R3,我建议进行以下两项更改。我猜这也适用于其他AX 2012版本。我在AX 2009中找不到任何预算分析,我怀疑它是否存在,因为它是AX 2012中引入的零售模块的一部分。
首先,自定义树控件的构建,以便选择第一个子节点而不是根节点。为此,请自定义类initTreeControl
的方法BudgetAnalysisInquiryHelper_PSN
,并在展开树后添加以下行:
_formTreeControl.select(_formTreeControl.getChild(_formTreeControl.getRoot()));
现在选择了树中的正确节点,可以调用表单getBudgetSummary
的{{1}}方法来更新网格。要在打开表单后执行此操作,请将以下行放在方法BudgetAnalysisInquiry_PSN
的末尾(基本上与树控件的方法run
中的行相同):
selectionChanged
在方法selectedNode = ctrlDimensionTree.getItem(ctrlDimensionTree.getSelection());
budgetAnalysisDimensionNode = selectedNode.data();
ctrlSelectedNode.text(budgetAnalysisDimensionNode.getNodeText());
element.getBudgetSummary(ctrlDimensionTree);
中调用这些行太早,因为方法init
(在run
之后执行)调用方法init
,删除临时数据源中的数据形式。