erp软件操作是个繁琐至极的工作,也许能带来整体数据的优化,但操作十分死板和无聊,通过python中pyautogui和pyopenxl两个包,可以将操作部分实现自动化,平时只需要维护基础excel表格就可以,将如我这般的基础数据工作者,从繁琐工作中解放出来。
pyautogui模块十分简单易上手,主要功能有鼠标操纵,键盘操纵和一些机器视觉的东西。它不通过更改软件本身,而是外设的操作,相当于一个熟练操作软件的人,在不停地工作。
同样,pyopenxl同样容易上手,不同于vba极限操纵excel,只需要了解一点python操作表格基础就能直接将数据写入erp软件。
代码如下:怎么样很容易吧,erp就是点点点,不停的点。简单但是枯燥,上限是熟练度与手速,当你碰到一个不成熟的erp时,会让你痛苦不已的。
import pyautogui
import time
import openpyxl
#防错设定
pyautogui.PAUSE=2
pyautogui.FAILSAFE=True
pyautogui.click(163,334)#生产制造
pyautogui.click(337,164)#流程生产任务管理
pyautogui.doubleClick(559,203)#生产报告
#excel数据准备
wb=openpyxl.load_workbook(r'E:\UC\data.xlsx')
sheet=wb.get_sheet_by_name('Sheet1')
print(sheet.cell(2,1).value)
max_row = sheet.max_row
#循环读取数据和操作pyautogui操纵uc软件
for i in range(2,max_row):
pyautogui.click(156,135)#新增
pyautogui.click(185,203)#选择流程生产订单
pyautogui.click(1165,438)#制单日期向前推
pyautogui.doubleClick(1269,466)#向前推两个月日期
pyautogui.click(1340,441)#空点消除窗口
pyautogui.click(1165,624)#开工日期向前推
pyautogui.doubleClick(1269,651)#向前推两个月日期
pyautogui.click(1340,635)#空点消除窗口
pyautogui.click(1073,514)#产品编码
pyautogui.typewrite(sheet.cell(i,5).value)#输入单元格内编码
# pyautogui.hotkey('alt','y')#按下ALT+Y确定进入选单界面
pyautogui.click(1211,796)#备选方案确定
time.sleep(3)#选单慢等待3秒
#选单界面
pyautogui.click(579,321)#勾选第一个批次
# pyautogui.click(579,321)#再次勾选第一个批次
# pyautogui.typewrite(['enter'])#确定
pyautogui.click(1266,852)#备选方案
time.sleep(2)
#完工产出
pyautogui.doubleClick(941,336)#净完工数量生产数
pyautogui.typewrite(str(sheet.cell(i,6).value))#写入生产数
pyautogui.doubleClick(1032,333)#报废数量
pyautogui.typewrite(str(sheet.cell(i,7).value))#写入报废数
pyautogui.doubleClick(1115,333)#检废数量
pyautogui.typewrite(str(sheet.cell(i,8).value))#写入检废数
pyautogui.doubleClick(1300,334)#质量等级
pyautogui.typewrite('0101')
pyautogui.doubleClick(1416,335)#单件重量,平均重量
pyautogui.typewrite(str(sheet.cell(i,9).value))#重量填入
pyautogui.doubleClick(1550,336)#工作中心编码(机床)
pyautogui.typewrite(str(sheet.cell(i,3).value))#输入机床
pyautogui.doubleClick(1798,335)#生产部门编码
pyautogui.typewrite(str(sheet.cell(i,2).value))#输入班组代号
pyautogui.click(1297,242)#报产日期
pyautogui.typewrite(str(sheet.cell(i,1).value))#输入日期
pyautogui.click(139,135)#保存
pyautogui.click(689,136)#审批
time.sleep(2)#防错
#材料计算部分
pyautogui.click(243,292)#材料消耗
pyautogui.click(211,136)#修改
pyautogui.click(466,137)#计算耗用
pyautogui.doubleClick(1067,345)#发料仓库编码
pyautogui.typewrite('09')#一车间仓
pyautogui.click(1172,343)#空点确认
pyautogui.doubleClick(1066,368)#发料仓库编码
pyautogui.typewrite('09')#一车间仓
pyautogui.click(1190,367)#空点确认
pyautogui.click(570,136)#重量倒挤计算
pyautogui.click(1074,584)#确定
pyautogui.click(137,136)#保存
pyautogui.click(916,137)#耗用
#作业量维护
pyautogui.click(149,290)#完工产出
pyautogui.click(541,136)#单击
pyautogui.click(1406,281)#增行
pyautogui.doubleClick(658,378)#作业编码电费
pyautogui.typewrite('05')#电费代号
pyautogui.doubleClick(1039,333)#实际人数
pyautogui.typewrite(str(sheet.cell(i,10).value))
pyautogui.doubleClick(1038,357)#实际工时
pyautogui.typewrite(str(sheet.cell(i,11).value))#工时输入
pyautogui.doubleClick(1035,382)#实际电费
pyautogui.typewrite(str(sheet.cell(i,12).value))#输入电费
pyautogui.doubleClick(471,335)#生产部门
pyautogui.typewrite(str(sheet.cell(i,2).value))#输入生产部门
pyautogui.click(565,335)#空点确认
pyautogui.doubleClick(473,358)#生产部门
pyautogui.typewrite(str(sheet.cell(i,2).value))#输入生产部门
pyautogui.click(581,356)#空点确认
pyautogui.doubleClick(478,378)#生产部门
pyautogui.typewrite(str(sheet.cell(i,2).value))#输入生产部门
pyautogui.click(573,380)#空点确认
pyautogui.click(1133,334)#作业日期
pyautogui.typewrite(str(sheet.cell(i,1).value))#输入日期
pyautogui.click(1133,355)#作业日期
pyautogui.typewrite(str(sheet.cell(i,1).value))#输入日期
pyautogui.click(1133,380)#作业日期
pyautogui.typewrite(str(sheet.cell(i,1).value))#输入日期
pyautogui.click(136,137)#保存
pyautogui.click(516,101)#作业量维护关闭
#入库操作部分
pyautogui.click(871,137)#执行
pyautogui.click(881,174)#合格入库
time.sleep(2)#弹出界面耗时防错
pyautogui.doubleClick(1021,380)#入库仓库编码
pyautogui.typewrite(str(sheet.cell(i,13).value))#输入仓库代号01成品,02半成品
pyautogui.click(1120,376)#空点确认防错
pyautogui.click(1277,670)#确定
time.sleep(5)#等待5秒进入下次循环有时间纠错