1

Тема: Архив

можно ли по TREE_ID найти раздел архива, его наименование?

Re: Архив

Для большинства деревьев в системе достаточно метода DbNodeByNodeId. Но для более сложных деревьев (например как в архиве) лучше использовать функции типа такого (дабы нюансы не учитывать) код модифицировать конечно, так как он не совсем это делает, но выполняет аналогичную операцию)

'<doc Поиск ноды в дереве по полному пути
'<par DbTree As IDbTree>
'<par FullPath Полный путь>
'<type As Integer Идентификатор ноды. -1 Не найдена>
'>
Function GetDbTreeNodeId( DbTree, FullPath )
  GetDbTreeNodeId = -1
  Paths = Split( CStr(FullPath), "\\" )
  If Not IsArray(Paths) Then Exit Function
  Set PNode = Nothing
  'Dim PNode as IDbNode
  Lvl = 0
  For i=0 To DbTree.RootNodes.Count-1
    Set  PNode = DbTree.RootNodes.Item(i)
    If PNode.Text=Paths(Lvl) Then Exit For
    Set PNode = Nothing    
  Next
  For Lvl=1 To UBound(Paths)
      If Not PNode Is Nothing Then
        Set Node = Nothing
        'Dim Node As IDbNode
        For I=0 To PNode.Count-1
           Set Node = PNode.Item(i)
           If Node.Text=Paths(Lvl) Then Exit For
           Set Node = Nothing
        Next
        Set PNode = Node
      End If
  Next    
  If Not PNode Is Nothing Then GetDbTreeNodeId = PNode.NodeId 
End Function 

'<doc Поиск ноды в дереве по идентификатору
'<par DbTree As IDbTree>
'<par PNode As IDbNode >
'<par NodeId As Integer >
'<type As Boolean >
'>
Function SelectDbTreeByNodeId( DbTree, PNode, NodeId )
  SelectDbTreeByNodeId = False
  If PNode Is Nothing Then 
       For i=0 To DbTree.RootNodes.Count-1
          Set  PNode = DbTree.RootNodes.Item(i)
          If PNode.NodeId=NodeId Then
            PNode.Selected = True
            SelectDbTreeByNodeId = True                        
          Else
            SelectDbTreeByNodeId = SelectDbTreeByNodeId( DbTree, PNode, NodeId )  
          End If          
          If SelectDbTreeByNodeId Then Exit Function              
       Next
  Else
    For i=0 To PNode.Count-1
      Set Item = PNode.Item(i)
      'Item As IDbNode
      If Item.NodeId=NodeId Then
        Item.Selected = True
        SelectDbTreeByNodeId = True
      Else  
         If Item.HasChildNodes Then SelectDbTreeByNodeId = SelectDbTreeByNodeId( DbTree, Item, NodeId )   
      End If
      If SelectDbTreeByNodeId Then Exit Function  
    Next     
  End If
End Function 

3

Re: Архив

Прошу помочь разобраться с пересылкой документа из nanoCAD Механики в Архив TechnologiCS: при выполнении действия в nanoCAD Механике "Положить в базу" для уже существующего документа, но с внесенными в него изменениями, в TechnologiCSе вместо добавления следующей версии открывается окно "Создание нового документа". Как добавить новую версию документа к уже существующей?

Re: Архив

Укажите пожалуйста точную версию nanoCAD Механики. Честно говоря не припомню интеграцию TechnologiCS с nanoCAD, или это сторонняя разработка?