将提取的SAP报告以Excel格式保存到指定的驱动器

2020-09-26 10:00发布

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

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


大家好,

我想问一下如何保存从SAP生成的报告并将其保存到指定的驱动器。 我正在尝试@ script.man给出的代码,但不幸的是,我的某些地方不正确。 请帮助。

这是代码:

公共子GSAPpost()


 AdjID = Sheet4.Cells(4,11)
 合约= Sheet4.Cells(10,4)
 'filepathsave = Range(" J29")。value&" \"


 如果Month(Now)<9那么
     monthtoday =" 0"&Month(Now)
 其他
     今日=月(现在)
 万一


 如果Day(Now)<9那么
     daytoday =" 0"&Day(Now)
 其他
     今天=天(现在)
 万一
  


 Set SapGuiAuto = GetObject(" SAPGUI")'获取SAP GUI脚本对象
 设置SAPApp = SapGuiAuto.GetScriptingEngine'获取当前正在运行的SAP GUI
 Set SAPCon = SAPApp.Children(0)'获取当前已连接的第一个系统
 设置会话= SAPCon.Children(0)'获取该连接上的第一个会话(窗口)


 session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/NREAJSH"
 session.findById(" wnd [0]")。sendVKey 0
 session.findById(" wnd [0]/usr/ctxtP_PEXTID")。Text = AdjID
 session.findById(" wnd [0]/usr/ctxtP_PEXTID")。caretPosition = 34
 session.findById(" wnd [0]/tbar [1]/btn [8]")。按
 session.findById(" wnd [0]/usr/cntlCC_ADJM_ADJMREC_GRID/shellcont/shell")。pressToolbarContextButton"&MB_EXPORT"
 session.findById(" wnd [0]/usr/cntlCC_ADJM_ADJMREC_GRID/shellcont/shell")。selectContextMenuItem"&XXL"
 session.findById(" wnd [1]/usr/cmbG_LISTBOX")。SetFocus
 session.findById(" wnd [1]/usr/cmbG_LISTBOX")。Key =" 08"
 session.findById(" wnd [1]/tbar [0]/btn [0]")。按
 session.findById(" wnd [1]/tbar [0]/btn [0]")。按
 session.findById(" wnd [1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG [0,0]")。选择
 session.findById(" wnd [1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG [0,0]")。SetFocus
 session.findById(" wnd [1]/tbar [0]/btn [0]")。按
 session.findById(" wnd [1]/tbar [0]/btn [0]")。按
 'session.findById(" wnd [1]/tbar [0]/btn [0]")。press
 'session.findById(" wnd [0]/tbar [0]/btn [12]")。press
 session.findById(" wnd [0]/tbar [0]/btn [12]")。按


 session.findById(" wnd [0]/tbar [1]/btn [9]")。按
 session.findById(" wnd [0]/mbar/menu [0]/menu [1]/menu [2]")。选择
 session.findById(" wnd [1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG [1,0]")。选择
 session.findById(" wnd [1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG [1,0]")。SetFocus
 session.findById(" wnd [1]/tbar [0]/btn [0]")。按
 session.findById(" wnd [1]/tbar [0]/btn [0]")。按
 session.findById(" wnd [1]/usr/ctxtDY_PATH")。Text = filepathsave
 session.findById(" wnd [1]/usr/ctxtDY_FILENAME")。Text =" TR_PP SIM PLOG VNDR LI"&contractno&" _"&Year(Now)&monthtoday&daytoday&" .xls"
 session.findById(" wnd [1]/tbar [0]/btn [11]")。按


 SAP_Workbook ="基于工作表的工作表(1)"
 EXCEL_Path =" \ ........... \ ADJ模拟"
 myWorkbook =" TR_FREEADJ SIM VNDR LI"&合同&" _"&Year(Now)&monthtoday&daytoday&" .xlsx"


 关于错误继续
 做
 错误清除
 设置xclapp = GetObject(," Excel.Application")
 如果Err.Number = 0,则退出执行
 'msgbox"等待Excel会话"
 wscript.sleep 2000
 循环


 做
 错误清除
 设置xclwbk = xclapp.Workbooks.Item(SAP_Workbook)
 如果Err.Number = 0,则退出执行
 'msgbox"等待SAP工作簿"
 wscript.sleep 2000
 循环


 出错时转到0


 设置xclsheet = xclwbk.Worksheets(1)


 xclapp.Visible =真
 xclapp.DisplayAlerts = False


 xclapp.ActiveWorkbook.SaveAs EXCEL_Path和myWorkbook
 xclapp.ActiveWorkbook.Close


 设置xclwbk = Nothing
 设置xclsheet = Nothing
 'xclapp.Quit
 设置xclapp = Nothing




 'session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/n"
 'session.findById(" wnd [0]")。sendVKey 0








 结束子




 

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

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


