0

В форме «Анализ бюджета» Когда мы открываем форму, она показывает список проектов в левой боковой сетке. Затем, когда мы выбираем значение в левой боковой сетке, заполняется только сетка справа. Если у меня есть только один проект в левой части, есть ли способ, которым я могу получить сетку правой руки, заполненную для этого проекта в то время, когда я открываю форму?Форма анализа бюджета. Резервная сетка должна открываться по умолчанию, когда я открываю форму для одного проекта. Dynamics ax

Я пытался чего-код от выбора изменен метод боковой сетки с левой метода инициализации формы, но я получаю некоторые трудности с узлами дерева и т.д.

Может кто-то предложить мне лучший способ сделать это?

ответ

2

Я предлагаю следующие два изменения для версии AX 2012 R3. Я бы предположил, что это будет работать и в других версиях AX 2012 года. Я не смог найти какой-либо бюджетный анализ в AX 2009, и я сомневаюсь, что он существует там, потому что он является частью розничного модуля, который был введен в AX 2012.

Сначала настройте здание управления деревом таким образом, чтобы первый дочерний элемент будет выбираться вместо корня. Чтобы сделать это, настроить метод initTreeControl класса BudgetAnalysisInquiryHelper_PSN и добавьте следующую строку после того, как дерево было расширено:

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

Теперь, когда правильный узел в дереве выбран, getBudgetSummary метод формы BudgetAnalysisInquiry_PSN может быть привлечен к обновить сетку. Для того, чтобы сделать это после того, как форма была открыта, поместите следующие строки в конце метода run (в основном одни и те же линии, как и в методе selectionChanged контроля дерева):

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

Calling эти строки в методе init слишком раньше, потому что метод run (который выполняется после init) вызывает метод refreshGrids, который удаляет данные во временных источниках данных формы.

+0

Большое спасибо :). Это сработало. – Raas

+0

Это сработало, но когда я обновил кеш в AX и когда я попытался открыть форму: SelectedNode получает значение null, и я получаю ошибку в строке B: «Объект FormTreeItem не инициализирован. Stack trace Forms \ FormName \ Methods \ Run "LineA: selectedNode = ctrlDimensionTree.getItem (ctrlDimensionTree.getSelection()); LineB: budgetAnalysisDimensionNode = selectedNode.data(); Поэтому я прокомментировал строку A и строку B и текст с жестким кодом в ctrlSelectedNode.text («HardcodedExpectedText»). Любые входы? – Raas

+0

@Raas: Не могли бы вы создать для этого новый вопрос и более подробно описать, как это можно воспроизвести? Я не уверен, что вы имеете в виду «когда я обновляю кеш в AX», поскольку AX имеет много разных кешей. –

 Смежные вопросы

  • Нет связанных вопросов^_^