【发布时间】:2018-04-29 22:47:30
【问题描述】:
我需要在 VBA 下使用脚本找到对 SAP 中文本框的字段名称引用!
Gridview 不显示名称!
Dim GridView As Object
If Not IsObject(SapAPP) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set SapAPP = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(SAPConn) Then
Set SAPConn = SapAPP.Children(0)
End If
If Not IsObject(session) Then
Set session = SAPConn.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject SapAPP, "on"
End If
session.FindById("wnd[0]").resizeWorkingPane 150, 31, False
session.FindById("wnd[0]").resizeWorkingPane 150, 31, False
session.FindById("wnd[0]/tbar[0]/okcd").Text = "cn46n"
session.FindById("wnd[0]").SendVKey 0
session.FindById("wnd[0]/usr/ctxtCN_PROJN-LOW").Text = "P-312313"
session.FindById("wnd[0]/usr/ctxtCN_NETNR-LOW").Text = "13123123"
session.FindById("wnd[0]/usr/ctxtCN_NETNR-LOW").SetFocus
session.FindById("wnd[0]/usr/ctxtCN_NETNR-LOW").CaretPosition = 7
session.FindById("wnd[0]/tbar[1]/btn[8]").press
session.FindById("wnd[0]/usr/cntlALVCONTAINER/shellcont/shell").CurrentCellColumn = "STATXT"
session.FindById("wnd[0]/shellcont/shellcont/shell/shellcont[1]/shell/shellcont[1]/shell").TopNode = " 23"
'Set GridView = session.FindById("wnd[0]/shellcont/shellcont/shell/shellcont[1]/shell/shellcont[1]/shell")
Set GridView = session.FindById("wnd[0]/usr/cntlALVCONTAINER/shellcont/shell/shellcont[1]/shell/shellcont[1]/shell")
session.FindById("wnd[0]/tbar[0]/btn[15]").press
通常使用 gridview 我可以看到文本字段名称是什么,并使用类似...的内容提取我需要的内容 MsgBox("PSPID = ") & GridView.GetCellValue(i, "PSPID")
但我找不到正确识别字段的方法。
【问题讨论】:
-
Set GridView = Session.FindById("wnd[0]/usr/tabsTABCJLE/tabbLEGR/ssubLISTE:SAPLCJWB:0902/tblSAPLCJWBTAB_902/txtPRPS-POST1[3,0]") 然后我可以使用msgbox ("test=") & gridview.text ,它工作正常,但仍然需要找到一种方法来访问行而不用特定语法设置 gridview!