利用sqlite3实现库存管理,用在和物料相关的可以看看,可以登记购买厂家,可以传入照片查看,时间,规格,名称,数量,以及备注信息,规格,名称,备注,不一样没法领用
代码包涵一张icon.ico图片
直接上代码
from tkinter import *
import tkinter.messagebox
import sqlite3
import os
import sys
import csv
import time
import socket
from tkinter import filedialog
from PIL import Image,ImageTk
class Main():
def __init__(self):
self.C_1()
self.list=[]
self.Shop=0
self.S=0
try:
self.root.destroy()
except:
pass
try:
self.A()
except:
tkinter.messagebox.showerror("涛:","出错了,请联系制作者,即将提示错误信息,请谨记!")
tkinter.messagebox.showerror("涛:",sys.exc_info())
def destroy(self):
try:
self.root.destroy()
except:
pass
def A(self):
self.root=Tk()
self.root.title("CR多功能管理系统")
self.root.geometry('460x200+700+250')
mainmenu = Menu(self.root)
mainmenu.add_command(label="退出",command=self.destroy)
mainmenu.add_command(label="导出记录",command=self.Dc)
self.root.config(menu = mainmenu)
self.root.iconbitmap('.\\icon.ico')
self.root.minsize(460,150)
self.root.maxsize(460,150)
we = Label(self.root,text='欢迎使用',font=("微软雅黑",18),fg="grey")
we.grid(row=0,column=0 )
welcome = Label(self.root,text='"CR多功能管理系统"',font=("微软雅黑",20),fg="grey")
welcome.grid(row=2 ,column=5)
Text = Label(self.root,text="Version:1.0",font=("微软雅黑",11),fg="red")
Text.grid(row=3,column=7)
button1=Button(self.root,text = "材料处理",command=self.B)
button1.place(x=40,y=105)
button2=Button(self.root,text = "材料查询",command=self.C)
button2.place(x=200,y=105)
button3=Button(self.root,text = "辅助功能",command=self.D)
button3.place(x=380,y=105)
self.root.mainloop()
def B(self):
self.destroy()
self.root=Tk()
mainmenu = Menu(self.root)
mainmenu.add_command(label="返回主页面",command=self.__init__)
mainmenu.add_command(label="退出",command=self.destroy)
self.root.config(menu = mainmenu)
self.root.iconbitmap('.\\icon.ico')
self.root.title("CR多功能管理系统-材料处理")
self.root.geometry('420x170+700+250')
self.root.minsize(420,190)
self.root.maxsize(420,190)
label1 = Label(self.root,text="请输入申请材料:",font=("微软雅黑",15))
label1.place(x=0,y=0)
self.entry1=Entry(self.root,font=("微软雅黑",15))
self.entry1.place(x=165,y=0)
label2 = Label(self.root,text="请输入材料规格:",font=("微软雅黑",15))
label2.place(x=0,y=40)
self.entry2=Entry(self.root,font=("微软雅黑",15))
self.entry2.place(x=165,y=40)
label3 = Label(self.root,text="请输入材料数量:",font=("微软雅黑",15))
label3.place(x=0,y=80)
self.entry3=Entry(self.root,font=("微软雅黑",15))
self.entry3.place(x=165,y=80)
label4 = Label(self.root,text="备注信息Remarks:",font=("微软雅黑",15))
label4.place(x=0,y=120)
self.entry4=Entry(self.root,font=("微软雅黑",15))
self.entry4.place(x=165,y=120)
button1=Button(self.root,text="申请",command=self.SQ)
button1.place(x=130,y=160)
mainmenu = Menu(self.root)
button1=Button(self.root,text="领取",command=self.LQ)
button1.place(x=210,y=160)
self.root.mainloop()
def D(self):
self.destroy()
self.CJ()
self.S=0
self.root=Tk()
mainmenu = Menu(self.root)
mainmenu.add_command(label="返回主页面",command=self.__init__)
mainmenu.add_command(label="物料图片",command=self.E)
mainmenu.add_command(label="退出",command=self.destroy)
mainmenu.add_command(label="导出全物料信息",command=self.BOM_Dc)
mainmenu.add_command(label="帮助点这里",command=self.BOM_BZ)
self.root.config(menu = mainmenu)
self.root.iconbitmap('.\\icon.ico')
self.root.title("CR多功能管理系统-辅助功能")
self.root.geometry('420x170+700+250')
self.root.minsize(380,320)
self.root.maxsize(380,320)
label01 = Label(self.root,text="物料名称:",font=("微软雅黑",15))
label01.place(x=0,y=0)
self.entry01=Entry(self.root,font=("微软雅黑",15))
self.entry01.place(x=115,y=0)
label02 = Label(self.root,text="物料规格:",font=("微软雅黑",15))
label02.place(x=0,y=40)
self.entry02=Entry(self.root,font=("微软雅黑",15))
self.entry02.place(x=115,y=40)
label03 = Label(self.root,text="是否网购:",font=("微软雅黑",15))
label03.place(x=0,y=80)
CheckVar1 = IntVar()
C1 = Checkbutton(self.root, text = "否", variable = CheckVar1,onvalue = 1,offvalue=1,command=self.shop_F)
C1.place(x=115,y=85)
C2 = Checkbutton(self.root, text = "是", variable = CheckVar1,onvalue = 2,offvalue=2,command=self.shop_T)
C2.place(x=155,y=85)
CheckVar1.set(1)
label04 = Label(self.root,text="购买平台:",font=("微软雅黑",15))
label04.place(x=0,y=120)
self.entry04=Entry(self.root,font=("微软雅黑",15),state='disabled')
self.entry04.place(x=115,y=120)
label05 = Label(self.root,text=" 店铺名:",font=("微软雅黑",15))
label05.place(x=0,y=160)
self.entry05=Entry(self.root,font=("微软雅黑",15),state='disabled')
self.entry05.place(x=115,y=160)
label06 = Label(self.root,text=" 链接:",font=("微软雅黑",15))
label06.place(x=0,y=200)
self.entry06=Entry(self.root,font=("微软雅黑",15),state='disabled')
self.entry06.place(x=115,y=200)
label07 = Label(self.root,text="选择照片:",font=("微软雅黑",15))
label07.place(x=0,y=240)
button1=Button(self.root,text="浏览",command=self.Liu)
button1.place(x=120,y=240)
self.entry07=Entry(self.root,font=("微软雅黑",15),width=15,state='disabled')
self.entry07.place(x=175,y=240)
button1=Button(self.root,text="图片变更",command=self.BOM_P)
button1.place(x=45,y=280)
button1=Button(self.root,text="资料登记",command=self.BOM_DJ)
button1.place(x=120,y=280)
button1=Button(self.root,text="取消登记",command=self.BOM_QX)
button1.place(x=200,y=280)
mainmenu = Menu(self.root)
self.root.mainloop()
def BOM_P(self):
self.CJ()
if self.entry01.get()=='':
tkinter.messagebox.showerror("涛:","请输入料件名称")
return
if self.entry02.get()=='':
tkinter.messagebox.showerror("涛:","请输入料件规格")
return
conn = sqlite3.connect("BOM.db")
cu=conn.cursor()
cu.execute('select * from BOM where Name="%s" and GuiGe="%s"'%(str(self.entry01.get()),str(self.entry02.get())))
E=cu.fetchall()
conn.commit()
conn.close
if E==[]:
tkinter.messagebox.showerror("涛:","这个物料还没有登记过!")
return
if E[0][6]!=[]:
try:
f=open(self.path,'rb')
Photoshop=f.read()
f.close
for i in range(len(self.path)):
if self.path[i]=='.':
path_n=i
path_number=int(i)
while True:
if path_number<len(self.path):
if path_number==path_n:
N=self.path[path_number]
path_number=path_number+1
else:
N=str(N)+self.path[path_number]
path_number=path_number+1
else:
break
L="./BOM/"+str(E[0][0])+str(N)
if os.path.exists('./BOM/'):
pass
else:
os.makedirs('./BOM/')
f=open(L,'wb')
f.write(Photoshop)
f.close
except:
L='暂时没有照片'
conn = sqlite3.connect("BOM.db")
cu=conn.cursor()
cu.execute('Update BOM set Photoshop="%s" where Name="%s" and GuiGe="%s"'%(L,E[0][1],E[0][2]))
conn.commit()
conn.close
self.path=0
self.S=0
tkinter.messagebox.showinfo("涛:","名称:"+str(E[0][1])+"规格:"+str(E[0][2])+",图片已经更新")
def BOM_BZ(self):
tkinter.messagebox.showinfo("涛:","料件名称和规格请不要输入特殊符号")
def BOM_Dc(self):
self.JL()
conn = sqlite3.connect("BOM.db")
cu=conn.cursor()
cu.execute('select * from BOM')
Q=cu.fetchall()
conn.commit()
U=0
try:
f = open(r'物料信息.csv','w',encoding='GB2312',newline='' "")
wt=csv.writer(f)
T=range(len(Q))[-1]+1
while True:
if U < T:
if U == 0:
wt.writerow(['编号ID','物料名称','物料规格','是否网购','网购平台','店铺名称','链接','照片路径'])
wt.writerow([Q[U][0],Q[U][1],[Q[U][2]],Q[U][3],Q[U][4],Q[U][5],Q[U][6],Q[U][7]])
else:
wt.writerow([Q[U][0],Q[U][1],[Q[U][2]],Q[U][3],Q[U][4],Q[U][5],Q[U][6],Q[U][7]])
U=U+1
elif U >= T:
tkinter.messagebox.showinfo("涛:","已经导出文件'物料信息.csv',在软件根目录下")
break
except:
tkinter.messagebox.showerror("涛:","出错了,请联系制作者,即将提示错误信息,请谨记!")
tkinter.messagebox.showerror("涛:",sys.exc_info())
def BOM_QX(self):
self.CJ()
if self.entry01.get()=='':
tkinter.messagebox.showerror("涛:","请输入料件名称")
return
if self.entry02.get()=='':
tkinter.messagebox.showerror("涛:","请输入料件规格")
return
conn = sqlite3.connect("BOM.db")
cu=conn.cursor()
cu.execute('select * from BOM where Name="%s" and GuiGe="%s"'%(str(self.entry01.get()),str(self.entry02.get())))
E=cu.fetchall()
conn.commit()
conn.close
if E==[]:
tkinter.messagebox.showerror("涛:","这个物料还没有登记过!")
return
conn = sqlite3.connect("BOM.db")
cu=conn.cursor()
cu.execute('DELETE FROM BOM WHERE Name=\"%s\" and GuiGe=\"%s\"'%(str(self.entry01.get()),str(self.entry02.get())))
conn.commit()
conn.close
try:
os.remove(E[0][7])
except:
pass
tkinter.messagebox.showinfo("涛:","取消登记成功")
def BOM_DJ(self):
self.CJ()
self.info=0
if self.entry01.get()=='':
tkinter.messagebox.showerror("涛:","请输入料件名称")
return
if self.entry02.get()=='':
tkinter.messagebox.showerror("涛:","请输入料件规格")
return
if self.Shop==0:
shop='否'
Terrace='未网购'
Store='未网购'
Link='未网购'
else:
shop='是'
if self.entry04.get()=='':
tkinter.messagebox.showerror("涛:","请输入平台名称")
return
if self.entry05.get()=='':
tkinter.messagebox.showerror("涛:","请输入购买店铺")
return
if self.entry06.get()=='':
tkinter.messagebox.showerror("涛:","请输入购买链接")
return
Terrace=self.entry04.get()
Store=self.entry05.get()
Link=self.entry06.get()
conn = sqlite3.connect("BOM.db")
cu=conn.cursor()
cu.execute('select * from BOM where Name="%s" and GuiGe="%s"'%(str(self.entry01.get()),str(self.entry02.get())))
E=cu.fetchall()
conn.commit()
if E!=[]:
tkinter.messagebox.showerror("涛:","已经有过登记内容")
return
try:
conn = sqlite3.connect("BOM.db")
cu=conn.cursor()
cu.execute('select * from BOM')
E=cu.fetchall()
conn.commit()
N=[]
for i in range(len(E)):
N.append(int(E[i][0]))
number=max(N)+1
except:
number=1
try:
f=open(self.path,'rb')
Photoshop=f.read()
f.close
for i in range(len(self.path)):
if self.path[i]=='.':
path_n=i
path_number=int(i)
while True:
if path_number<len(self.path):
if path_number==path_n:
N=self.path[path_number]
path_number=path_number+1
else:
N=str(N)+self.path[path_number]
path_number=path_number+1
else:
break
L="./BOM/"+str(number)+str(N)
if os.path.exists('./BOM/'):
pass
else:
os.makedirs('./BOM/')
f=open(L,'wb')
f.write(Photoshop)
f.close
except:
L='暂时没有照片'
conn = sqlite3.connect('BOM.db')
cursor = conn.cursor()
sq='INSERT INTO BOM (ID,Name,GuiGe,Show,Terrace,Store,Link,Photoshop) VALUES ("%s","%s","%s","%s","%s","%s","%s","%s")'%(number,self.entry01.get(),self.entry02.get(),shop,Terrace,Store,Link,L)
cursor.execute(sq)
conn.commit()
cursor.close
self.path=0
self.S=0
self.Shop=0
self.entry04['state']='normal'
self.entry04.delete(0,END)
if self.Shop==0:
self.entry04['state']='disabled'
self.entry05['state']='normal'
self.entry05.delete(0,END)
if self.Shop==0:
self.entry05['state']='disabled'
self.entry06['state']='normal'
self.entry06.delete(0,END)
if self.Shop==0:
self.entry06['state']='disabled'
self.entry07['state']='normal'
self.entry07.delete(0,END)
self.entry07['state']='disabled'
tkinter.messagebox.showinfo("涛:","登记成功")
def Liu(self):
if self.S != 0:
if tkinter.messagebox.askokcancel("涛:","已经选过图片文件,是否重新选择") == False:
return
root = Tk()
root.title("涛涛正在选取文件,别打扰")
root.withdraw()
self.path = filedialog.askopenfilename()
number=0
for i in range(len(self.path)):
i=i-i-i
if i != 0:
if self.path[i] != '/':
if i < number:
number=i
elif self.path[i] == '/':
break
self.S=''
N=number-number-number
for i in range(N):
if str(self.S)=='':
self.S=str(self.path[number])
number=number+1
else:
self.S=str(self.S)+str(self.path[number])
number=number+1
self.entry07['state']='normal'
self.entry07.delete(0,END)
self.entry07.insert(0,self.S)
self.entry07['state']='disabled'
def shop_F(self):
self.entry04['state']='disabled'
self.entry05['state']='disabled'
self.entry06['state']='disabled'
self.Shop=0
def shop_T(self):
self.entry04['state']='normal'
self.entry05['state']='normal'
self.entry06['state']='normal'
self.Shop=1
def E(self):
if self.entry01.get()!='':
N=self.entry01.get()
if self.entry02.get()!='':
G=self.entry02.get()
conn = sqlite3.connect("BOM.db")
cu=conn.cursor()
cu.execute('select * from BOM where Name="%s" and GuiGe="%s"'%(N,G))
E=cu.fetchall()
conn.commit()
if E==[]:
tkinter.messagebox.showerror("涛:","输入的物料没有查询到")
return
if E[0][7]=='暂时没有照片':
tkinter.messagebox.showerror("涛:","输入的物料没有照片哦")
return
L=E[0][7]
self.destroy()
self.root=Tk()
mainmenu = Menu(self.root)
mainmenu.add_command(label="返回主页面",command=self.__init__)
mainmenu.add_command(label="返回上个页面",command=self.D)
mainmenu.add_command(label="退出",command=self.destroy)
mainmenu.add_command(label="此物料信息",command=self.BOM_Info)
self.info=E[0]
self.root.config(menu = mainmenu)
self.root.iconbitmap('.\\icon.ico')
self.root.title("CR多功能管理系统-辅助功能-物料图片")
self.root.geometry('800x600')
self.root.minsize(1000,800)
self.root.maxsize(1000,800)
try:
self.canvas_root = tkinter.Canvas(self.root,width=1000,height=800)
self.im_root= self.get_image(L,900,700)
self.canvas_root.create_image(500,300,image=self.im_root)
self.canvas_root.place(x=0,y=0)
txt='名称:'+E[0][1]+' 规格:'+E[0][2]+' 是否网购:'+E[0][3]
txt1='购买平台:'+E[0][4]+' 店铺名:'+E[0][5]+' 链接:'+E[0][6]
label1 = Label(self.root,text=txt,font=("微软雅黑",28))
label1.place(x=0,y=690)
label2= Label(self.root,text=txt1,font=("微软雅黑",20))
label2.place(x=0,y=750)
except:
tkinter.messagebox.showerror("涛:","输入的物料的照片已经被异动过了,可能被删除或者重名!")
return
self.root.mainloop()
else:
tkinter.messagebox.showerror("涛:","请输入物料规格!")
else:
tkinter.messagebox.showerror("涛:","请输入物料名称!")
def BOM_Info(self):
I=self.info[0]
n=self.info[1]
g=self.info[2]
w=self.info[3]
p=self.info[4]
d=self.info[5]
l=self.info[6]
tkinter.messagebox.showinfo("涛:",'编号ID: '+I+'\n'+'名称:'+n+' 规格:'+g+'\n'+'是否网购:'+w+' 购买平台:'+p+' 店铺名:'+d+' 链接:'+l)
def get_image(self,filename,width,height):#变更图片尺寸
im = Image.open(filename).resize((width,height))
return ImageTk.PhotoImage(im)
def C(self):
self.destroy()
self.root=Tk()
mainmenu = Menu(self.root)
mainmenu.add_command(label="返回主页面",command=self.__init__)
mainmenu.add_command(label="退出",command=self.destroy)
self.root.config(menu = mainmenu)
self.root.iconbitmap('.\\icon.ico')
self.root.title("CR多功能管理系统-材料查询")
self.root.geometry('965x250+400+150')
self.root.minsize(965,250)
self.root.maxsize(965,250)
label1 = Label(self.root,text="时间",font=("微软雅黑",15))
label1.place(x=100,y=0)
label2 = Label(self.root,text="名称",font=("微软雅黑",15))
label2.place(x=285,y=0)
label3 = Label(self.root,text="规格",font=("微软雅黑",15))
label3.place(x=470,y=0)
label4 = Label(self.root,text="数量",font=("微软雅黑",15))
label4.place(x=655,y=0)
label5 = Label(self.root,text="备注",font=("微软雅黑",15))
label5.place(x=840,y=0)
label1 = Label(self.root,text="1",font=("微软雅黑",15))
label1.place(x=7,y=30)
label1 = Label(self.root,text="2",font=("微软雅黑",15))
label1.place(x=7,y=65)
label1 = Label(self.root,text="3",font=("微软雅黑",15))
label1.place(x=7,y=100)
label1 = Label(self.root,text="4",font=("微软雅黑",15))
label1.place(x=7,y=135)
label1 = Label(self.root,text="5",font=("微软雅黑",15))
label1.place(x=7,y=170)
label15 = Label(self.root,text="/",font=("微软雅黑",26))
label15.place(x=800,y=192)
self.entry11=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry11.place(x=35,y=30)
self.entry12=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry12.place(x=220,y=30)
self.entry13=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry13.place(x=405,y=30)
self.entry14=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry14.place(x=590,y=30)
self.entry15=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry15.place(x=775,y=30)
self.entry21=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry21.place(x=35,y=65)
self.entry22=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry22.place(x=220,y=65)
self.entry23=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry23.place(x=405,y=65)
self.entry24=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry24.place(x=590,y=65)
self.entry25=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry25.place(x=775,y=65)
self.entry31=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry31.place(x=35,y=100)
self.entry32=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry32.place(x=220,y=100)
self.entry33=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry33.place(x=405,y=100)
self.entry34=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry34.place(x=590,y=100)
self.entry35=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry35.place(x=775,y=100)
self.entry41=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry41.place(x=35,y=135)
self.entry42=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry42.place(x=220,y=135)
self.entry43=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry43.place(x=405,y=135)
self.entry44=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry44.place(x=590,y=135)
self.entry45=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry45.place(x=775,y=135)
self.entry51=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry51.place(x=35,y=170)
self.entry52=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry52.place(x=220,y=170)
self.entry53=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry53.place(x=405,y=170)
self.entry54=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry54.place(x=590,y=170)
self.entry55=Entry(self.root,font=("微软雅黑",15),width=15,justify='center',state = "disabled")
self.entry55.place(x=775,y=170)
self.CheckVar1 = IntVar()
C1 = Checkbutton(self.root, text = "全数据读取", variable = self.CheckVar1,onvalue = 1,offvalue=1,command=self.C_1)
C1.place(x=35,y=208)
C2 = Checkbutton(self.root, text = "名称", variable = self.CheckVar1,onvalue = 2,offvalue=2,command=self.C_2)
C2.place(x=125,y=208)
C3 = Checkbutton(self.root, text = "时间", variable = self.CheckVar1,onvalue = 3,offvalue=3,command=self.C_3)
C3.place(x=245,y=208)
C4 = Checkbutton(self.root, text = "备注", variable = self.CheckVar1,onvalue = 4,offvalue=4,command=self.C_4)
C4.place(x=305,y=208)
self.CheckVar1.set(1)
self.CheckVar2 = IntVar()
C2_1 = Checkbutton(self.root, text = "规格", variable = self.CheckVar2,onvalue = 1,offvalue=0,command=self.C_5)
C2_1.place(x=185,y=208)
label6 = Label(self.root,text="查询输入",font=("微软雅黑",15))
label6.place(x=365,y=205)
self.entry00=Entry(self.root,font=("微软雅黑",15),width=15,justify='center')
self.entry00.place(x=455,y=205)
button1=Button(self.root,text="读取",command=self.dq)
button1.place(x=650,y=205)
button1=Button(self.root,text="上一页",command=self.ye_s)
button1.place(x=700,y=205)
self.entry01=Entry(self.root,font=("微软雅黑",15),width=3,justify='center',state = "disabled")
self.entry01.place(x=760,y=205)
self.entry02=Entry(self.root,font=("微软雅黑",15),width=3,justify='center',state = "disabled")
self.entry02.place(x=830,y=205)
button1=Button(self.root,text="下一页",command=self.ye_x)
button1.place(x=880,y=205)
self.root.mainloop()
def C_1(self):
self.C_list='全数据'
try:
if self.CheckVar2.get() == 1:
self.CheckVar2.set(0)
except(AttributeError):
pass
def C_2(self):
self.C_list='名称'
def C_3(self):
self.C_list='时间'
if self.CheckVar2.get() == 1:
self.CheckVar2.set(0)
def C_4(self):
self.C_list='备注'
if self.CheckVar2.get() == 1:
self.CheckVar2.set(0)
def C_5(self):
self.CheckVar1.set(2)
if self.CheckVar2.get() != 1:
self.CheckVar2.trace_info
if self.CheckVar2.get() == 1:
self.C_list='规格'
if self.CheckVar2.get() == 0:
self.C_list='名称'
def dq(self):
self.CJ()
self.list=[]
if self.C_list=='全数据':
conn = sqlite3.connect("test.db")
cu=conn.cursor()
cu.execute('select * from Student')
Q=cu.fetchall()
cu.close
T=range(len(Q))[-1]+1
for i in range(T):
self.list.append(Q[i])
self.P=0
self.dq_w()
elif self.C_list=='名称':
conn = sqlite3.connect("test.db")
cu=conn.cursor()
J=self.entry00.get()
cu.execute('select * from Student where Name like \"%s\"'%('%'+J+'%'))
Q=cu.fetchall()
cu.close
if Q==[]:
tkinter.messagebox.showerror("涛:","没有查询到相关数据")
return
T=range(len(Q))[-1]+1
for i in range(T):
self.list.append(Q[i])
self.P=0
self.dq_w()
elif self.C_list=='时间':
conn = sqlite3.connect("test.db")
cu=conn.cursor()
J=self.entry00.get()
cu.execute('select * from Student where Time like \"%s\"'%('%'+J+'%'))
Q=cu.fetchall()
cu.close
if Q==[]:
tkinter.messagebox.showerror("涛:","没有查询到相关数据")
return
T=range(len(Q))[-1]+1
for i in range(T):
self.list.append(Q[i])
self.P=0
self.dq_w()
elif self.C_list=='备注':
conn = sqlite3.connect("test.db")
cu=conn.cursor()
J=self.entry00.get()
cu.execute('select * from Student where Remark like \"%s\"'%('%'+J+'%'))
Q=cu.fetchall()
cu.close
if Q==[]:
tkinter.messagebox.showerror("涛:","没有查询到相关数据")
return
T=range(len(Q))[-1]+1
for i in range(T):
self.list.append(Q[i])
self.P=0
self.dq_w()
elif self.C_list=='规格':
J=self.entry00.get()
if '&' not in J:
tkinter.messagebox.showerror("涛:","请确认输入格式是否正确,格式(名称&规格)")
return
TM=0
J_mc=''
J_gg=''
for i in range(len(J)):
if str(J[i]) == '&':
TM=1
if TM==0:
J_mc=J_mc+J[i]
if TM==1:
if J[i]=='&':
pass
else:
J_gg=J_gg+J[i]
conn = sqlite3.connect("test.db")
cu=conn.cursor()
cu.execute('select * from Student where Name like \"%s\" and GuiGe like \"%s\"'%('%'+J_mc+'%','%'+J_gg+'%'))
Q=cu.fetchall()
cu.close
if Q==[]:
tkinter.messagebox.showerror("涛:","没有查询到相关数据")
return
T=range(len(Q))[-1]+1
for i in range(T):
self.list.append(Q[i])
self.P=0
self.dq_w()
else:
print('slef.C_list='+self.C_list)
def ye_x(self):
if self.list==[]:
tkinter.messagebox.showerror("涛:","没有读取数据")
return
self.P=self.P+5
self.dq_w()
def ye_s(self):
if self.list==[]:
tkinter.messagebox.showerror("涛:","没有读取数据")
return
self.P=self.P-5
self.dq_w()
def dq_w(self):
self.sx()
number=0
for i in range(len(self.list)):
number=number+1
M=N=number/5
if '.2' in str(M):
M=M+1
if '.4' in str(M):
M=M+1
if '.6' in str(M):
M=M+1
if '.8' in str(M):
M=M+1
self.entry02['state'] = 'normal'
self.entry02.delete(0,END)
self.entry02.insert(0,int(M))
self.entry02['state'] = 'disabled'
K=int(self.P/5)+1
self.entry01['state'] = 'normal'
self.entry01.delete(0,END)
self.entry01.insert(0,K)
self.entry01['state'] = 'disabled'
while N > 1:
N=N-1
if self.P<0:
tkinter.messagebox.showerror("涛:","页数不正确")
self.P=0
self.dq_w()
try:
TXT=self.list[self.P][0]
except(IndexError):
tkinter.messagebox.showerror("涛:","页数不正确")
self.dq()
return
self.entry11['state'] = 'normal'
self.entry11.delete(0,END)
self.entry11.insert(0,self.list[self.P][0])
self.entry11['state'] = 'disabled'
self.entry12['state'] = 'normal'
self.entry12.delete(0,END)
self.entry12.insert(0,self.list[self.P][1])
self.entry12['state'] = 'disabled'
self.entry13['state'] = 'normal'
self.entry13.delete(0,END)
self.entry13.insert(0,self.list[self.P][2])
self.entry13['state'] = 'disabled'
self.entry14['state'] = 'normal'
self.entry14.delete(0,END)
self.entry14.insert(0,self.list[self.P][3])
self.entry14['state'] = 'disabled'
self.entry15['state'] = 'normal'
self.entry15.delete(0,END)
self.entry15.insert(0,self.list[self.P][4])
self.entry15['state'] = 'disabled'
self.entry15.delete(0,END)
try:
self.entry21['state'] = 'normal'
self.entry21.delete(0,END)
self.entry21.insert(0,self.list[self.P+1][0])
self.entry21['state'] = 'disabled'
self.entry22['state'] = 'normal'
self.entry22.delete(0,END)
self.entry22.insert(0,self.list[self.P+1][1])
self.entry22['state'] = 'disabled'
self.entry23['state'] = 'normal'
self.entry23.delete(0,END)
self.entry23.insert(0,self.list[self.P+1][2])
self.entry23['state'] = 'disabled'
self.entry24['state'] = 'normal'
self.entry24.delete(0,END)
self.entry24.insert(0,self.list[self.P+1][3])
self.entry24['state'] = 'disabled'
self.entry25['state'] = 'normal'
self.entry25.delete(0,END)
self.entry25.insert(0,self.list[self.P+1][4])
self.entry25['state'] = 'disabled'
except(IndexError):
self.entry21['state'] = 'normal'
self.entry21.delete(0,END)
self.entry21['state'] = 'disabled'
self.entry22['state'] = 'normal'
self.entry22.delete(0,END)
self.entry22['state'] = 'disabled'
self.entry23['state'] = 'normal'
self.entry23.delete(0,END)
self.entry23['state'] = 'disabled'
self.entry24['state'] = 'normal'
self.entry24.delete(0,END)
self.entry24['state'] = 'disabled'
self.entry25['state'] = 'normal'
self.entry25.delete(0,END)
self.entry25['state'] = 'disabled'
try:
self.entry31['state'] = 'normal'
self.entry31.delete(0,END)
self.entry31.insert(0,self.list[self.P+2][0])
self.entry31['state'] = 'disabled'
self.entry32['state'] = 'normal'
self.entry32.delete(0,END)
self.entry32.insert(0,self.list[self.P+2][1])
self.entry32['state'] = 'disabled'
self.entry33['state'] = 'normal'
self.entry33.delete(0,END)
self.entry33.insert(0,self.list[self.P+2][2])
self.entry33['state'] = 'disabled'
self.entry34['state'] = 'normal'
self.entry34.delete(0,END)
self.entry34.insert(0,self.list[self.P+2][3])
self.entry34['state'] = 'disabled'
self.entry35['state'] = 'normal'
self.entry35.delete(0,END)
self.entry35.insert(0,self.list[self.P+2][4])
self.entry35['state'] = 'disabled'
except(IndexError):
self.entry31['state'] = 'normal'
self.entry31.delete(0,END)
self.entry31['state'] = 'disabled'
self.entry32['state'] = 'normal'
self.entry32.delete(0,END)
self.entry32['state'] = 'disabled'
self.entry33['state'] = 'normal'
self.entry33.delete(0,END)
self.entry33['state'] = 'disabled'
self.entry34['state'] = 'normal'
self.entry34.delete(0,END)
self.entry34['state'] = 'disabled'
self.entry35['state'] = 'normal'
self.entry35.delete(0,END)
self.entry35['state'] = 'disabled'
try:
self.entry41['state'] = 'normal'
self.entry41.delete(0,END)
self.entry41.insert(0,self.list[self.P+3][0])
self.entry41['state'] = 'disabled'
self.entry42['state'] = 'normal'
self.entry42.delete(0,END)
self.entry42.insert(0,self.list[self.P+3][1])
self.entry42['state'] = 'disabled'
self.entry43['state'] = 'normal'
self.entry43.delete(0,END)
self.entry43.insert(0,self.list[self.P+3][2])
self.entry43['state'] = 'disabled'
self.entry44['state'] = 'normal'
self.entry44.delete(0,END)
self.entry44.insert(0,self.list[self.P+3][3])
self.entry44['state'] = 'disabled'
self.entry45['state'] = 'normal'
self.entry45.delete(0,END)
self.entry45.insert(0,self.list[self.P+3][4])
self.entry45['state'] = 'disabled'
except(IndexError):
self.entry41['state'] = 'normal'
self.entry41.delete(0,END)
self.entry41['state'] = 'disabled'
self.entry42['state'] = 'normal'
self.entry42.delete(0,END)
self.entry42['state'] = 'disabled'
self.entry43['state'] = 'normal'
self.entry43.delete(0,END)
self.entry43['state'] = 'disabled'
self.entry44['state'] = 'normal'
self.entry44.delete(0,END)
self.entry44['state'] = 'disabled'
self.entry45['state'] = 'normal'
self.entry45.delete(0,END)
self.entry45['state'] = 'disabled'
try:
self.entry51['state'] = 'normal'
self.entry51.delete(0,END)
self.entry51.insert(0,self.list[self.P+4][0])
self.entry51['state'] = 'disabled'
self.entry52['state'] = 'normal'
self.entry52.delete(0,END)
self.entry52.insert(0,self.list[self.P+4][1])
self.entry52['state'] = 'disabled'
self.entry53['state'] = 'normal'
self.entry53.delete(0,END)
self.entry53.insert(0,self.list[self.P+4][2])
self.entry53['state'] = 'disabled'
self.entry54['state'] = 'normal'
self.entry54.delete(0,END)
self.entry54.insert(0,self.list[self.P+4][3])
self.entry54['state'] = 'disabled'
self.entry55['state'] = 'normal'
self.entry55.delete(0,END)
self.entry55.insert(0,self.list[self.P+4][4])
self.entry55['state'] = 'disabled'
except(IndexError):
self.entry51['state'] = 'normal'
self.entry51.delete(0,END)
self.entry51['state'] = 'disabled'
self.entry52['state'] = 'normal'
self.entry52.delete(0,END)
self.entry52['state'] = 'disabled'
self.entry53['state'] = 'normal'
self.entry53.delete(0,END)
self.entry53['state'] = 'disabled'
self.entry54['state'] = 'normal'
self.entry54.delete(0,END)
self.entry54['state'] = 'disabled'
self.entry55['state'] = 'normal'
self.entry55.delete(0,END)
self.entry55['state'] = 'disabled'
def sx(self):
self.entry11.delete(0,END)
self.entry12.delete(0,END)
self.entry13.delete(0,END)
self.entry14.delete(0,END)
self.entry15.delete(0,END)
self.entry21.delete(0,END)
self.entry22.delete(0,END)
self.entry23.delete(0,END)
self.entry24.delete(0,END)
self.entry25.delete(0,END)
self.entry31.delete(0,END)
self.entry32.delete(0,END)
self.entry33.delete(0,END)
self.entry34.delete(0,END)
self.entry35.delete(0,END)
self.entry41.delete(0,END)
self.entry42.delete(0,END)
self.entry43.delete(0,END)
self.entry44.delete(0,END)
self.entry45.delete(0,END)
self.entry51.delete(0,END)
self.entry52.delete(0,END)
self.entry53.delete(0,END)
self.entry54.delete(0,END)
self.entry55.delete(0,END)
def CJ(self):
if os.path.exists("test.db"):
pass
else:
conn = sqlite3.connect('test.db')
cursor = conn.cursor()
sql = 'CREATE TABLE Student(Time TEXT NOT NULL,Name TEXT NOT NULL, GuiGe TEXT,Number INT Number NOT NULL,Remark TEXT)'
cursor.execute(sql)
conn.commit()
cursor.close
if os.path.exists("BOM.db"):
pass
else:
conn = sqlite3.connect('BOM.db')
cursor = conn.cursor()
sql = 'CREATE TABLE BOM(ID TEXT NOT NULL,Name TEXT NOT NULL,GuiGe TEXT NOT NULL, Show TEXT,Terrace TEXT,Store TEXT,Link TXET,Photoshop TEXT)'
cursor.execute(sql)
conn.commit()
cursor.close
print('BOM已经创建')
print(sql)
def SQBJ(self):
conn = sqlite3.connect("test.db")
cu=conn.cursor()
cu.execute('select * from Student')
Q=cu.fetchall()
conn.commit()
U=-1
i=self.entry1.get()
n=self.entry2.get()
r=self.entry3.get()
R=self.entry4.get()
self.number1 = ''
self.Time1=time.strftime('%y-%m-%d')
self.SQBJ_number=0
try:
T=range(len(Q))[-1]+1
while True:
U=U+1
if U < T:
if Q[U][0] == self.Time1:
if Q[U][1] == str(i):
if Q[U][2] == str(n):
if Q[U][4] == str(R):
self.number1 = int(Q[U][3])+int(r)
self.Time1=Q[U][0]
cu.execute('DELETE FROM Student WHERE Name=\"%s\" and GuiGe=\"%s\" and Remark=\"%s\"'%(i,n,R))
conn.commit()
self.SQBJ_number=int(Q[U][3])
else:
break
except:
pass
conn.close
def LQBJ(self):
conn = sqlite3.connect("test.db")#连接数据库
cu=conn.cursor()#获取游标
cu.execute('select * from Student')#执行查询
Q=cu.fetchall()#获取查询记录
conn.commit()#提交,也可以不提交
conn.close
U=-1#定义一个U
i=self.entry1.get()#获取材料名
n=self.entry2.get()#获取材料规格
r=self.entry3.get()#获取材料数量
R=self.entry4.get()#获取材料备注
self.number1 = ''#定义材料最终数量
try:#尝试运行
T=range(len(Q))[-1]+1#获取查询记录多少条
list=[]#定义一个列表存放符合条件的数据
while True:#开启循环,查询到符合条件的记录
U=U+1#下一条数据
if U < T:#如果没有超出获取的查询条数
if Q[U][1] == str(i):#条件一:材料名称一致
if Q[U][2] == str(n):#条件二:材料规格一致
if Q[U][4] == str(R):#条件三:备注信息一致
list.append(Q[U])#将符合条件的记录到list里
else:#当超出查询条数时
break#结束循环
while True:#开启循环
self.list_time=[0,0]#定义list_time,两个数据,左边表示定位数据位置,右边表示天数
for i in range(len(list)):#第二次循环筛选,寻找时间距离最远的一条记录
s1=list[i][0]#定义s1,读取符合条数的时间,数据库时间
S1=time.strptime(s1,'%y-%m-%d')#读取记录,更改时间格式,方便后续比较
s2=time.strftime('%y-%m-%d')#定义s2,读取系统时间
S2=time.strptime(s2,'%y-%m-%d')#现在时间
day=0#定义天数
if S2[0] == S1[0]:#同年
if S2[1]!=S1[1]:#同年不同月
Ma = S1[1]#数据库月数
Ma=Ma+1#数据库月数加一
#记录时间和系统实际时间中间相差的月数,计算天数
while Ma < S2[1]:#加一后和现在系统时间的月数比较,小于的话开启循环
if Ma in [1,3,5,7,8,10,12]:#判断数据库月数+1后是否是31天
day=day+31#天数加31
Ma=Ma+1#月数+1,继续循环
elif Ma in [4,6,9,11]:#判断数据库月数+1后是否是30天
day=day+30#天数加30
Ma=Ma+1#月数+1,继续循环
elif Ma == str(2):#是不是2月
day=day+28 #二月只有28天,不考虑29天
Ma=Ma+1#月数+1
#记录时间到月末的剩余天数计算
if S1[1] in [1,3,5,7,8,10,12]:
day=31-S1[2]+day
elif S1[1] in [4,6,9,11]:
day=30-S1[2]+day
elif S1[1]==str(2):
day=28-S1[2]+day
#实际时间到月初的天数计算
if S2[1] in [1,3,5,7,8,10,12]:
day=S2[2]+day
elif S2[1] in [4,6,9,11]:
day=S2[2]+day
elif S2[1]==str(2):
day=S2[2]+day
#比较时间,谁更更远
if self.list_time[1]<day:#如果这条记录的时间更久
self.list_time=[i,day]#定位list的第几条数据,间隔多少天,覆盖旧记录
self.T=s1#组合成记录时间
elif S2[1]==S1[1]:#同年同月
if S2[2]==S1[2]:
s2=time.strftime('%y-%m-%d')#定义s2,读取系统时间
S2=time.strptime(s2,'%y-%m-%d')
self.T=s1
self.number1=list[i][3]-int(r)
return
day=int(S2[2])-int(S1[2])
if self.list_time[1]<day:
self.list_time=[i,day]
self.T=s1
elif S2[0]>S1[0]:#不同年
if S1[1]==str(12):
Ma=S2[1]-1
while Ma > 0:
if Ma in [1,3,5,7,8,10,12]:
day=31+day
Ma=Ma-1
elif Ma in [4,6,9,11]:
day=30+day
Ma=Ma-1
elif Ma==str(2):
day=28+day
Ma=Ma-1
if S2[1] in [1,3,5,7,8,10,12]:
day=S2[2]+day
elif S2[1] in [4,6,9,11]:
day=S2[2]+day
elif S2[1]==str(2):
day=S2[2]+day
if S1[1] in [1,3,5,7,8,10,12]:
day=31-S1[2]+day
elif S1[1] in [4,6,9,11]:
day=31-S1[2]+day
elif S1[1]==str(2):
day=31-S1[2]+day
if self.list_time[1]<day:
self.list_time=[i,day]
self.T=s1
elif S1[1]!=str(12):
Ma=int(S2[1])-1
#while Ma > 0:
for Q in range((12-Ma)):
if Ma in [1,3,5,7,8,10,12]:
day=31+day
elif Ma in [4,6,9,11]:
day=30+day
elif Ma==str(2):
day=28+day
Ma=int(S1[1])+1
time.sleep(10)
#while Ma <= 12:
for Q in range(Ma):
if Ma in [1,3,5,7,8,10,12]:
day=31+day
Ma=Ma+1
elif Ma in [4,6,9,11]:
day=30+day
Ma=Ma+1
elif Ma==str(2):
day=28+day
Ma=Ma+1
if S2[1] in [1,3,5,7,8,10,12]:
day=S2[2]+day
elif S2[1] in [4,6,9,11]:
day=S2[2]+day
elif S2[1]==str(2):
day=S2[2]+day
if S1[1] in [1,3,5,7,8,10,12]:
day=31-S1[2]+day
elif S1[1] in [4,6,9,11]:
day=31-S1[2]+day
elif S1[1]==str(2):
day=31-S1[2]+day
if self.list_time[1]<day:
self.list_time=[i,day]
self.T=s1
self.number1 = int(list[self.list_time[0]][3])-int(r)#最终材料数量
if self.number1 < 0:
tkinter.messagebox.showerror("涛:","领取后数量不正常,请查询后处理")
return
break#结束循环
except(IndexError):
pass
except:#如果报错
conn.close
tkinter.messagebox.showerror("涛:","出错了,请联系制作者,即将提示错误信息,请谨记!")
tkinter.messagebox.showerror("涛:",sys.exc_info())
def LQ(self):
self.CJ()#如果不存在建立数据库
self.LQBJ()#前置工作
if self.entry3.get()!='':#材料数量不能为空
if self.entry2.get()!='':#材料规格不能为空
if self.entry1.get()!='':#材料名称不能为空
i=self.entry1.get()#获取材料名称
n=self.entry2.get()#获取材料规格
if self.entry4.get() == '':#如果没有备注
R=''
else: #如果有备注
R=self.entry4.get()
if self.number1 == '':#如果前置工作报错,这个就没有数据
tkinter.messagebox.showerror("涛:","库存没有相关材料,无法领用")
return#中断
else:
r = self.number1
Time1=self.T#获取时间
if self.number1 == 0:
conn = sqlite3.connect("test.db")#连接数据库
cu=conn.cursor()#获取游标
L=self.entry3.get()
cu.execute('DELETE FROM Student WHERE Time=\"%s\" and Name=\"%s\" and GuiGe=\"%s\" and Remark=\"%s\" and Number=\"%s\"'%(Time1,i,n,R,L))
conn.commit()#提交
conn.close#关闭数据库连接
self.JL_W(Time1,i,n,L,int(self.entry3.get()),R,'领取')
tkinter.messagebox.showinfo("涛:","领用登记成功")
return#结束
elif self.number1 < 0:
return
try:#不为0,开始尝试运行
conn = sqlite3.connect('test.db')#连接数据库
cursor = conn.cursor()#获取游标
#sq='INSERT INTO Student (Time,Name,GuiGe,Number,Remark) VALUES (\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")'%(Time1,i,n,r,R)#插入最新数据
#sq='update Student set Number=\"%s\" where Time=\"%s\" and Name=\"%s\"and GuiGe=\"%s\" and Remark=\"%s\"'%(r,Time1,i,n,R)#更新数据
cursor.execute('DELETE FROM Student WHERE Time=\"%s\" and Name=\"%s\" and GuiGe=\"%s\" and Remark=\"%s\"'%(Time1,i,n,R))
conn.commit()#提交
sq='INSERT INTO Student (Time,Name,GuiGe,Number,Remark) VALUES (\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")'%(Time1,i,n,r,R)
cursor.execute(sq)#执行数据库命令
conn.commit()#提交
cursor.close#关闭数据库连接
r=int(self.entry3.get())+r
self.JL_W(Time1,i,n,int(self.entry3.get()),r,R,'领取')
self.entry1.delete(0,END)#清空输入框
self.entry2.delete(0,END)
self.entry3.delete(0,END)
self.entry4.delete(0,END)
tkinter.messagebox.showinfo("涛:","领用登记成功")
except:
tkinter.messagebox.showerror("涛:","出错了,请联系制作者,即将提示错误信息,请谨记!")#报错
tkinter.messagebox.showerror("涛:",sys.exc_info())
else:
tkinter.messagebox.showerror("涛:","请输入材料名称")
else:
tkinter.messagebox.showerror("涛:","请输入材料规格")
else:
tkinter.messagebox.showerror("涛:","请输入材料数量")
def SQ(self):
self.CJ()
self.SQBJ()
if self.entry3.get()!='':
if self.entry2.get()!='':
if self.entry1.get()!='':
i=self.entry1.get()
n=self.entry2.get()
if self.entry4.get() == '':
R=''
else:
R=self.entry4.get()
if self.number1 == '':
r = self.entry3.get()
else:
r = self.number1
try:
conn = sqlite3.connect('test.db')
cursor = conn.cursor()
sq='INSERT INTO Student (Time,Name,GuiGe,Number,Remark) VALUES (\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")'%(self.Time1,i,n,r,R)
cursor.execute(sq)
conn.commit()
cursor.close
self.JL_W(self.Time1,i,n,self.entry3.get(),self.SQBJ_number,R,'申请')
self.entry1.delete(0,END)
self.entry2.delete(0,END)
self.entry3.delete(0,END)
self.entry4.delete(0,END)
tkinter.messagebox.showinfo("涛:","申请登记成功")
except:
tkinter.messagebox.showerror("涛:","出错了,请联系制作者,即将提示错误信息,请谨记!")
tkinter.messagebox.showerror("涛:",sys.exc_info())
else:
tkinter.messagebox.showerror("涛:","请输入材料名称")
else:
tkinter.messagebox.showerror("涛:","请输入材料规格")
else:
tkinter.messagebox.showerror("涛:","请输入材料数量")
def ex(self):
if tkinter.messagebox.askokcancel("涛:","确定退出?"):
os._exit(0)
def JL(self):
if os.path.exists("JL.db"):
conn = sqlite3.connect('JL.db')
else:
conn = sqlite3.connect('JL.db')
cursor = conn.cursor()
sql = 'CREATE TABLE JL(date TEXT,time TEXT,Time1 TEXT,Name TEXT,Guige TEXT,Number1 TEXT,Number2 TEXT,Remark TEXT,Use TEXT,Host TEXT,IP TEXT)'
cursor.execute(sql)
conn.commit()
cursor.close
def JL_W(self,Time,Name,Guige,Number1,Number2,Remark='空',Use='未记录'):
self.JL()
hostname=socket.gethostname()
IP=socket.gethostbyname(hostname)
Time1=time.strftime('%y-%m-%d')
Time2=time.strftime('%H:%M:%S')
conn = sqlite3.connect("JL.db")
cu=conn.cursor()
R='INSERT INTO JL (date,time,Time1,Name,Guige,Number1,Number2,Remark,Use,Host,IP) VALUES (\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")'%(Time1,Time2,Time,Name,Guige,Number1,Number2,Remark,Use,hostname,IP)
cu.execute(R)
conn.commit()
cu.close
def Dc(self):
self.JL()
conn = sqlite3.connect("JL.db")
cu=conn.cursor()
cu.execute('select * from JL')
Q=cu.fetchall()
conn.commit()
U=0
try:
f = open(r'操作记录.csv','w',encoding='GBK',newline='' "")
wt=csv.writer(f)
T=range(len(Q))[-1]+1
while True:
if U < T:
if U == 0:
wt.writerow(['日期','时间','批次申请时间','材料名称','材料规格','操作数量','变更前数量','备注','操作类型','变更主机名称','变更主机IP'])
wt.writerow([Q[U][0],Q[U][1],Q[U][2],Q[U][3],Q[U][4],Q[U][5],Q[U][6],Q[U][7],Q[U][8],Q[U][9],Q[U][10]])
else:
wt.writerow([Q[U][0],Q[U][1],Q[U][2],Q[U][3],Q[U][4],Q[U][5],Q[U][6],Q[U][7],Q[U][8],Q[U][9],Q[U][10]])
U=U+1
elif U >= T:
tkinter.messagebox.showinfo("涛:","已经导出文件'操作记录.csv',在软件根目录下")
break
except:
tkinter.messagebox.showerror("涛:","出错了,请联系制作者,即将提示错误信息,请谨记!")
tkinter.messagebox.showerror("涛:",sys.exc_info())
T=Main()