Сценарии SAP GUI: чтение значения ячейки в табличном элементе управления

Я хочу прочитать значение ячейки в таблице - пример транзакции C202 ниже.

Я могу использовать SAP GUI Scripting Recorder для "check" или "select" (row = 5, column = 1), который находится рядом с "0122" и (row = 5, column = 1), который находится рядом с "0125".

Это дает мне простой код:

''' selects 0122
session.findById("wnd[0]/usr/tabsTABSTRIP_RECIPE/tabpVOUE/ssubSUBSCREEN_RECIPE:SAPLCPDI:4401/tblSAPLCPDITCTRL_4401").getAbsoluteRow(4).selected = true

'''selects 0125
session.findById("wnd[0]/usr/tabsTABSTRIP_RECIPE/tabpVOUE/ssubSUBSCREEN_RECIPE:SAPLCPDI:4401/tblSAPLCPDITCTRL_4401").getAbsoluteRow(7).selected = true

Однако это меняет доступные строки.

Иногда будут:

0100, 0110, 0120, 0121, 0122, 0123, 0124, 0125, 0130, 0140
-sometimes there will be 0100, 0110, 0122, 0123, 0124, 0125, 0140
-sometimes there will be 0100, 0121, 0122, 0123, 0124, 0125, 0140
-sometimes there will be 0100, 0122, 0123, 0125, 0130, 0140
etc

Я хочу прочитать столбец = 2, чтобы узнать, 0122 или 0125, а затем проверить их.

Как я могу поместить это значение в переменную и использовать msgbox для его отображения?

PSEUDO CODE

dim readVariable as string

for row = 1 to NumberOfRows
      readVariable = Table.Read (row,2)
         if readVariable = 0122
            msgbox "row = " & row " & " is 0122"
         end if
         if readVariable = 0125
            msgbox "row = " & row " & " is 0125"
         end if
next

Я попытался перейти по ссылке, но не могу получить Работа.

Большое спасибо!!!

введите здесь описание изображения


person Eduardo GS    schedule 19.12.2019    source источник
comment
С помощью устройства записи, если вы поместите курсор (текстовый курсор) в поле, например, на 1-й символ, сгенерированный файл VBS будет содержать что-то вроде session.findById("<the field ID>").caretPosition = 1, и поэтому ваш собственный VBS может использовать этот идентификатор: msgbox session.findById("<the field ID>").text   -  person Sandra Rossi    schedule 19.12.2019
comment
Огромное спасибо, Сандра Росси! Это сработало! Он читает 0110. Сравнение msgbox *** = 0110, msgbox *** = 110 и msgbox *** = 0110 возвращает TRUE (только msgbox *** = 110 возвращает FALSE). Спасибо! Это распознается как ЗНАЧЕНИЕ, верно? Потому что msgbox***+1 возвращает 111. Как мне прочитать это как строку? @СандраРосси   -  person Eduardo GS    schedule 19.12.2019
comment
Свойство text всегда является строкой. Добавление 1 подразумевает преобразование типа, как я полагаю, в соответствии с моделью типов VBScript.   -  person Sandra Rossi    schedule 20.12.2019


Ответы (1)


Используйте '&' вместо +, и вы получите 01101, так как VBS предполагает, что преобразование будет направлено на строковый тип, и соединит вашу строку с "1" вместо того, чтобы анализировать вашу строку в цифровом типе переменной, чтобы просто добавить 1 .

person Kacper Witos    schedule 27.12.2019