如何使用VBA脚本检测最后一个父节点并从其子节点获取数据

2020-09-23 23:48发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的用户 我刚刚遇到了一个使...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的用户

我刚刚遇到了一个使我陷入停顿的情况。

我想从自定义SAP tcode中钻取数据。 我无法解决的问题:在子子屏幕上,有一个包含项目的日志列表。 我想从列表中选择最后一个,但是无法获取行号或单元格内容来定位所需的单元格并双击。

我的代码:

设置GRID1 = session.findById(" wnd [0]/usr/cntlGRID1/shellcont/shell")
 GRID1Rows = GRID1.RowCount-1

 对于i = 0到GRID1Rows
 PONrSAP = GRID1.getcellvalue(i," EBELN")
 GRID1.setCurrentCell i," SLGREF"
 GRID1.clickCurrentCell
 '我们现在进入项目的处理日志。
 设置GRID3 = session.findById(" wnd [0]/usr/subSUBSCREEN:SAPLSBAL_DISPLAY:0101/cntlSAPLSBAL_DISPLAY_CONTAINER/shellcont/shell/shellcont [0]/shell")

 '这是问题所在。 我只能对脚本记录中的内容进行硬编码,但是
 "如果列出了多个日志结果,则我无法找到列表中的最后一项。
 '这是列表中的第一个,如果项目仅被处理过一次,则可以:
 GRID3.selectItem" 1 1"," 101"
 '这是该项目经过多次处理的示例,所以这是我要双击的实际处理结果:
 'GRID3.selectItem" 1 4"," 101"
 "我继续第1号线,如您在屏幕截图上所见。
 GRID3.ensureVisibleHorizo​​ntalItem" 1 1"," 101"
 GRID3.doubleClickItem" 1 1"," 101"
 从这一点来看,一切都很好。

 '(这里还有更多代码)

 接下来我

如您所见,我能够在GRID1.RowCount中应用RowCount方法。 但是如果是GRID3,它会返回一条错误消息:"对象不支持此属性或方法"(我已经从代码中将其删除了。)

谢谢大家的任何暗示!

拉斯洛

row-number-fetching-case-vba-scripting-on-sap.jpg (365.8 kB)
2条回答
木偶小白
2020-09-24 00:17 .采纳回答

Laszlo,你好

所描述的问题使我个人感兴趣,因此,我在这里提供可以测试的建议。

对象GRID3本质上不是网格,而是树。 ;-)

。  。  。
 '我们现在进入项目的处理日志。
 设置Node_Object = session.findById(" wnd [0]/usr/subSUBSCREEN:SAPLSBAL_DISPLAY:0101/cntlSAPLSBAL_DISPLAY_CONTAINER/shellcont/shell/shellcont [0]/shell")

 设置nodeCol = Node_Object.getNodesCol

 对于i = 0到nodeCol.Count-1
   key = nodeCol.elementAt(CInt(i))'返回节点的密钥
 下一个

 Node_Object.selectItem" 1"&right(space(9)&cstr(key),10)," 101"
 Node_Object.ensureVisibleHorizo​​ntalItem" 1"&right(space(9)&cstr(key),10)," 101"
 Node_Object.doubleClickItem" 1"&right(space(9)&cstr(key),10)," 101"

 '(这里还有更多代码)

 接下来我

此致

ScriptMan

一周热门 更多>