21.07.2010, 14:17 | #1 |
Постигающий
|
TreeNode подгруппы в проекте по полному пути
Всем привет, подскажите как, имея полный путь до группы(она находится в проекте)
"\Projects\TestProject\group" получить TreeNode этой самой группы |
|
21.07.2010, 14:36 | #2 |
Axapta
|
Например, так.
X++: static void FindProjectGroup() { str project = 'TestProject'; str groupName = 'group'; ProjectNode node; ProjectNode rootNode; ProjectNode groupNode; TreeNodeIterator treeNodeIterator; void getTreeNode(TreeNode _treeNode) { TreeNode node1; TreeNodeIterator treeNodeIterator1 = _treeNode.AOTiterator(); node1 = treeNodeIterator1.next(); while(node1) { if(node1.handle() == classNum(ProjectGroupNode) && node1.AOTname() == groupName) { info('Нашел!!!'); } node1 = treeNodeIterator1.next(); } } ; rootNode = Infolog.projectRootNode(); treeNodeIterator = rootNode.AOTiterator(); groupNode = treeNodeIterator.next(); while(groupNode) { node = groupNode.AOTfindChild(project); if(node) { node = node.getRunNode(); getTreeNode(node); break; } groupNode = treeNodeIterator.next(); } } |
|
|
За это сообщение автора поблагодарили: AlGol (2). |
21.07.2010, 14:54 | #3 |
Постигающий
|
хмм перебор на крайний случай оставлю, если не найдется другого способа. Спасибо
Последний раз редактировалось oip; 21.07.2010 в 15:08. Причина: убрал оверквотинг, с вашего позволения |
|
21.07.2010, 15:03 | #4 |
Axapta
|
Это же просто пример. Можно почти без перебора.
X++: rootNode = Infolog.projectRootNode(); treeNodeIterator = rootNode.AOTiterator(); groupNode = treeNodeIterator.next(); while(groupNode) { node = groupNode.AOTfindChild(project); if(node) { node = node.getRunNode(); node = node.AOTfindChild(groupName); if(node) { info('Нашел!!!'); break; } } groupNode = treeNodeIterator.next(); } |
|
21.07.2010, 15:35 | #5 |
Постигающий
|
|
|