vbscript - 如何使用 GUI 脚本读取 GuiTree 控件的行详细信息

标签 vbscript automation sap rpa

我需要在 SAP 中读取下面 Variant 表的最后一行的特定列值。当我记录脚本以浏览表的行时,我得到以下几行。我需要提取特定的单元格值。手动,我可以将行的内容复制并粘贴到记事本。但是,我无法弄清楚如何读取特定列或整行的内容。

我一直在尝试不同的方法:

session.findById("wnd[0]/usr/subTABSTRIP:SAPLATAB:0100/tabsTABSTRIP100/tabpTAB06/" _
    & "ssubSUBSC:SAPLATAB:0201/subAREA1:SAPLAIA1:0304/subSUB:SAPLAIA1:0308/" _
    & "subTREE:SAPLAIA1:0306/cntlVARI_CANVAS/shell").selectedNode = "0001"

session.findById("wnd[0]/usr/subTABSTRIP:SAPLATAB:0100/tabsTABSTRIP100/tabpTAB06/" _
    & "ssubSUBSC:SAPLATAB:0201/subAREA1:SAPLAIA1:0304/subSUB:SAPLAIA1:0308/" _
    & "subTREE:SAPLAIA1:0306/cntlVARI_CANVAS/shell").selectedNode = "0002"

这些是我使用向下箭头键向下移动时生成的行。但是我怎样才能得到行的内容呢?

enter image description here

最佳答案

这是一个 GuiTree 对象,更具体地说是“列树”类型之一。

在您的情况下,这将是:

set tree = session.findById("wnd[0]/usr/subTABSTRIP:SAPLATAB:0100/tabsTABSTRIP100/tabpTAB06/" _
& "ssubSUBSC:SAPLATAB:0201/subAREA1:SAPLAIA1:0304/subSUB:SAPLAIA1:0308/" _
& "subTREE:SAPLAIA1:0306/cntlVARI_CANVAS/shell")

属性(property)SelectedNode给出一个字符串,它是当前选择的节点的键(“节点”是树的一行):
nodeKey = tree.SelectedNode

从那里,您可以使用方法 GetNodeText 访问节点文本。 :
nodeText = tree.GetNodeText( nodekey )

使用方法GetItemText 获取单元格的文本(“项目”是树的行和列交叉处的单元格,不包括包含层次结构的左列):
itemText = tree.GetItemText( nodeKey, columnName )`

列名使用方法 GetColumnNames 获得:
set columnNames = tree.GetColumnNames()`

列名是 GuiComponentCollection对象,您可以按如下方式循环其元素:
for i = 0 to columnNames.Length - 1
  colunmName = columnNames.ElementAt(i)
next

关于vbscript - 如何使用 GUI 脚本读取 GuiTree 控件的行详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59820810/

相关文章:

linux - 如何在 bash 中读取带有冒号的文本文件

c# - 如何在每次页面加载时使用动态(更改)Xpath 值的列表框在 C# 中使用 Selenium 选择下拉项

Android Gradle 'versionCode' 未从环境变量中读取

ios - 开发移动原生 iOS 应用程序以与 SAP 中间件集成

java - 为什么 SAP JCo 会引发错误 "Field ... not a member of ...",即使该字段存在?

string - 如何在 VBscript 中将字符串数组转换为变体数组?

vbscript - 对 Excel 文件进行排序时类型不匹配

sap - 什么是SAP“服务文件”

windows - 如何从 .vbs 文件创建 Windows 服务?

vbscript - VBS(非网络开发): How to start a window hidden?