0

在“预算分析”窗体中,当我们打开窗体时,它会显示左侧网格上的项目列表。然后,当我们选择左侧网格的值时,只有右侧的网格被填充。如果我只在左侧有一个项目,有没有什么办法可以在我打开窗体的时候为该项目填充右侧网格?预算分析窗体当我打开单个项目的窗体时,右侧窗格应默认打开。动力学斧

我试图从选择使代码改变左手边电网的方法形式的 init方法,但我得到了一些困难与树节点等

可有人建议我做这个最好的方法?

回答

2

我建议对版本AX 2012 R3进行以下两项更改。我想这也适用于其他AX 2012版本。我无法在AX 2009中找到任何预算分析,我怀疑它是否存在,因为它是在AX 2012中引入的零售模块的一部分。

首先,自定义树控件的构建,使第一个孩子将被选中而不是根。要做到这一点,定制BudgetAnalysisInquiryHelper_PSN类的方法initTreeControl,并添加以下行后的树已扩大:

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

现在树正确的节点选择,形式BudgetAnalysisInquiry_PSNgetBudgetSummary方法可以调用更新网格。要做到这一点的形式被打开后,把在方法run结束以下行(基本上是相同的线路为树控制的方法selectionChanged):

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

在调用方法这些线init太因为方法run(在init后执行)调用方法refreshGrids,该方法删除表单的临时数据源中的数据。

+0

非常感谢:)。这工作。 – Raas

+0

这工作,但是当我刷新缓存在AX中,当我试图打开窗体时:SelectedNode获取空值,我在B行收到错误:“FormTreeItem对象未初始化。堆栈跟踪Forms \ FormName \ Methods \ Run “LineA:selectedNode = ctrlDimensionTree.getItem(ctrlDimensionTree.getSelection()); LineB:budgetAnalysisDimensionNode = selectedNode.data();所以我评论了A行和B行以及ctrlSelectedNode.text(“HardcodedExpectedText”)中的硬编码文本;任何输入? – Raas

+0

@Raas:你能否为此创建一个新的问题并更详细地描述如何再现这个问题? “我刷新AX中的缓存”时,我不确定你的意思,因为AX有很多不同的缓存。 –