Как прочитать подробности строки элемента управления GuiTree, используя GUI Script - PullRequest
1 голос
/ 20 января 2020

Мне нужно прочитать указанное значение столбца c последней строки в приведенной ниже таблице вариантов в SAP. Когда я записываю скрипт для навигации по строкам таблицы, я получаю строки ниже. Мне нужно извлечь указанное c значение ячейки. Вручную, я могу скопировать и вставить содержимое строки в блокнот. Но я не могу понять, как читать содержимое указанного c столбца или всей строки.

Я пробовал разные способы:

session.findById("wnd[0]/usr/subTABSTRIP:SAPLATAB:0100/tabsTABSTRIP100/tabpTAB06/" _
    & "ssubSUBSC:SAPLATAB:0201/subAREA1:SAPLAIA1:0304/subSUB:SAPLAIA1:0308/" _
    & "subTREE:SAPLAIA1:0306/cntlVARI_CANVAS/shell").selectedNode = "0001"

session.findById("wnd[0]/usr/subTABSTRIP:SAPLATAB:0100/tabsTABSTRIP100/tabpTAB06/" _
    & "ssubSUBSC:SAPLATAB:0201/subAREA1:SAPLAIA1:0304/subSUB:SAPLAIA1:0308/" _
    & "subTREE:SAPLAIA1:0306/cntlVARI_CANVAS/shell").selectedNode = "0002"

Это строки генерируется, когда я двигаюсь вниз по строке с помощью клавиши со стрелкой вниз. Но как я могу получить содержимое строки?

enter image description here

1 Ответ

2 голосов
/ 20 января 2020

Это объект GuiTree, а точнее один из объектов типа "Дерево столбцов".

В вашем случае это будет:

set tree = session.findById("wnd[0]/usr/subTABSTRIP:SAPLATAB:0100/tabsTABSTRIP100/tabpTAB06/" _
& "ssubSUBSC:SAPLATAB:0201/subAREA1:SAPLAIA1:0304/subSUB:SAPLAIA1:0308/" _
& "subTREE:SAPLAIA1:0306/cntlVARI_CANVAS/shell")

Свойство SelectedNode дает строку, которая является ключом выбранного в данный момент узла («узел» - для строки дерева):

nodeKey = tree.SelectedNode

Оттуда вы можете получить доступ к тексту узла с помощью метод GetNodeText:

nodeText = tree.GetNodeText( nodekey )

Текст ячейки получается с помощью метода GetItemText («элемент» - это ячейка на пересечении строки и столбца дерева, исключая левый столбец с иерархией):

itemText = tree.GetItemText( nodeKey, columnName )`

Имена столбцов получаются с помощью метода GetColumnNames:

set columnNames = tree.GetColumnNames()`

Имена столбцов являются объектами GuiComponentCollection Вы л oop на его элементы следующим образом:

for i = 0 to columnNames.Length - 1
  colunmName = columnNames.ElementAt(i)
next
...