SAP GUI получает excel для копирования некоторых элементов из таблицы в системе SAP

Я пытаюсь написать код для извлечения данных из sap, а затем помещаю их в таблицу Excel. Прямо сейчас у меня есть графический интерфейс, попадающий в правильный itemnumber. Здесь я пытался получить полезный код, используя средство записи с графическим интерфейсом. Я попытался выбрать данные и открыть детали и выбранные данные здесь. У меня проблема в том, что код, сгенерированный GUI, не дает мне .value или .setfocus или что-то в этом роде. Так что я не знаю, как подойти к этому. Код из графического интерфейса можно увидеть ниже:

session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "/nymm_pricelist"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtS_MATNR-LOW").Text = Cells(currentline, 1).Value
session.findById("wnd[0]/usr/ctxtS_VKORG-LOW").Text = Cells(currentline, 2).Value
session.findById("wnd[0]/usr/ctxtS_VKORG-LOW").SetFocus
session.findById("wnd[0]/usr/ctxtS_VKORG-LOW").caretPosition = 4
session.findById("wnd[0]").sendVKey 8
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").CurrentCellColumn = "LOCALSALES_KBETR"
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectedRows = "0"
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").ContextMenu
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").SelectContextMenuItem "&DETAIL"
session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").setCurrentCell 4, "VALUE"
session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").selectedRows = "4"
session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").ContextMenu
session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").CurrentCellRow = 8
session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").selectedRows = "8"
session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").ContextMenu
session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").CurrentCellRow = 10
session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").selectedRows = "10"
session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").ContextMenu
session.findById("wnd[1]/tbar[0]/btn[0]").press

Любые идеи о том, как это сделать?


person Sidvi    schedule 08.11.2017    source источник


Ответы (1)


Вы можете попробовать следующее:

. . .
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").ContextMenu
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").SelectContextMenuItem "&DETAIL"
set myGrid = session.findById("wnd[1]/usr/cntlGRID/shellcont/shell")
myText_4 = myGrid.getcellvalue (4,"VALUE")
myText_8 = myGrid.getcellvalue (8,"VALUE")
myText_10 = myGrid.getcellvalue (10,"VALUE")
session.findById("wnd[1]/tbar[0]/btn[0]").press

С уважением, Скриптмен.

person ScriptMan    schedule 08.11.2017
comment
Спасибо, я попробую, когда решу новую проблему с Excel, которая не подключается к sap правильно... - person Sidvi; 08.11.2017
comment
Извините, просто случайно удалил не тот вопрос. Но спасибо, ваше предложение сработало. Я прогнал его по некоторым номерам деталей и получил некоторую информацию, только тогда я увидел, что детали контекста sap не были настроены одинаково для всех номеров деталей, поэтому я не получал информацию, необходимую для всех номеров. - person Sidvi; 08.11.2017
comment
Может быть, вы могли бы помочь мне с этим вместо этого тогда? stackoverflow.com/ вопросы/47177189/ - person Sidvi; 08.11.2017