![]() |
#2 |
Участник
|
у нас есть такой метод
\Classes\SysTreeNode\findProjectNode X++: /// <summary> /// По указанному пути к проекту возвращает соотв. ProjectNode /// </summary> /// <param name="_projectPath"> /// Путь к проекту в формате TreeNode /// </param> /// <returns> /// объект ProjectNode либо null, если проект не найден или путь не относится к проектам /// NB! возвращается "сырой" объект ProjectNode, чтобы с ним можно было работать, надо вызвать на нем либо getRunNode(), либо loadForInspection() /// см. также SysTestProject::getProjectNode() /// </returns> /// <remarks> /// в отличие от прочих узлов AOT, проекты не ищутся через TreeNode::findNode(), поэтому и нужен отдельный метод /// </remarks> /// <modification projid="GRD_R6084" author="gl00m" date="15.02.2012"> /// Допилить форму проектов текущего пользователя, чтобы автоматом открывать форму поиска по проекту /// DEV_xRefLayer "Пробивать в перекрестных ссылках слой", PKoz 19.12.2017 /// </modification> public static ProjectNode findProjectNode( TreeNodePath _projectPath, CreatedBy _createdBy = '') { identifiername projectName; UtilElementType applObjType; ProjectListNode projectList; ProjectNode ret; ; if (_projectPath != '') { projectName = SysTreeNode::path2ApplObjectName(_projectPath); if (projectName != '') { applObjType = SysTreeNode::path2ApplObjectType(_projectPath); if (applObjType == UtilElementType::SharedProject) { projectList = SysTreeNode::getSharedProject(); } else if (applObjType == UtilElementType::PrivateProject) { projectList = SysTreeNode::getPrivateProject(); } if (projectList) { if (applObjType == UtilElementType::PrivateProject) { ret = projectList.AOTfindChild(substr(projectName, strLen(_createdBy + "_") + 1, 1000) ); } else { ret = projectList.AOTfindChild(projectName); } } } } return ret; } |
|
|
За это сообщение автора поблагодарили: RVS (3), alex55 (3). |