SAP 表格数据获取及操作 (Shell、GridView)

前面有文章介绍我们如何手动方式实现 SAP 的自动化,详见: http://support.i-search.com.cn/article/1538017933135
但对有些特殊的表格数据使用 Tracker 并没有很好的将表格数据的内容抓取出。所以本章介绍一下此类数据的操作及获取方式

  • 需求说明
    SAP 表格数据获取及操作 (Shell、GridView)
    用户需求:
    1、点击上图红框的图标按键
    2、获取表格中红框的单元格数据

  • 前提条件
    使用 Tracker 进行抓取发现只能抓取到最外层的元素,并且元素类型为(GuiShell (122) - SubType: GridView)见下图所示
    SAP 表格数据获取及操作 (Shell、GridView)

  • 实现方式
    使用 Tracker 进行 python 进行代码录制
    SAP 表格数据获取及操作 (Shell、GridView)
    点击录制后,在 SAP 界面上面点击 上图需求中的两个位置
    录制完成后录制代码区代码如下:

session.findById("wnd[0]/usr/cntlGRID_CONT0050/shellcont/shell").setCurrentCell(2, "CLAS")
session.findById("wnd[0]/usr/cntlGRID_CONT0050/shellcont/shell").selectedRows = "2"
session.findById("wnd[0]/usr/cntlGRID_CONT0050/shellcont/shell").pressToolbarButton("&SORT_DSC")

代码解释:
setCurrentCell(2, “CLAS”) : 2 代表第三行、CLAS 代表列名
pressToolbarButton*(“&SORT_DSC”) : *&SORT_DSC 代表按键的名称

  • 代码实现
SapGuiAuto = win32com.client.GetObject("SAPGUI") 
application = SapGuiAuto.GetScriptingEngine 
connection = application.Children(0) 
session = connection.Children(0) 
win = session.Children(0)
#获取sell控件
id = "usr/cntlGRID_CONT0050/shellcont/shell"
shell = win.findById(id)
#获取单元格的值
cell = shell.getCellValue(2, "CLAS")
#点击上面的按键
shell.pressToolbarButton("&SORT_DSC")