import sys, win32com.client
import win32api, win32gui, win32con, win32ui, time, os, subprocess
def main():
sap_app = r"C:\Users\Public\SapGui\saplogon.exe" # 您的saplogon程序本地完整路径
subprocess.Popen(sap_app)
flt = 0
while flt == 0:
try:
hwnd = win32gui.FindWindow(None, "SAP Logon 740")
flt = win32gui.FindWindowEx(hwnd, None, "Edit", None)
except:
time.sleep(0.5)
win32gui.SendMessage(flt, win32con.WM_SETTEXT, None, 'prd')
win32gui.SendMessage(flt, win32con.WM_KEYDOWN, win32con.VK_RIGHT, 0)
win32gui.SendMessage(flt, win32con.WM_KEYUP, win32con.VK_RIGHT, 0)
time.sleep(3)
# 登录GUI界面
dlg = win32gui.FindWindowEx(hwnd, None, "Button", None)
win32gui.SendMessage(dlg, win32con.WM_LBUTTONDOWN, 0)
win32gui.SendMessage(dlg, win32con.WM_LBUTTONUP, 0)
SapGuiAuto = win32com.client.GetObject("SAPGUI")
# print(SapGuiAuto)
# print(type(SapGuiAuto))
if not type(SapGuiAuto) == win32com.client.CDispatch:
return
application = SapGuiAuto.GetScriptingEngine
if not type(application) == win32com.client.CDispatch:
SapGuiAuto = None
return
connection = application.Children(0)
if not type(connection) == win32com.client.CDispatch:
application = None
SapGuiAuto = None
return
time.sleep(2)
flag = 0
while flag == 0:
try:
session = connection.Children(0)
flag = 1
except:
time.sleep(0.5)
print('type session',type(session))
if not type(session) == win32com.client.CDispatch:
connection = None
application = None
SapGuiAuto = None
return
session.findById("wnd[0]").maximize()
session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "CMDMC"
session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "buyer123"
session.findById("wnd[0]/usr/pwdRSYST-BCODE").setFocus()
session.findById("wnd[0]/usr/pwdRSYST-BCODE").caretPosition = 8
session.findById("wnd[0]").sendVKey(0)
session.findById("wnd[1]/usr/radMULTI_LOGON_OPT2").select()
session.findById("wnd[1]/usr/radMULTI_LOGON_OPT2").setFocus()
session.findById("wnd[1]/tbar[0]/btn[0]").press()
session.findById("wnd[1]/usr/txtGS_OUT-ID").text = "H7106878"
session.findById("wnd[1]/usr/pwdGS_OUT-PW").text = "Foxconn12+"
session.findById("wnd[1]/usr/pwdGS_OUT-PW").setFocus()
session.findById("wnd[1]/usr/pwdGS_OUT-PW").caretPosition = 10
session.findById("wnd[1]/usr/btnLOGIN").press()
# 输入T-code
session.findById("wnd[0]/tbar[0]/okcd").text = "ZMM001"
# 输入查询参数
session.findById("wnd[0]").sendVKey(0)
session.findById("wnd[0]/usr/chkP_MSD2").selected = -1
session.findById("wnd[0]/usr/ctxtP_WERKS-LOW").text = "EPDV"
session.findById("wnd[0]/usr/ctxtP_BERID").text = "EPDV-H"
session.findById("wnd[0]/usr/ctxtP_DATE").text = "01/25/2021"
session.findById("wnd[0]/usr/ctxtP_VENDOR-LOW").text = "VCN0025587"
session.findById("wnd[0]/usr/txtP_WEEK").text = "30"
# 执行查询过程,导出查询结果
# session.findById("wnd[0]/usr/ctxtP_VENDOR-LOW").setFocus()
# session.findById("wnd[0]/usr/ctxtP_VENDOR-LOW").caretPosition = 10
#
# session.findById("wnd[0]/tbar[1]/btn[8]").press()
# session.findById("wnd[0]/mbar/menu[0]/menu[1]/menu[2]").select()
# session.findById("wnd[1]/usr/sub:SAPLSPO5:0101/radSPOPLI-SELFLAG[1,0]").select()
# session.findById("wnd[1]/usr/sub:SAPLSPO5:0101/radSPOPLI-SELFLAG[1,0]").setFocus()
# session.findById("wnd[1]/tbar[0]/btn[0]").press()
# session.findById("wnd[1]/usr/ctxtRLGRAP-FILENAME").text = r"C:\Users\H7113492\Documents\SAP\SAP GUI\vnc_epdv1.xls"
# session.findById("wnd[1]/usr/ctxtRLGRAP-FILENAME").caretPosition = 52
# session.findById("wnd[1]/tbar[0]/btn[0]").press()
# session.findById("wnd[0]/tbar[0]/btn[3]").press()
time.sleep(3)
# 关闭login
session.findById("wnd[0]/usr/chkP_MSD2").selected = -1
session.findById("wnd[0]").close()
session.findById("wnd[1]/usr/btnSPOP-OPTION1").press()
if __name__ == "__main__":
start = time.time()
for i in range(5):
main()
end = time.time()
print('Cost {} seconds'.format((end - start)))
sap 查询数据 未分离版本
最新推荐文章于 2023-05-15 09:01:26 发布