Цикл таблицы в SAP возвращает ошибку - PullRequest
0 голосов
/ 27 августа 2018

Я запускаю скрипт из Excel и хотел бы перебрать строки в таблице, чтобы получить значения для каждой строки в таблице. Вот что мне в основном нужно сделать:

1.Перейти на страницу с таблицей в SAP

  1. Двойной щелчок по строке, что приводит меня к окну со значениями, которые мне нужно скопировать и вставить в электронную таблицу.

  2. Аналогичным образом переберите всю таблицу и повторите процедуру в SAP.

Прикрепленные изображения показывают таблицы, с которыми я работаю. Я не уверен, какие из них являются реальными таблицами, которые могут быть объявлены как объекты. Я попытался запустить код, но он возвращает ошибку «Объект не поддерживает это свойство или метод» (RowCount)

первый тип объекта

второй тип объекта

третий тип объекта

Dim Table As Object
Dim rows As Long
Dim i As Long

Set Table = Session.FindById("wnd[0]/usr/cntlUSAGE_TREE_CONTAINER/shellcont/shell/shellcont[1]/shell[1]")
rows = Table.RowCount - 1

For i = 0 To rows
Session.FindById("wnd[0]/usr/cntlUSAGE_TREE_CONTAINER/shellcont/shell/shellcont[1]/shell").selectedNode = "          i"
Session.FindById("wnd[0]/usr/cntlUSAGE_TREE_CONTAINER/shellcont/shell/shellcont[1]/shell").doubleClickNode "          i"

Next i

1 Ответ

0 голосов
/ 28 августа 2018

На мой взгляд, прикрепленные изображения содержат следующее содержание:

  1. дерево
  2. Таблица
  3. Сетка

Пример программы ссылается на дерево. Одно из возможных решений может выглядеть следующим образом:

Set myTree = Session.FindById("wnd[0]/usr/cntlUSAGE_TREE_CONTAINER/shellcont/shell/shellcont[1]/shell[1]")
rowCount = myTree.GetColumnCol(myTree.GetColumnNames.item(0)).length
rows = rowCount - 1

For i = 0 To rows
 myTree.selectedNode right("          " + CStr(i),11)
 myTree.doubleClickNode right("          " + CStr(i),11)
Next i

С уважением, ScriptMan

...