预算分析表单当我打开单个项目的表单时,右侧网格应默认打开。动力学斧头

时间:2016-04-30 22:23:32

标签: axapta dynamics-ax-2012 dynamics-ax-2009 dynamics-ax-2012-r2 dynamics-ax-2012-r3

在预算分析表单中,当我们打开表单时,它会在左侧网格中显示项目列表。然后,当我们在左侧网格上选择值时,只有右侧的网格被填充。如果我左手边只有一个项目,那么当我打开表格时,有什么方法可以为该项目填充右侧网格吗?

我尝试将代码从左侧网格的选择更改方法带到 形式的init方法,但我在树节点等方面遇到了一些困难。

有人可以建议我这样做的最好方法吗?

1 个答案:

答案 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,删除临时数据源中的数据形式。