![]() |
#1 |
Участник
|
Как программно из проекта удалить нужный узел.
Никто не знает как программно из проекта удалить нужный узел.
|
|
![]() |
#2 |
Пенсионер
|
А что через TreeNode не получается?
__________________
![]() А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Боец
|
Что именно нужно удалить? группу или елементы АОТ?
|
|
![]() |
#5 |
Участник
|
Элемент.
Но только из проекта. В системе он должен остаться. |
|
![]() |
#6 |
Участник
|
Жуть. Там добавить есть, а удалить нету
![]() Как вариант - пересобирать весь проект.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
![]() |
#7 |
Боец
|
Да, по-простому как-то не получается. Но можно поступить так:
1. Получить source проекта: source = ProjectNode.aotGetSource() 2. Распарсить source и найти описание нужного элеметна. Все элементы в сорсе описываются по шаблону: "Node: " + "TreeNodePath". 3. Удалить из сорса нужную строку описания тринода 4. ProjectNode.aotSetSource(source) 5. ProjectNode.aotSave(); Может есть что-то проще - не знаю. |
|
![]() |
#8 |
Участник
|
Цитата:
Сообщение от DSPIC
![]() Да, по-простому как-то не получается. Но можно поступить так:
1. Получить source проекта: source = ProjectNode.aotGetSource() 2. Распарсить source и найти описание нужного элеметна. Все элементы в сорсе описываются по шаблону: "Node: " + "TreeNodePath". 3. Удалить из сорса нужную строку описания тринода 4. ProjectNode.aotSetSource(source) 5. ProjectNode.aotSave(); Может есть что-то проще - не знаю. Как известно 3ка не дружит с 4кой, а 4ка с 5кой. Хотя, возможно, проектов это не касается.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
![]() |
#9 |
Боец
|
Цитата:
... не дает гарантии что так будет работать на всех версиях АХ.
|
|
![]() |
#10 |
Участник
|
Вообще я смотрю, что у ProjectNode есть метод removeFromProject.
Или это только на АХ 5? можно экспортировать проект, удалить лишние строки, и импортировать обратно |
|
![]() |
#11 |
Боец
|
Цитата:
ProjectNode есть метод removeFromProject.
|
|
![]() |
#12 |
Участник
|
Цитата:
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
![]() |
#13 |
Участник
|
Цитата:
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
|
За это сообщение автора поблагодарили: miklenew (1). |
![]() |
#14 |
Участник
|
Цитата:
Сообщение от DSPIC
![]() Да, по-простому как-то не получается. Но можно поступить так:
1. Получить source проекта: source = ProjectNode.aotGetSource() 2. Распарсить source и найти описание нужного элеметна. Все элементы в сорсе описываются по шаблону: "Node: " + "TreeNodePath". 3. Удалить из сорса нужную строку описания тринода 4. ProjectNode.aotSetSource(source) 5. ProjectNode.aotSave(); Может есть что-то проще - не знаю. |
|
![]() |
#15 |
Участник
|
|
|
![]() |
#16 |
Участник
|
Цитата:
Жалко времени мало. Но вариантов нет. |
|
![]() |
#17 |
Участник
|
Есть еще такой диалог
\Forms\SysProjectRemoveNode Возможно можно подсунуть ему нужные параметры на вход и нажать программно ок. Откуда он вызывается и куда уходит потом я не нашел.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
![]() |
#18 |
Боец
|
Цитата:
\Forms\SysProjectRemoveNode
![]() |
|
![]() |
#19 |
Участник
|
Вот такой код получился. С переименованием и удалением не стал возиться.
Результат меня устраивает. Подкидываем проект. Создаётся ещё один проект с префиксом CopyOf+старое_название. Просто у меня как раз к примеру из 1000 объектов в проекте получается проект в котором нужно 100. Я думал сначало удалением, но и пересоздание меня тоже устравивает. X++: static void MRD_SearchProject(Args _args) { str project = 'MRD_Tables'; ProjectNode oldProject; str nameKey; configurationKeyId id; ProjectNode sharedProjects; ProjectNode newProject; void getTreeNode(TreeNode _treeNode) { TreeNode node1; TreeNodeIterator treeNodeIterator1 = _treeNode.AOTiterator(); node1 = treeNodeIterator1.next(); while(node1) { if(node1.handle() == classNum(ProjectGroupNode)) { getTreeNode(node1); } else { if (node1.AOTname() != "fdjh") newProject.addUtilNode(node1.applObjectType(), node1.AOTname()); } node1 = treeNodeIterator1.next(); } } ; sharedProjects = infolog.projectRootNode().AOTfindChild('Shared'); sharedProjects.AOTAdd("CopyOf" + project); newProject = sharedProjects.AOTfindChild("CopyOf" + project); newProject.loadForInspection(); newProject = newProject.getRunNode(); oldProject = sharedProjects.AOTfindChild(project); if(oldProject) { oldProject = oldProject.loadForInspection(); getTreeNode(oldProject); } newProject.AOTsave(); } |
|
|
За это сообщение автора поблагодарили: wojzeh (1), S.Kuskov (5). |
![]() |
#20 |
Участник
|
|
|
Теги |
aot, node, программно, узел, проекты |
|
![]() |
||||
Тема | Ответов | |||
Сколько процентов от стоимости проекта идет на ФОТ? (анонимный опрос) | 1 | |||
Как удалить программно в форме элементы из группы | 2 | |||
Функция "Удалить строки" | 1 | |||
Удаление проекта | 0 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|