![]() |
#6 |
Британский учённый
|
Цитата:
X++: // >> DEV:MXK >> public static server void updateProjectCrossRef() { TreeNode tnRoot, tnProject; ProjectNode projectNode; xRefPaths refPaths; void updateProjectNodes(TreeNode _prentProject, xRefPathRecId _xRefPathRecId = 0) { #TreeNodeSysNodeType TreeNode treeNode; TreeNodeIterator rootNodeIterator; xRefReferences refReferences; xRefPaths refPathsRef; xRefPathRecId xRefNameRecId; rootNodeIterator = _prentProject.AOTiterator(); treeNode = rootNodeIterator.next(); while (treeNode) { if (treeNode.treeNodeType().id() == #NT_PROJECT_GROUP) { updateProjectNodes(treeNode, _xRefPathRecId); } else { refPathsRef = xRefPaths::findOrInsert(treeNode.treeNodePath()); xRefNameRecId = xRefNames::findOrInsert(DEV_Maintain::getRefKind(treeNode), '', treeNode.treeNodeName(), 0).RecId; if (!xRefReferences::find(xRefNameRecId, _xRefPathRecId, XRefReference::Declaration)) { refReferences.initValue(); refReferences.xRefNameRecId = xRefNameRecId; refReferences.xRefPathRecId = _xRefPathRecId; refReferences.referencePathRecId = refPathsRef.RecId; refReferences.Reference = XRefReference::Declaration; refReferences.insert(); } } treeNode.treeNodeRelease(); treeNode = rootNodeIterator.next(); } } tnRoot = SysTreeNode::getSharedProject(); if (tnRoot) { tnProject = tnRoot.AOTfirstChild(); while (tnProject) { projectNode = tnProject; if (TreeNode::findNode(tnProject.treeNodePath())) { refPaths = xRefPaths::findOrInsert(tnProject.treeNodePath()); updateProjectNodes(projectNode.loadForInspection(), refPaths.RecId); } tnProject = tnProject.AOTnextSibling(); } } info('Project references updated successfully.'); // << DEV:MXK << }
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
|
За это сообщение автора поблагодарили: Logger (7). |