Как читать все данные из окна SAP GUI с помощью VBA
Я пытаюсь автоматизировать T-Code-VA03. Я ввожу номер заказа в текстовом поле номера заказа и нажимаю F8
,
Это вызывает окно, которое содержит несколько строк меток.
Мое требование, я хочу выбрать тот, с последней датой. Я попытался записать скрипт для него и ниже кода.
session.findById("wnd[0]/usr/txtRV45S-BSTNK").text = "123456789"
session.findById("wnd[0]/usr/txtRV45S-BSTNK").setFocus
session.findById("wnd[0]/usr/txtRV45S-BSTNK").caretPosition = 8
session.findById("wnd[0]").sendVKey 8
session.findById("wnd[1]/usr/lbl[49,6]").setFocus
session.findById("wnd[1]/usr/lbl[49,6]").caretPosition = 0
Я вижу, есть ярлыки с индексами. Как я могу перебрать все окно и перенести фокус на последнюю дату?
2 ответа
С помощью скрипта VB вы можете попробовать следующее:
. . .
session.findById("wnd[0]").sendVKey 8
for i = 6 to 99
on error resume next
session.findById("wnd[1]/usr/lbl[49," & cstr(i) & "]").setFocus
if err.number <> 0 then Exit for
on error goto 0
session.findById("wnd[1]/usr/lbl[49," & cstr(i) & "]").caretPosition = 0
next
С уважением, ScriptMan
Если вам действительно нужно сделать что-то вроде перебора окна и перевести фокус на строку с самой последней датой, не делайте этого с VBA, потому что вы можете столкнуться с множеством проблем.
Сказав выше, попробуйте с sendkeys https://msdn.microsoft.com/en-us/vba/excel-vba/articles/application-sendkeys-method-excel
и отправить вкладку. Затем создайте код для поиска "Предмет" в вашей форме. После этого отправьте вкладку 8 раз, чтобы перейти к PO Date
, Напишите дату в списке. Отправьте TAB снова 11 раз к следующей дате. Запишите это в список. И так до тех пор, пока не останется больше дат.
Во всяком случае, как я уже говорил, это не очень хорошее решение. Лучший способ - просто спросить администратора БД о доступе только для чтения к БД или индивидуальном представлении. С его помощью вы можете сделать надежное решение, которое читает самую последнюю дату.