脚本录制不会保存文件路径

2020-08-17 01:00发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我是的,我使用sapGui 7....

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

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


我是的,我使用sapGui 7.40,并尝试通过sq01中的查询创建用于提取数据的自动脚本。

一切正常,但我无法保存文件路径和名称。

这是我的示例脚本:

如果不是IsObject(application),则
设置SapGuiAuto = GetObject(" SAPGUI")
设置应用程序= SapGuiAuto.GetScriptingEngine
如果,如果不是IsObject(connection),则
结束 连接= application.Children(0)
如果不是IsObject(session),则结束

设置会话= connection.Children(0)
如果,如果是IsObject(WScript),则结束。 br> WScript.ConnectObject会话,"在"上
WScript.ConnectObject应用程序,"在"上结束If
session.findById(" wnd [0]")。maximize
session.findById(" wnd [0]/tbar [0]/okcd")。text =" sq01"
session.findById(" wnd [0]")。sendVKey 0
session.findById(" wnd [0]/mbar /menu[5]/menu[0]").select
session.findById(" wnd [1]/usr/radRAD1")。select
session.findById(" wnd [1]/tbar [0 ]/btn [2]")。press
session.findById(" wnd [0]/tbar [1]/btn [19]")。press
session.findById(" wnd [1]/usr /cntlGRID1/shellcont/shell").currentCellRow = 28
session.findById(" wnd [1]/usr/cntlGRID1/shellcont/shell")。firstVisibleRow = 18
session.findById(" wnd [1]/usr/cntlGRID1/shellcont/s 地狱")。selectedRows=" 28"
session.findById(" wnd [1]/usr/cntlGRID1/shellcont/shell")。doubleClickCurrentCell
session.findById(" wnd [0]/usr/cntlGRID_CONT0050/shellcont/shell")。selectedRows =" 0"
session.findById(" wnd [0]/usr/cntlGRID_CONT0050/shellcont/shell")。doubleClickCurrentCell
session.findById(" wnd [0]/tbar [ 1]/btn [8]")。press
session.findById(" wnd [0]/usr/ctxtSP $ 00005-LOW")。text =" zpf"
session.findById(" wnd [0] /usr/ctxtSP$00006-LOW").text =" mp01"
session.findById(" wnd [0]/usr/ctxtSP $ 00006-LOW")。setFocus
session.findById(" wnd [0] /usr/ctxtSP$00006-LOW").caretPosition = 4
session.findById(" wnd [0]/tbar [1]/btn [8]")。press
session.findById(" wnd [0 ]/usr/cntlCONTAINER/shellcont/shell")。pressToolbarContextButton"&MB_EXPORT"
session.findById(" wnd [0]/usr/cntlCONTAINER/shellcont/shell")。selectContextMenuItem"&XXL"
session.findById( " wnd [1]/usr/radRB_OTHERS")。setFocus
session.findById(" wnd [1]/usr/radRB_OTHERS")。select
session.findById(" wnd [1]/usr/cmbG_LISTBOX" ) .key =" 10"
session.findById(" wnd [1]/tbar [0]/btn [0]")。按

谁能帮助我?

7条回答
jovirus
2020-08-17 01:40

你好罗伯托,

这里是如何使用GOS的示例

子Test1()

   昏暗的SapGuiAuto作为对象
   Dim App作为SAPFEWSELib.GuiApplication
   昏暗的连接为SAPFEWSELib.GuiConnection
   昏暗的会话作为SAPFEWSELib.GuiSession
    
   设置SapGuiAuto = GetObject(" SAPGUI")
   设置应用程序= SapGuiAuto.GetScriptingEngine
   设置连接= App.Children(0)
   设置会话= connection.Children(3)

   session.FindById(" wnd [0]/tbar [0]/okcd")。Text ="/img/nsgostest"
   session.FindById(" wnd [0]")。SendVKey 0
   session.FindById(" wnd [0]/tbar [1]/btn [8]")。按
   session.FindById(" wnd [0]/titl/shellcont/shell")。PressContextButton"%GOS_TOOLBOX"
   session.FindById(" wnd [0]/titl/shellcont/shell")。SelectContextMenuItem"%GOS_PCATTA_CREA"
   session.FindById(" wnd [1]/usr/ctxtDY_FILENAME")。Text =" Test.txt"

 结束Sub 

对于我来说,我会看到一个可编写脚本的对话框来导入文件。

这是带有本机Windows对话框的示例。

 Sub Test2()

   昏暗的SapGuiAuto作为对象
   Dim App作为SAPFEWSELib.GuiApplication
   昏暗的连接为SAPFEWSELib.GuiConnection
   昏暗的会话作为SAPFEWSELib.GuiSession
    
   设置SapGuiAuto = GetObject(" SAPGUI")
   设置应用程序= SapGuiAuto.GetScriptingEngine
   设置连接= App.Children(0)
   设置会话= connection.Children(3)

   session.FindById(" wnd [0]/tbar [0]/okcd")。Text ="/img/nsgostest"
   session.FindById(" wnd [0]")。SendVKey 0
   session.FindById(" wnd [0]/tbar [1]/btn [8]")。按
   session.FindById(" wnd [0]/titl/shellcont/shell")。PressContextButton"%GOS_TOOLBOX"
  
   '-启动异步过程-
   昏暗的WshShell作为对象
   设置WshShell = CreateObject(" WScript.Shell")
   WshShell.Run" C:\ Dummy \ FillFileName.vbs"
  
   session.FindById(" wnd [0]/titl/shellcont/shell")。SelectContextMenuItem"%GOS_PCATTA_CREA"

 结束Sub 

如您所见,在打开本机对话框之前,我先启动一个异步VB脚本来填充对话框。

'-Begin --------------------------------------------  ---------------------

 设置wshShell = CreateObject(" WScript.Shell")

 做
   WScript.Sleep 500
 循环直到wshShell.AppActivate(" Datei importieren")= True

 wshShell.Sendkeys"%nTest.txt"
 'wshShell.Sendkeys"%nTest.txt%f"

 '-结束 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -  -------------------- 

如您所见,AppActivate搜索标题" Datei importieren"(德语为文件导入),并且Sendkeys类型为Alt + n(这表示Dateiname(文件名)的下划线)和文件名Test.txt。 注释行还按Alt + f(这表示Öffnen(打开)的下划线)以关闭对话框。

此后,您的VBA代码将在%GOS_PCATTA_CREA之后继续运行。

让我们知道您的结果。
干杯
Stefan

一周热门 更多>