在VBS中按名称而不是ID选择一个项目

时间:2019-03-11 16:25:35

标签: vbscript sap

我在CITRIX上运行的SAP上记录了一个脚本。一切工作正常,直到将某些项目添加到窗口中,然后选择了正确的项目来过滤列。我想这是因为正确的项目(例如所示图片中的MATART)向下移动,并且行,订单等不是同一行。

我想知道是否可以通过名称而不是ID选择项目?

enter image description here

这是脚本的一部分,带有选择项目的行:

session.findById("wnd[0]/tbar[0]/okcd").text = "/nzm082"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/tbar[1]/btn[33]").press
session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").currentCellRow = 1
session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").selectedRows = "1"
session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").clickCurrentCell
session.findById("wnd[0]/tbar[1]/btn[45]").press

1 个答案:

答案 0 :(得分:0)

您可以测试以下内容。

例如:

...
session.findById("wnd[0]/tbar[1]/btn[33]").press
set myLayout = session.findById("wnd[1]/usr/cntlGRID/shellcont/shell")

Rows = myLayout.RowCount
For i = 0 to Rows - 1 
myVariant = session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").getCellValue (i, "VARIANT")
if myVariant = "MTART" then
   session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").currentCellRow = i
   session.findById("wnd[1]/usr/cntlGRID/shellcont/shell").clickCurrentCell
   Exit For
end if
next
session.findById("wnd[0]/tbar[1]/btn[45]").press
...

关于ScriptMan