Python打开SAp登入输入账号密码后,输入查询未结工单后,输入选择项目后开始查询,把查询的内容下载到excel中
时间: 2024-04-29 16:23:09 浏览: 128
Python实现用户登录并且输入错误三次后锁定该用户
以下是Python代码示例,可以实现打开SAP登入后查询未结工单并将结果保存到Excel中:
```python
import win32com.client as win32
# 创建SAP对象
sap_gui = win32.GetObject("SAPGUI")
if not type(sap_gui) == win32.CDispatch:
raise Exception("SAPGUI连接失败")
# 获取SAP应用程序
application = sap_gui.GetScriptingEngine
if not type(application) == win32.CDispatch:
raise Exception("SAP应用程序连接失败")
# 打开SAP登入窗口
connection = application.OpenConnection("SAP Logon")
# 获取SAP登入窗口
session = connection.Children(0)
if not type(session) == win32.CDispatch:
raise Exception("SAP登入窗口连接失败")
# 输入账号密码登入
session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "用户名"
session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "密码"
session.findById("wnd[0]").sendVKey(0)
# 进入工单查询界面
session.findById("wnd[0]/tbar[0]/okcd").text = "/nIW28"
session.findById("wnd[0]").sendVKey(0)
# 输入查询条件,选择项目
session.findById("wnd[0]/usr/ctxtS_WERKS-LOW").text = "项目名称"
session.findById("wnd[0]/usr/txtS_AUFNR-LOW").text = "未结工单号"
session.findById("wnd[0]/usr/txtS_AUFNR-LOW").setFocus()
session.findById("wnd[0]/usr/txtS_AUFNR-LOW").caretPosition = 9
session.findById("wnd[0]/tbar[1]/btn[8]").press()
# 下载查询结果到Excel
session.findById("wnd[0]/tbar[1]/btn[45]").press()
session.findById("wnd[1]/usr/ctxtDY_PATH").text = "C:\\"
session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "未结工单.xlsx"
session.findById("wnd[1]/tbar[0]/btn[0]").press()
# 关闭SAP登入窗口
session.findById("wnd[0]/tbar[0]/btn[12]").press()
```
注意,以上代码仅供参考,具体操作需要根据实际情况进行调整。另外,需要安装pywin32模块才能正常运行以上代码。
阅读全文