大家好,

我想问一下如何保存从SAP生成的报告并将其保存到指定的驱动器。 我正在尝试@ script.man给出的代码,但不幸的是,我的某些地方不正确。 请帮助。

这是代码:

公共子GSAPpost()


 AdjID = Sheet4.Cells(4,11)
 合约= Sheet4.Cells(10,4)
 'filepathsave = Range(" J29")。value&" \"


 如果Month(Now)<9那么
     monthtoday =" 0"&Month(Now)
 其他
     今日=月(现在)
 万一


 如果Day(Now)<9那么
     daytoday =" 0"&Day(Now)
 其他
     今天=天(现在)
 万一
  


 Set SapGuiAuto = GetObject(" SAPGUI")'获取SAP GUI脚本对象
 设置SAPApp = SapGuiAuto.GetScriptingEngine'获取当前正在运行的SAP GUI
 Set SAPCon = SAPApp.Children(0)'获取当前已连接的第一个系统
 设置会话= SAPCon.Children(0)'获取该连接上的第一个会话(窗口)


 session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/NREAJSH"
 session.findById(" wnd [0]")。sendVKey 0
 session.findById(" wnd [0]/usr/ctxtP_PEXTID")。Text = AdjID
 session.findById(" wnd [0]/usr/ctxtP_PEXTID")。caretPosition = 34
 session.findById(" wnd [0]/tbar [1]/btn [8]")。按
 session.findById(" wnd [0]/usr/cntlCC_ADJM_ADJMREC_GRID/shellcont/shell")。pressToolbarContextButton"&MB_EXPORT"
 session.findById(" wnd [0]/usr/cntlCC_ADJM_ADJMREC_GRID/shellcont/shell")。selectContextMenuItem"&XXL"
 session.findById(" wnd [1]/usr/cmbG_LISTBOX")。SetFocus
 session.findById(" wnd [1]/usr/cmbG_LISTBOX")。Key =" 08"
 session.findById(" wnd [1]/tbar [0]/btn [0]")。按
 session.findById(" wnd [1]/tbar [0]/btn [0]")。按
 session.findById(" wnd [1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG [0,0]")。选择
 session.findById(" wnd [1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG [0,0]")。SetFocus
 session.findById(" wnd [1]/tbar [0]/btn [0]")。按
 session.findById(" wnd [1]/tbar [0]/btn [0]")。按
 'session.findById(" wnd [1]/tbar [0]/btn [0]")。press
 'session.findById(" wnd [0]/tbar [0]/btn [12]")。press
 session.findById(" wnd [0]/tbar [0]/btn [12]")。按


 session.findById(" wnd [0]/tbar [1]/btn [9]")。按
 session.findById(" wnd [0]/mbar/menu [0]/menu [1]/menu [2]")。选择
 session.findById(" wnd [1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG [1,0]")。选择
 session.findById(" wnd [1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG [1,0]")。SetFocus
 session.findById(" wnd [1]/tbar [0]/btn [0]")。按
 session.findById(" wnd [1]/tbar [0]/btn [0]")。按
 session.findById(" wnd [1]/usr/ctxtDY_PATH")。Text = filepathsave
 session.findById(" wnd [1]/usr/ctxtDY_FILENAME")。Text =" TR_PP SIM PLOG VNDR LI"&contractno&" _"&Year(Now)&monthtoday&daytoday&" .xls"
 session.findById(" wnd [1]/tbar [0]/btn [11]")。按


 SAP_Workbook ="基于工作表的工作表(1)"
 EXCEL_Path =" \ ........... \ ADJ模拟"
 myWorkbook =" TR_FREEADJ SIM VNDR LI"&合同&" _"&Year(Now)&monthtoday&daytoday&" .xlsx"


 关于错误继续
 做
 错误清除
 设置xclapp = GetObject(," Excel.Application")
 如果Err.Number = 0,则退出执行
 'msgbox"等待Excel会话"
 wscript.sleep 2000
 循环


 做
 错误清除
 设置xclwbk = xclapp.Workbooks.Item(SAP_Workbook)
 如果Err.Number = 0,则退出执行
 'msgbox"等待SAP工作簿"
 wscript.sleep 2000
 循环


 出错时转到0


 设置xclsheet = xclwbk.Worksheets(1)


 xclapp.Visible =真
 xclapp.DisplayAlerts = False


 xclapp.ActiveWorkbook.SaveAs EXCEL_Path和myWorkbook
 xclapp.ActiveWorkbook.Close


 设置xclwbk = Nothing
 设置xclsheet = Nothing
 'xclapp.Quit
 设置xclapp = Nothing




 'session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/n"
 'session.findById(" wnd [0]")。sendVKey 0








 结束子




 
