![]() |
#21 |
Administrator
|
Обновление для AX2012 R2
Вышеприведенный вариант работает вплоть до АХ2009.
Для АХ 2012R2 уже не работает. Прилагаю скорректированный вариант, который будет работать и для AX 2012 R2 и AX2009. Изменения выделены комментариями Цитата:
X++: //Open the selected element in a new AOT window #AOT void addIns_OpenNewWindowSelected(Editor e) { TreeNode sourceCodeNode = TreeNode::findNode(e.path()); TreeNode newWindowNode; TreeNodePath treeNodePath; xRefTmpReferences refTable; int startLine = e.selectionStartLine(); int startCol = e.selectionStartCol(); int endCol = e.selectionEndCol(); str selectedText; xRefUpdateTmpReferences xRefUpdateTmpReferences; // VSUH, Адаптация для AX 2012 R2, 20.03.2013 ; if (sourceCodeNode && e.selectionStartLine() == e.selectionEndLine() && startCol != endCol) { // VSUH, Адаптация для AX 2012 R2 20.03.2013 --> // infolog.updatexRefSet(sourceCodeNode, true); // sourceCodeNode.AOTmakeXref(1); // refTable = xRefCreate::makeTmp(infolog.lastxRef()); // infolog.updatexRefSet(sourceCodeNode, false); xRefUpdateTmpReferences = new xRefUpdateTmpReferences(); xRefUpdateTmpReferences.fillTmpxRefReferences(sourceCodeNode); refTable = xRefUpdateTmpReferences.allTmpxRefReferences(); // VSUH, Адаптация для AX 2012 R2 20.03.2013 <-- select firstonly refTable where refTable.line == startLine && refTable.Column == startCol; if (refTable) { treeNodePath = refTable.Path(); if (treeNodePath) { newWindowNode = TreeNode::findNode(treeNodePath); if (newWindowNode) { newWindowNode.AOTnewWindow(); if (!newWindowNode.AOTchildNodeCount()) //Workaround for the AX4 "open new window" bug. Remove for AX3/2009 { infolog.getUserSetup().setUserSetup(xUserInfo::find()); } } } } else { e.firstSelectedLine(); selectedText = strLRTrim(subStr(e.getLine(), e.selectionStartCol(), endCol-startCol)); if (selectedText) { newWindowNode = TreeNode::findNode(#MacrosPath + #AOTDelimiter + selectedText); if (newWindowNode) { newWindowNode.AOTedit(); } } } } }
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 20.03.2013 в 23:03. |
|
|
За это сообщение автора поблагодарили: Logger (5). |