如何从显示 "ABAP List" 的屏幕获取文本

How to get texts from screen displaying an "ABAP List"

我可以通过 VBA 进入 SAP GUI 中的操作,但我无法找到如何 select 或复制这些字段的值。

通过 SAP GUI 记录脚本时,将字段复制到剪贴板不会作为操作出现在脚本中。

非常感谢任何帮助或参考。

请在下面找到代码和屏幕截图(“ABAP 列表”类型的屏幕)。

Sub XXXX()
Call SAPConnections
Session.FindById("wnd[0]/tbar[0]/okcd").Text = "Operation"
Session.FindById("wnd[0]").SendVKey 0
Session.FindById("wnd[0]/usr/ctxtP_MATRL").Text = "PartNumber"
Session.FindById("wnd[0]").SendVKey 8
Session.FindById("wnd[0]/tbar[1]/btn[1]").Press

您显示的屏幕名为“ABAP 列表”。

它包含标签和文本字段,它们属于GuiUserArea object的属性 Children,它们的ID由前缀lbl或[=16组成=] 后跟列号和行号。各自的SAP GUI Scripting对象为GuiLabelGuiTextField,例如:

  • 第 0 列(第一列)第 12 行的标签(对象 GuiLabel):
    /app/con[0]/ses[0]/wnd[0]/usr/lbl[0,12]
    
  • 第 22 列第 12 行的文本字段(对象 GuiTextField):
    /app/con[0]/ses[0]/wnd[0]/usr/txt[22,12]
    
  • 第 0 行第 0 行(第一行)的复选框(对象 GuiCheckBox):
    /app/con[0]/ses[0]/wnd[0]/usr/chk[0,0]`
    

如果你想知道 ABAP 列表中的所有字段,你必须在 GuiUserArea 对象的 属性 Children 处循环。

编辑:在上面的列表中添加了复选框。我认为我们现在拥有 ABAP 列表的所有可能类型的字段(我想其他简单的图形元素对象,如 GuiButtonGuiComboBoxGuiCTextFieldGuiRadioButton,不是可能)。