Имеется таблица ракурсов. Количество ракурсов для каждого материала может достигать примерно 20-22 ракурса. Ракурс в таблицу ракурсов добавляется в последовательном порядке, т. е. если первым создан ракурс Основные данные, то Классификация 2 уже нельзя поставить на первую строчку в таблице ракурсов. А мне нужно чтобы скрипт выбирал именно ракурс под названием Классификация 2. Но он не во всех материалах под одной и той же строкой создается. При записи скрипта через SAP GUI Scripting ракурс Классификация 2 был под 19 строчкой в таблице ракурсов, поэтому для остальных материалов скрипт также просматривает 19 строчку. Но не всегда на 19 строчке находится ракурс Классификация 2. Поэтому возникает ошибка и дальнейшая загрузка плановых цен прекращается
session.findById("wnd[1]/usr/tblSAPLMGMMTC_VIEW").getAbsoluteRow(19).selected = true
Подскажите, пожалуйста (очень нужно), кто знает , как можно исправить код таким образом, чтобы ракурс находился не по строке 19, а по названию ракурса «Классификация 2»?
Вот собственно сам скрипт:
If Not IsObject(connection) Then Set connection = application.Children(0) End If If Not IsObject(session) Then Set session = connection.Children(0) End If If IsObject(WScript) Then WScript.ConnectObject session, "on" WScript.ConnectObject application, "on" End If ' 'Развернуть основное окно (можно удалить строку) session.findById("wnd[0]").maximize ' запуск транзакции session.findById("wnd[0]/tbar[0]/okcd").text = "MM02" 'Нажатие клавиши [Enter] session.findById("wnd[0]").sendVKey 0
' запуск Excel Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open ("C:\Documents and Settings\44kd\Мои документы\sap_script\НСИ\24.06.2013\2 Список материалов без ракурса Калькуляция2.xls")
'1000
intRow = 2 A="wnd[0]/usr/ctxtIMRG-IDATE"
Do Until objExcel.Cells(intRow,1).Value = ""
' Указываем № материала session.findById("wnd[0]/usr/ctxtRMMG1-MATNR").text = objExcel.Cells(intRow, 1).Value
session.findById("wnd[0]/usr/ctxtRMMG1-MATNR").caretPosition = 8 session.findById("wnd[0]").sendVKey 0 session.findById("wnd[0]").sendVKey 0 session.findById("wnd[1]/usr/tblSAPLMGMMTC_VIEW").verticalScrollbar.position = 8
session.findById("wnd[1]/usr/tblSAPLMGMMTC_VIEW").getAbsoluteRow(19).selected = true
session.findById("wnd[1]/usr/tblSAPLMGMMTC_VIEW/txtMSICHTAUSW-DYTXT[0,14]").setFocus session.findById("wnd[1]/usr/tblSAPLMGMMTC_VIEW/txtMSICHTAUSW-DYTXT[0,14]").caretPosition = 0 session.findById("wnd[1]/tbar[0]/btn[0]").press session.findById("wnd[1]/usr/ctxtRMMG1-WERKS").text = "1000" session.findById("wnd[1]/usr/ctxtRMMG1-WERKS").caretPosition = 4 session.findById("wnd[1]").sendVKey 0
'Указываем плановую цену session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP27/ssubTABFRA1:SAPLMGMM:2000/subSUB3:SAPLMGD1:2952/txtMBEW-ZPLP1").text = objExcel.Cells(intRow, 2).Value
session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP27/ssubTABFRA1:SAPLMGMM:2000/subSUB3:SAPLMGD1:2952/ctxtMBEW-ZPLD1").setFocus session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP27/ssubTABFRA1:SAPLMGMM:2000/subSUB3:SAPLMGD1:2952/ctxtMBEW-ZPLD1").caretPosition = 0 session.findById("wnd[0]").sendVKey 4
'Указываем дату session.findById("wnd[1]/usr/cntlCONTAINER/shellcont/shell").selectionInterval = "20130101" session.findById("wnd[0]").sendVKey 0 session.findById("wnd[1]/usr/btnSPOP-OPTION_CAN").press session.findById("wnd[0]/tbar[0]/btn[11]").press
intRow = intRow + 1
Loop
'1000
objExcel.Quit
|
|