![]() |
|
|
|
Ссылка на сообщение #1 | ||
|
Участник
|
Как программно из проекта удалить нужный узел.
Никто не знает как программно из проекта удалить нужный узел.
|
||
|
|
|
|
Ссылка на сообщение #2 | ||
|
Пенсионер
|
А что через TreeNode не получается?
__________________
Законы природы еще никто не отменял!А еще у меня растет внучка!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
||
|
|
|
|
Ссылка на сообщение #3 | ||
|
Участник
|
|||
|
|
|
|
Ссылка на сообщение #4 | ||
|
Боец
|
Что именно нужно удалить? группу или елементы АОТ?
|
||
|
|
|
|
Ссылка на сообщение #5 | ||
|
Участник
|
Элемент.
Но только из проекта. В системе он должен остаться. |
||
|
|
|
|
Ссылка на сообщение #6 | ||
|
Участник
|
Жуть. Там добавить есть, а удалить нету
![]() Как вариант - пересобирать весь проект.
__________________
Axapta Editor Utility - suggestions, autotext, hotkeys, extended navigation. Утилита для программистов. |
||
|
|
|
|
Ссылка на сообщение #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кой. Хотя, возможно, проектов это не касается.
__________________
Axapta Editor Utility - suggestions, autotext, hotkeys, extended navigation. Утилита для программистов. |
||
|
|
|
|
Ссылка на сообщение #9 | ||
|
Боец
|
Цитата:
... не дает гарантии что так будет работать на всех версиях АХ.
|
||
|
|
|
|
Ссылка на сообщение #10 | ||
|
SDET II, Dynamics AX
|
Вообще я смотрю, что у ProjectNode есть метод removeFromProject.
Или это только на АХ 5? можно экспортировать проект, удалить лишние строки, и импортировать обратно |
||
|
|
|
|
Ссылка на сообщение #11 | ||
|
Боец
|
Цитата:
ProjectNode есть метод removeFromProject.
|
||
|
|
|
|
Ссылка на сообщение #12 | ||
|
Участник
|
Цитата:
__________________
Axapta Editor Utility - suggestions, autotext, hotkeys, extended navigation. Утилита для программистов. |
||
|
|
|
|
Ссылка на сообщение #13 | ||
|
Участник
|
Цитата:
__________________
Axapta Editor Utility - suggestions, autotext, hotkeys, extended navigation. Утилита для программистов. |
||
|
|
|||
| За это сообщение автора поблагодарили: 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 Возможно можно подсунуть ему нужные параметры на вход и нажать программно ок. Откуда он вызывается и куда уходит потом я не нашел.
__________________
Axapta Editor Utility - suggestions, autotext, hotkeys, extended navigation. Утилита для программистов. |
||
|
|
|
|
Ссылка на сообщение #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). | |||
|
|
| Теги |
| aot, node, программно, узел, проекты |
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Сколько процентов от стоимости проекта идет на ФОТ? (анонимный опрос) | Spider | DAX: Прочие вопросы | 1 | 27.09.2006 08:22 |
| Как удалить программно в форме элементы из группы | mick_777 | DAX: Программирование | 2 | 09.09.2002 17:27 |
| Функция "Удалить строки" | Oks | DAX: Функционал | 1 | 03.07.2002 18:09 |
| Удаление проекта | Maxim Gorbunov | DAX: Программирование | 0 | 24.12.2001 23:04 |
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|
|