判断树节点是否存在

Determine if tree node exists

我正在创建一个宏,在某些时候它必须浏览 SAP 中的一些文件夹和子文件夹(带有子节点的树节点)

主文件夹在以下代码中展开:

session.findById("wnd[0]/shellcont/shell").expandNode "2**000001"

我要查找的子文件夹如下:

session.findById("wnd[0]/shellcont/shell").selectedNode = "251000001"

但是这个子文件夹可能不存在。

我想添加一个 IF 语句来检查它是否存在或获取子文件夹列表并查找包含文本 "Status 51".[=14 的方法=]

我可以识别一个 GuiTree 控件,它是类型 2(列树)。

要确定给定节点是否存在,如果您知道它的键,则可以使用以这种方式调用的以下函数:If TreeNodeExistsByKey(session.findById("wnd[0]/shellcont/shell"),"251000001") Then...

Function TreeNodeExistsByKey(tree,nodekey)
  On Error Resume Next
  tree.GetHierarchyLevel(nodekey)
  If Err.Number = 0 Then
    result = True
  Else
    result = False
  End If
  TreeNodeExistsByKey = result
End Function

获取并迭代给定节点的子节点:

Set tree = session.findById("wnd[0]/shellcont/shell")
Set coll = tree.GetAllNodeKeys()
For i = 0 to coll.Length - 1
  nodekey = coll.ElementAt(i)
Next

要通过键获取节点的文本,请使用方法 GetNodeTextByKey:

nodeText = tree.GetNodeTextByKey(nodeKey)