付费偷看设置
发送
2条回答
悻福寶寶
1楼 · 2020-09-26 10:17.采纳回答

炸弹架,

SAP也得到了进一步发展。 人们不再需要前一种解决方法。 因此,解决方案可能如下所示。

例如:

。  。  。

 EXCEL_Path =" \\ asia-pac.shell.com \ asia-pac \ Corporate \ SSSA RCBC Tower 2 \ Dept_05 \ EDR Retailer Billing \ Data \ REAL ESTATE \ TURKEY \ FREE ADJUSTMENT \ REAL ESTATE_TR04_FREE ADJUSTMENT_201708 \ ADJ SIMULATION"
 myWorkbook =" TR_FREEADJ SIM VNDR LI"&合同&" _"&Year(Now)&monthtoday&daytoday&" .xlsx"

 session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/NREAJSH"
 session.findById(" wnd [0]")。sendVKey 0
 session.findById(" wnd [0]/usr/ctxtP_PEXTID")。Text = AdjID
 'session.findById(" wnd [0]/usr/ctxtP_PEXTID")。caretPosition = 34
 session.findById(" wnd [0]/tbar [1]/btn [8]")。按
 session.findById(" wnd [0]/usr/cntlCC_ADJM_ADJMREC_GRID/shellcont/shell")。pressToolbarContextButton"&MB_EXPORT"
 session.findById(" wnd [0]/usr/cntlCC_ADJM_ADJMREC_GRID/shellcont/shell")。selectContextMenuItem"&XXL"
 session.findById(" wnd [1]/usr/cmbG_LISTBOX")。setFocus
 session.findById(" wnd [1]/usr/cmbG_LISTBOX")。key =" 10"
 session.findById(" wnd [1]/tbar [0]/btn [0]")。按
 session.findById(" wnd [1]/usr/ctxtDY_PATH")。Text = EXCEL_Path
 session.findById(" wnd [1]/usr/ctxtDY_FILENAME")。Text = myWorkbook
 session.findById(" wnd [1]/tbar [0]/btn [11]")。按

 关于错误继续
 做
 错误清除
 设置xclapp = GetObject(," Excel.Application")
 如果Err.Number = 0,则退出执行
 session.findById(" wnd [0]")。iconify
 'msgbox"等待Excel会话"
 wscript.sleep 2000
 session.findById(" wnd [0]")。maximize
 循环

 做
 错误清除
 设置xclwbk = xclapp.Workbooks.Item(myWorkbook)
 如果Err.Number = 0,则退出执行
 'msgbox"等待SAP工作簿"
 wscript.sleep 2000
 循环

 出错时转到0
 xclapp.Visible =真
 xclapp.DisplayAlerts = False
 xclapp.ActiveWorkbook.Close

 设置xclwbk = Nothing
 设置xclsheet = Nothing
 xclapp.Quit
 设置xclapp = Nothing

 

问候,

ScriptMan

昵称总是被占用
2楼-- · 2020-09-26 10:16

非常感谢ScriptMan。 :)代码在excel冻结之前一直运行良好,并提示"无响应"。

一周热门 更多>