在“预算分析”窗体中,当我们打开窗体时,它会显示左侧网格上的项目列表。然后,当我们选择左侧网格的值时,只有右侧的网格被填充。如果我只在左侧有一个项目,有没有什么办法可以在我打开窗体的时候为该项目填充右侧网格?预算分析窗体当我打开单个项目的窗体时,右侧窗格应默认打开。动力学斧
我试图从选择使代码改变左手边电网的方法形式的 init方法,但我得到了一些困难与树节点等
可有人建议我做这个最好的方法?
在“预算分析”窗体中,当我们打开窗体时,它会显示左侧网格上的项目列表。然后,当我们选择左侧网格的值时,只有右侧的网格被填充。如果我只在左侧有一个项目,有没有什么办法可以在我打开窗体的时候为该项目填充右侧网格?预算分析窗体当我打开单个项目的窗体时,右侧窗格应默认打开。动力学斧
我试图从选择使代码改变左手边电网的方法形式的 init方法,但我得到了一些困难与树节点等
可有人建议我做这个最好的方法?
我建议对版本AX 2012 R3进行以下两项更改。我想这也适用于其他AX 2012版本。我无法在AX 2009中找到任何预算分析,我怀疑它是否存在,因为它是在AX 2012中引入的零售模块的一部分。
首先,自定义树控件的构建,使第一个孩子将被选中而不是根。要做到这一点,定制BudgetAnalysisInquiryHelper_PSN
类的方法initTreeControl
,并添加以下行后的树已扩大:
_formTreeControl.select(_formTreeControl.getChild(_formTreeControl.getRoot()));
现在树正确的节点选择,形式BudgetAnalysisInquiry_PSN
的getBudgetSummary
方法可以调用更新网格。要做到这一点的形式被打开后,把在方法run
结束以下行(基本上是相同的线路为树控制的方法selectionChanged
):
selectedNode = ctrlDimensionTree.getItem(ctrlDimensionTree.getSelection());
budgetAnalysisDimensionNode = selectedNode.data();
ctrlSelectedNode.text(budgetAnalysisDimensionNode.getNodeText());
element.getBudgetSummary(ctrlDimensionTree);
在调用方法这些线init
太因为方法run
(在init
后执行)调用方法refreshGrids
,该方法删除表单的临时数据源中的数据。
非常感谢:)。这工作。 – Raas
这工作,但是当我刷新缓存在AX中,当我试图打开窗体时:SelectedNode获取空值,我在B行收到错误:“FormTreeItem对象未初始化。堆栈跟踪Forms \ FormName \ Methods \ Run “LineA:selectedNode = ctrlDimensionTree.getItem(ctrlDimensionTree.getSelection()); LineB:budgetAnalysisDimensionNode = selectedNode.data();所以我评论了A行和B行以及ctrlSelectedNode.text(“HardcodedExpectedText”)中的硬编码文本;任何输入? – Raas
@Raas:你能否为此创建一个新的问题并更详细地描述如何再现这个问题? “我刷新AX中的缓存”时,我不确定你的意思,因为AX有很多不同的缓存。 –