python實(shí)現(xiàn)商品進(jìn)銷存管理系統(tǒng)
本文實(shí)例為大家分享了python實(shí)現(xiàn)商品進(jìn)銷存管理系統(tǒng),基于python,MySQL,tkinter
import pymysql #導(dǎo)入數(shù)據(jù)庫模塊 import tkinter #導(dǎo)入相關(guān)的窗體模塊 import os #利用os模塊可以方便定義完整路徑 import ?tkinter.messagebox#實(shí)現(xiàn)提示框的組件 import ?tkinter.simpledialog#簡單對話框 from wordcloud import WordCloud import matplotlib.pyplot as plt import threading import pandas as pd ?#對數(shù)據(jù)進(jìn)行訪問 import ?sys ?#與操作系統(tǒng)交互 def get_resources_path(relative_path):#利用此函數(shù)實(shí)現(xiàn)資源路徑的定位 ? ? if getattr(sys,"frozen",False): ? ? ? ? base_path=sys._MEIPASS #獲取臨時(shí)資源 ? ? else: ? ? ? ? base_path=os.path.abspath(".") #獲取當(dāng)前路徑 ? ? return os.path.join(base_path,relative_path) ?#獲得絕對路徑 LOGO_PATH=get_resources_path(os.path.join("resources",'shop_logo.ico')) ?#'resources'+os.sep + 'shop_logo.ico'#logo文件路徑 IMAGES_PATH=get_resources_path(os.path.join("resources",'background.png'))#'resources' +os.sep+ 'background.png'#圖像文件路徑 Warehouse_PATH=get_resources_path(os.path.join("resources",'店鋪.png'))#'resources' +os.sep+ '店鋪.png'#圖像文件路徑 COMMODITY_DELETE_PATH=get_resources_path(os.path.join("resources",'店鋪修改背景圖.png'))#'resources' +os.sep+ '店鋪修改背景圖.png'#圖像文件路徑 WORDCLOUD_PATH='詞云圖.png' EXCEL_COMMODITY=get_resources_path(os.path.join("resources",'商品數(shù)據(jù).xlsx'))#'resources'+ os.sep + '商品數(shù)據(jù).xlsx'#商品數(shù)據(jù)的路徑 EXCEL_STORE=get_resources_path(os.path.join("resources",'店鋪.xlsx'))#'resources'+ os.sep + '店鋪.xlsx'#店鋪數(shù)據(jù)的路徑 EXCEL_WAREHOUSE=get_resources_path(os.path.join("resources",'庫房.xlsx'))#'resources'+ os.sep + '庫房.xlsx'#庫房數(shù)據(jù)的路徑 EXCEL_CUSTOMER=get_resources_path(os.path.join("resources",'顧客數(shù)據(jù).xlsx'))#'resources'+ os.sep + '顧客數(shù)據(jù).xlsx'#顧客數(shù)據(jù)的路徑 class MainForm: #定義窗體類,父類 ? ? def __init__(self):#構(gòu)造窗體 ? ? ? ? self.root=tkinter.Tk()#創(chuàng)建一個(gè)窗體 ? ? ? ? self.root.title("露露小賣店")#設(shè)置標(biāo)題 ? ? ? ? self.root.iconbitmap(LOGO_PATH)#設(shè)置logo資源 ? ? ? ? self.root.geometry('680x500+150+50')#初始化窗口大小 ? ? ? ? self.root.resizable(False,False) #固定窗口大小 ? ? def worcloud_s(self,text): ? ?#生產(chǎn)詞云圖片 ? ? ? ? wc= WordCloud( ? ? ? ? ? ? collocations=False, ? ? ? ? ? ? font_path=r"C:/Windows/Fonts/simfang.ttf", ? ? ? ? ? ? background_color="black", ? ? ? ? ? ? width=600, ? ? ? ? ? ? height=300, ? ? ? ? ? ? max_words=50).generate(text) ? ? ? ? wc.to_image() ? ? ? ? wc.to_file("詞云圖.png") class The_login(MainForm): ?#登錄窗口 ? ? def __init__(self): ? ? ? ? super().__init__() ? ? ? ? photo = tkinter.PhotoImage(file=IMAGES_PATH) ?# 設(shè)置圖像資源 ? ? ? ? tkinter.Label(self.root, image=photo,width=680,height=500).place(x=0,y=0) ? ? ? ? tkinter.Label(self.root, text="用戶名", font=("黑體", 20)).place(x=150,y=200) ? ? ? ? self.entry1 = tkinter.Entry(self.root,font=("黑體", 20)) ? ? ? ? self.entry1.place(x=300,y=200) ? ? ? ? tkinter.Label(self.root, text="密碼", font=("黑體", 20)).place(x=150,y=250) ? ? ? ? self.entry2 = tkinter.Entry(self.root,font=("黑體", 20),show="*") ? ? ? ? self.entry2.place(x=300,y=250) ? ? ? ? tkinter.Button(self.root, text="店鋪登錄",command=self.bidui, width=15, font=("微軟雅黑", 10)).place(x=150,y=300) ? ? ? ? tkinter.Button(self.root, text="退出", command=self.root.quit, width=15, font=("微軟雅黑", 10)).place(x=450, y=300) ? ? ? ? tkinter.Button(self.root, text="導(dǎo)入店鋪信息", command=self.store_in, width=10, font=("微軟雅黑", 10)).place(x=550, y=450) ? ? ? ? tkinter.Button(self.root, text="店鋪?zhàn)?, command=self.Registered, width=10, font=("微軟雅黑", 10)).place(x=0, y=450) ? ? ? ? self.root1=self.root.mainloop() ? ? ? #對用戶賬號,密碼進(jìn)行查詢,比對 ? ? def bidui(self): ? ? ? ? global global_id ? ? ? ? def find_store():#查找店鋪賬號和密碼數(shù)據(jù) ? ? ? ? ? ? cursor=conn.cursor() ? ? ? ? ? ? sql='select * from store where store_id="%s" and store_password="%s"'%(self.entry1.get(),self.entry2.get()) ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? return cursor.fetchone() ? ? ? ? try : ? ? ? ? ? ? if bool(find_store())==1: ? ? ? ? ? ? ? ? print("登錄成功") ? ? ? ? ? ? ? ? global_id=self.entry1.get() ? ? ? ? ? ? ? ? self.root.destroy() ? ? ? ? ? ? ? ? The_store() ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? labell = tkinter.Label(self.root, text='登陸失敗!', font=("黑體", 10)) ?## ? ? ? ? ? ? ? ? labell.place(x=300, y=0) ? ? ? ? except: ? ? ? ? ? ? pass ? ? def store_in(self): ? ? ? ? def remove_store_all(): ?# 清除店鋪中的數(shù)據(jù)表數(shù)據(jù) ? ? ? ? ? ? cursor = conn.cursor() ?# 創(chuàng)建游標(biāo) ? ? ? ? ? ? cursor.execute('delete from store') ? ? ? ? ? ? conn.commit() ?# 提交 ? ? ? ? ? ? cursor.close() ?# 關(guān)閉游標(biāo) ? ? ? ? def store_Add(): ?# 向店鋪的表中導(dǎo)入數(shù)據(jù) ? ? ? ? ? ? cursor = conn.cursor() ?# 創(chuàng)建游標(biāo) ? ? ? ? ? ? for co in range(len(df["店鋪賬號"])-1): ? ? ? ? ? ? ? ? print(co) ? ? ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? ? ? sql = 'insert into store values (%s,%s,%s,%s,%s,%s,%s);' ?# 添加數(shù)據(jù) ? ? ? ? ? ? ? ? ? ? cursor.execute(sql,( ? ? ? ? ? ? ? ? ? ? ? ? df["店鋪賬號"][co], ? ? ? ? ? ? ? ? ? ? ? ? df["店鋪密碼"][co], ? ? ? ? ? ? ? ? ? ? ? ? df["店鋪名稱"][co], ? ? ? ? ? ? ? ? ? ? ? ? df["店鋪地址"][co], ? ? ? ? ? ? ? ? ? ? ? ? df["店鋪電話"][co], ? ? ? ? ? ? ? ? ? ? ? ? df["店主"][co], ? ? ? ? ? ? ? ? ? ? ? ? df["盈虧"][co])) ?# 執(zhí)行添加數(shù)據(jù) ? ? ? ? ? ? ? ? ? ? conn.commit() ?# 提交 ? ? ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? ? ? print(df["店鋪名稱"][co]) ? ? ? ? ? ? cursor.close() ?# 關(guān)閉游 ? ? ? ? df = pd.read_excel(EXCEL_STORE) ? ? ? ? remove_store_all() ? ? ? ? store_Add() ? ? ? ? #——————————————————————-——————————店鋪?zhàn)?----------------------------- ? ? def Registered(self): ?#店鋪?zhàn)孕畔? ? ? ? ? def remove_prompt(): ?# 清空提示信息 ? ? ? ? ? ? Entry_prompt.delete(0.0, tkinter.END) ? ? ? ? ? ? Entry_prompt.update() ? ? ? ? ? ? Entry_prompt.insert(tkinter.INSERT,"———————————店鋪?zhàn)浴?) ? ? ? ? def store_add():#添加店鋪信息 ? ? ? ? ? ? if Entry_user.get()=='': ?#用戶名不能為空 ? ? ? ? ? ? ? ? remove_prompt() ? ? ? ? ? ? ? ? Entry_prompt.insert(tkinter.INSERT, "用戶名輸入為空\n") ? ? ? ? ? ? elif Entry_password.get()=='': #密碼不能為空 ? ? ? ? ? ? ? ? remove_prompt() ? ? ? ? ? ? ? ? Entry_prompt.insert(tkinter.INSERT, "密碼輸入為空\n") ? ? ? ? ? ? elif Entry_name.get() == '': ?# 名稱不能為空 ? ? ? ? ? ? ? ? remove_prompt() ? ? ? ? ? ? ? ? Entry_prompt.insert(tkinter.INSERT, "店鋪名稱輸入為空\n") ? ? ? ? ? ? elif Entry_address.get() == '': ?# 地址不能為空 ? ? ? ? ? ? ? ? remove_prompt() ? ? ? ? ? ? ? ? Entry_prompt.insert(tkinter.INSERT, "店鋪地址輸入為空\n") ? ? ? ? ? ? elif Entry_phon.get() == '': ?# 電話不能為空 ? ? ? ? ? ? ? ? remove_prompt() ? ? ? ? ? ? ? ? Entry_prompt.insert(tkinter.INSERT, "店鋪電話輸入為空\n") ? ? ? ? ? ? elif Entry_master.get() == '': ?# 店主不能為空 ? ? ? ? ? ? ? ? remove_prompt() ? ? ? ? ? ? ? ? Entry_prompt.insert(tkinter.INSERT, "店主輸入為空\n") ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? remove_prompt() ? ? ? ? ? ? ? ? cursor = conn.cursor() ?# 創(chuàng)建游標(biāo) ? ? ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? ? ? sql = 'insert into store values (%s,%s,%s,%s,%s,%s,%s);' ?# 添加數(shù)據(jù) ? ? ? ? ? ? ? ? ? ? cursor.execute(sql, ( ? ? ? ? ? ? ? ? ? ? ? ? Entry_user.get(), ?#賬號 ? ? ? ? ? ? ? ? ? ? ? ? Entry_password.get(),#密碼 ? ? ? ? ? ? ? ? ? ? ? ? Entry_name.get(),#名稱 ? ? ? ? ? ? ? ? ? ? ? ? Entry_address.get(),#地址 ? ? ? ? ? ? ? ? ? ? ? ? Entry_phon.get(),#電話 ? ? ? ? ? ? ? ? ? ? ? ? Entry_master.get(),#店主 ? ? ? ? ? ? ? ? ? ? ? ? 0 ? ? ? )#盈虧 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?) ?# 執(zhí)行添加數(shù)據(jù) ? ? ? ? ? ? ? ? ? ? conn.commit() ?# 提交 ? ? ? ? ? ? ? ? ? ? cursor.execute('select * from store where store_id="%s";'%(Entry_user.get())) ? ? ? ? ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? ? ? ? ? Entry_prompt.insert(tkinter.INSERT, "店鋪?zhàn)猿晒n") ? ? ? ? ? ? ? ? ? ? Entry_prompt.insert(tkinter.INSERT, cursor.fetchall()) ? ? ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? ? ? Entry_prompt.insert(tkinter.INSERT, "店鋪賬號已存在,請從新輸入:\n") ? ? ? ? ? ? ? ? cursor.close() ?# 關(guān)閉游 ? ? ? ? root=tkinter.Toplevel() ? #創(chuàng)建一個(gè)附屬窗口 ? ? ? ? root.title("露露小賣店") ? #標(biāo)題 ? ? ? ? root.iconbitmap(LOGO_PATH) ?# 設(shè)置logo資源 ? ? ? ? root.geometry('380x400+150+50') ?# 初始化窗口大小 ? ? ? ? root.resizable(False, False) ?# 固定窗口大小 ? ? ? ? tkinter.Button(root,text="確認(rèn)添加",command=store_add,font=("微軟雅黑", 10)).place(x=30,y=360) ? ? ? ? tkinter.Button(root, text="退出", command=root.destroy, font=("微軟雅黑", 10)).place(x=320, y=360) ? ? ? ?#店鋪賬號?? ?店鋪密碼?? ?店鋪名稱?? ?店鋪地址?? ?店鋪電話?? ?店主 ? ? ? ? tkinter.Label(root,text="店鋪賬號",font=("微軟雅黑", 10)).place(x=60,y=120) ? ? ? ? tkinter.Label(root, text="店鋪密碼", font=("微軟雅黑", 10)).place(x=60, y=160) ? ? ? ? tkinter.Label(root, text="店鋪名稱", font=("微軟雅黑", 10)).place(x=60, y=200) ? ? ? ? tkinter.Label(root, text="店鋪地址", font=("微軟雅黑", 10)).place(x=60, y=240) ? ? ? ? tkinter.Label(root, text="店鋪電話", font=("微軟雅黑", 10)).place(x=60, y=280) ? ? ? ? tkinter.Label(root, text="店 ? ?主", font=("微軟雅黑", 10)).place(x=60, y=320) ? ? ? ? Entry_prompt = tkinter.Text(root, width=44,height=5,font=("微軟雅黑", 10)) ? ? ? ? Entry_prompt.place(x=12, y=10) ? ? ? ? Entry_user=tkinter.Entry(root,font=("微軟雅黑", 10)) ? ? ? ? Entry_user.place(x=120,y=120) ? ? ? ? Entry_password = tkinter.Entry(root, font=("微軟雅黑", 10)) ? ? ? ? Entry_password.place(x=120, y=160) ? ? ? ? Entry_name = tkinter.Entry(root, font=("微軟雅黑", 10)) ? ? ? ? Entry_name.place(x=120, y=200) ? ? ? ? Entry_address = tkinter.Entry(root, font=("微軟雅黑", 10)) ? ? ? ? Entry_address.place(x=120, y=240) ? ? ? ? Entry_phon = tkinter.Entry(root, font=("微軟雅黑", 10)) ? ? ? ? Entry_phon.place(x=120, y=280) ? ? ? ? Entry_master = tkinter.Entry(root, font=("微軟雅黑", 10)) ? ? ? ? Entry_master.place(x=120, y=320) ? ? ? ? remove_prompt() class The_store(MainForm):#主頁面設(shè)置 ? ? def __init__(self): ? ? ? ? super().__init__() ? ? ? ? self.Label=tkinter.Label(self.root,text="歡迎光臨露露小賣店",bg='#233233',width=32,height=10, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?fg='#ffffff',font=("黑體",30)) ? ? ? ? self.Label.place(x=20,y=0) ? ? ? ? self.button1 = tkinter.Button(self.root, text="初始化", command=self.Ininia, height=3, width=10).place(x=0,y=430) ? ? ? ? self.button2 = tkinter.Button(self.root, text="商品", command=self.Commodity_switch, height=3, width=10).place(x=150,y=430) ? ? ? ? self.button3 = tkinter.Button(self.root, text="店鋪", command=self.Shop_switch, height=3, width=10).place(x=300,y=430) ? ? ? ? self.button4 = tkinter.Button(self.root, text="庫房", command=self.Warehouse_switch, height=3, width=10).place(x=450,y=430) ? ? ? ? self.button1 = tkinter.Button(self.root, text="退出", command=quit, height=3, width=10).place(x=600,y=430) ? ? ? ? self.root.mainloop() ? ? def ?Commodity_switch(self): ?#商品 ? ? ? ? self.root.destroy() ?#關(guān)閉主界面 ? ? ? ? Commodity_From() ? #進(jìn)入商品界面 ? ? def Shop_switch(self): ? #店鋪 ? ? ? ? self.root.destroy() ?# 關(guān)閉主界面 ? ? ? ? Shop_From() ? ? def Warehouse_switch(self): ?#庫房 ? ? ? ? self.root.destroy() ?# 關(guān)閉主界面 ? ? ? ? Warehouse() ? ? def Ininia(self): ? #具體初始化 ? ? ? ? self.Label.place_forget() ? ? ? ? text=tkinter.Text(self.root,width=80,height=20,font=('微軟雅黑', 10)) ? ? ? ? scroll = tkinter.Scrollbar() ? ? ? ? scroll.pack(side=tkinter.RIGHT, fill=tkinter.Y) ? ? ? ? text.place(x=20, y=20) ? ? ? ? scroll.config(command=text.yview) ? ? ? ? text.config(yscrollcommand=scroll.set) ? ? ? ? text.insert(tkinter.INSERT,"----------數(shù)據(jù)加載開始---------\n") ? ? ? ? INn=Initialize() ? ? ? ? def After_xx(): ? ? ? ? ? ? for i in INn.Accord(): ? ? ? ? ? ? ? ?text.insert(tkinter.INSERT,i) ? ? ? ? ? ? ? ?text.insert(tkinter.INSERT, '\n') ? ? ? ? ? ? text.insert(tkinter.END,"數(shù)據(jù)加載完畢") ? ? ? ? self.root.after(100,After_xx()) class Initialize: ?#對數(shù)據(jù)庫進(jìn)行初始化 ? ? def __init__(self): ? ? ? ? self.df_commodity=pd.read_excel(EXCEL_COMMODITY) ? ? ? ? self.df_warehouse = pd.read_excel(EXCEL_WAREHOUSE) ? ? ? ? self.df_customer = pd.read_excel(EXCEL_CUSTOMER) ? ? ? ? self.remove_all() ? ? ? ? self.all_refresh() ? ? def remove_all(self): ?#清除數(shù)據(jù)表數(shù)據(jù) ? ? ? ? cursor = conn.cursor() ? #創(chuàng)建游標(biāo) ? ? ? ? cursor.execute('delete from commodity;') ? #清除商品數(shù)據(jù) ? ? ? ? cursor.execute('delete from warehouse;') ? ? ? #清除庫房信息 ? ? ? ? cursor.execute('delete from customer') #清除顧客信息 ? ? ? ? conn.commit() ? ?#提交 ? ? ? ? cursor.close() ?#關(guān)閉游標(biāo) ? ? def all_refresh(self): ? ? ? ? def commodity_Add():#向商品commodity的表中導(dǎo)入數(shù)據(jù)'DW-1201090311','其它蔬菜',4,2,20210101,'2年',1,8 ? ? ? ? ? ? global global_id ? ? ? ? ? ? cursor = conn.cursor() ? #創(chuàng)建游標(biāo) ? ? ? ? ? ? for co in range(len(self.df_commodity["商品編碼"])): ? ? ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? ? ? sql = 'insert into commodity values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);'#添加數(shù)據(jù) ? ? ? ? ? ? ? ? ? ? cursor.execute(sql, ( ? ? ? ? ? ? ? ? ? ? self.df_commodity["商品編碼"][co], ? ? ? ? ? ? ? ? ? ? self.df_commodity["商品名稱"][co], ? ? ? ? ? ? ? ? ? ? self.df_commodity["商品售價(jià)"][co], ? ? ? ? ? ? ? ? ? ? self.df_commodity["商品進(jìn)價(jià)"][co], ? ? ? ? ? ? ? ? ? ? self.df_commodity["生產(chǎn)日期"][co], ? ? ? ? ? ? ? ? ? ? self.df_commodity["保質(zhì)期"][co], ? ? ? ? ? ? ? ? ? ? self.df_commodity["商品規(guī)格"][co], ? ? ? ? ? ? ? ? ? ? self.df_commodity["銷售數(shù)量"][co], ? ? ? ? ? ? ? ? ? ? global_id, ? ? ? ? ? ? ? ? ? ? self.df_commodity["庫房編號"][co], ? ? ? ? ? ? ? ? ? ? None) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?) ?# 執(zhí)行添加數(shù)據(jù) ? ? ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? ? ? print(self.df_commodity["商品編碼"][co]) ? ? ? ? ? ? conn.commit() ?# 提交 ? ? ? ? ? ? cursor.close() ?# 關(guān)閉游標(biāo) ? ? ? ? def warehouse_Add():#向庫房的表中導(dǎo)入數(shù)據(jù)'DW-1201090311','其它蔬菜',4,2,20210101,'2年',1,8 ? ? ? ? ? ? global global_id ? ? ? ? ? ? cursor = conn.cursor() ? #創(chuàng)建游標(biāo) ? ? ? ? ? ? for co in range(len(self.df_warehouse["庫房編號"])): ? ? ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? ? ? sql = 'insert into warehouse values (%s,%s,%s,%s,%s,%s,%s);'#添加數(shù)據(jù) ? ? ? ? ? ? ? ? ? ? cursor.execute(sql, ( ? ? ? ? ? ? ? ? ? ? self.df_warehouse["庫房編號"][co], ? ? ? ? ? ? ? ? ? ? self.df_warehouse["庫房密碼"][co], ? ? ? ? ? ? ? ? ? ? self.df_warehouse["庫房名稱"][co], ? ? ? ? ? ? ? ? ? ? self.df_warehouse["庫房地址"][co], ? ? ? ? ? ? ? ? ? ? self.df_warehouse["庫房電話"][co], ? ? ? ? ? ? ? ? ? ? self.df_warehouse["庫房管理人"][co], ? ? ? ? ? ? ? ? ? ? global_id ? ? ) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?) ?# 執(zhí)行添加數(shù)據(jù) ? ? ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? ? ? print(self.df_warehouse["庫房編號"][co]) ? ? ? ? ? ? conn.commit() ?# 提交 ? ? ? ? ? ? cursor.close() ?# 關(guān)閉游標(biāo) ? ? ? ? def customer_Add():#向顧客的表中導(dǎo)入數(shù)據(jù) ? ? ? ? ? ? global global_id ? ? ? ? ? ? def go_shopping(): ?#查看購物情況 ? ? ? ? ? ? ? ? sql=' select sum(commodity_amount) from commodity GROUP BY customer_id;' ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? ? ? return ?cursor.fetchall() ? ? ? ? ? ? cursor = conn.cursor() ?# 創(chuàng)建游標(biāo) ? ? ? ? ? ? for co in range(len(self.df_customer["用戶賬號"])): ? ? ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? ? ? sql = 'insert into customer values (%s,%s,%s,%s,%s,%s);'#添加數(shù)據(jù) ? ? ? ? ? ? ? ? ? ? cursor.execute(sql, ( ? ? ? ? ? ? ? ? ? ? self.df_customer["用戶賬號"][co], ? ? ? ? ? ? ? ? ? ? self.df_customer["密碼"][co], ? ? ? ? ? ? ? ? ? ? self.df_customer["用戶名"][co], ? ? ? ? ? ? ? ? ? ? self.df_customer["電話"][co], ? ? ? ? ? ? ? ? ? ? go_shopping(), ? ? ? ? ? ? ? ? ? ? global_id ?) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?) ?# 執(zhí)行添加數(shù)據(jù) ? ? ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? ? ? print(self.df_customer["用戶賬號"][co]) ? ? ? ? ? ? conn.commit() ?# 提交 ? ? ? ? ? ? cursor.close() ?# 關(guān)閉游標(biāo) ? ? ? ? commodity_Add() ? ? ? ? warehouse_Add() ? ? ? ? customer_Add() ? ? def Accord(self): ? ? ? ? cursor = conn.cursor() ?#創(chuàng)建游標(biāo) ? ? ? ? a=[] ? ? ? ? for co1 in range(len(self.df_commodity["商品編碼"])): ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? sql='select * from commodity where commodity_id="%s"'%(self.df_commodity["商品編碼"][co1]) ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? a.append(cursor.fetchall()) ? #結(jié)果導(dǎo)出 ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? continue ? ? ? ? for co2 in range(len(self.df_warehouse["庫房編號"])): ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? sql='select * from warehouse where warehouse_id="%s"'%(self.df_warehouse["庫房編號"][co2]) ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? a.append(cursor.fetchall()) ? #結(jié)果導(dǎo)出 ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? continue ? ? ? ? for co in range(len(self.df_customer["用戶賬號"])): ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? sql='select * from customer where customer_id="%s"'%(self.df_customer["用戶賬號"][co]) ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? a.append(cursor.fetchall()) ? #結(jié)果導(dǎo)出 ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? continue ? ? ? ? conn.commit() ? ? ? ?#提交 ? ? ? ? cursor.close() ? ?#關(guān)閉游標(biāo) ? ? ? ? return a class Commodity_From(MainForm): ?#商品界面設(shè)置 ? ? def __init__(self): ? ? ? ? super().__init__() ? ? ? ? self.Commodity_select_photo() ? ? ? ? photo_word = tkinter.PhotoImage(file=WORDCLOUD_PATH) ? ? ? ? tkinter.Label(self.root, image=photo_word, width=600, height=400).place(x=30, y=0) ? ? ? ? tkinter.Label(self.root,text="------------你的年度銷量---------",font=("微軟雅黑", 20)).place(x=100,y=0) ? ? ? ? self.button1 = tkinter.Button(self.root, text="增加", command=self.Commodity_add_s, height=3, width=10).place(x=0, y=430) ? ? ? ? self.button2 = tkinter.Button(self.root, text="刪除", command=self.Commodity_drop_s, height=3, width=10).place(x=150, y=430) ? ? ? ? self.button3 = tkinter.Button(self.root, text="修改", command=self.Commodity_delente_s, height=3, width=10).place(x=300, y=430) ? ? ? ? self.button4 = tkinter.Button(self.root, text="查詢", command=self.Commodity_select_s, height=3, width=10).place(x=450, y=430) ? ? ? ? self.button1 = tkinter.Button(self.root, text="返回", command=self.The_store_power, height=3, width=10).place(x=600, y=430) ? ? ? ? self.root.mainloop() ? ? def Commodity_add_s(self):# ?進(jìn)入增加界面 ? ? ? ? self.root.destroy() ?# 關(guān)閉商品界面 ? ? ? ? Commodity_add() ? ?#進(jìn)入增加界面 ? ? def Commodity_drop_s(self):#進(jìn)入刪除界面 ? ? ? ? self.root.destroy() ? ? ? ? Commodity_drop() ? ? def Commodity_delente_s(self): #進(jìn)去修改界面 ? ? ? ? self.root.destroy() ? ? ? ? Commodity_delente() ? ? def Commodity_select_s(self): #進(jìn)入查詢界面 ? ? ? ? self.root.destroy() ? ? ? ? Commodity_select() ? ? def The_store_power(self): #進(jìn)入主界面 ? ? ? ? self.root.destroy() ? ? ? ? The_store() ? ? def Commodity_select_photo(self):#查詢所有的商品信息commodity_name ? ? ? ? global global_id ? ? ? ? a=[] ? ? ? ? cursor=conn.cursor() ? ? ? ? sql='select commodity_name from commodity where store_id="%s"'%(global_id) ? ? ? ? cursor.execute(sql) ? ? ? ? conn.commit() ? ? ? ? cursor.close() ? ? ? ? for i in cursor.fetchall(): ? ? ? ? ? ? a.append(i[0]) ? ? ? ? self.worcloud_s(str(a)) ? #生成圖片 class Commodity_add(MainForm):# 商品類,,增刪除,改,查 ? ? def __init__(self): ? ? ? ? super().__init__() ? ? ? ? tkinter.Label(self.root,text="增加商品信息",font=("微軟雅黑", 20)).place(x=260,y=0) ? ? ? ? tkinter.Label(self.root, text="商品編碼", font=("微軟雅黑", 10)).place(x=0,y=200) ? ? ? ? self.entryss1 = tkinter.Entry(self.root, font=("微軟雅黑", 10)) ? ? ? ? self.entryss1.place(x=60,y=200) ? ? ? ? tkinter.Label(self.root, text="商品名稱", font=("微軟雅黑", 10)).place(x=200,y=200) ? ? ? ? self.entryss2 = tkinter.Entry(self.root, font=("微軟雅黑", 10)) ? ? ? ? self.entryss2.place(x=260,y=200) ? ? ? ? self.Text_1 = tkinter.Text(self.root, height=6, width=80,font=("微軟雅黑", 10)) ? #輸出標(biāo)注框 ? ? ? ? self.Text_1.place(x=20,y=50) ? ? ? ? tkinter.Label(self.root, text="商品售價(jià)", font=("微軟雅黑", 10)).place(x=0,y=270) ? ? ? ? self.entryss3 = tkinter.Entry(self.root, font=("微軟雅黑", 10)) ? ? ? ? self.entryss3.place(x=60,y=270) ? ? ? ? tkinter.Label(self.root, text="商品進(jìn)價(jià)", font=("微軟雅黑", 10)).place(x=0,y=350) ? ? ? ? self.entryss4 = tkinter.Entry(self.root, font=("微軟雅黑", 10)) ? ? ? ? self.entryss4.place(x=60,y=350) ? ? ? ? tkinter.Label(self.root, text="生產(chǎn)日期", font=("微軟雅黑", 10)).place(x=200,y=270) ? ? ? ? self.entryss5 = tkinter.Entry(self.root, font=("微軟雅黑", 10)) ? ? ? ? self.entryss5.place(x=260,y=270) ? ? ? ? tkinter.Label(self.root, text="保質(zhì)期", font=("微軟雅黑", 10)).place(x=200,y=350) ? ? ? ? self.entryss6 = tkinter.Entry(self.root, font=("微軟雅黑", 10)) ? ? ? ? self.entryss6.place(x=260,y=350) ? ? ? ? tkinter.Label(self.root, text="商品規(guī)格", font=("微軟雅黑", 10)).place(x=400,y=270) ? ? ? ? self.entryss7 = tkinter.Entry(self.root, font=("微軟雅黑", 10)) ? ? ? ? self.entryss7.place(x=460,y=270) ? ? ? ? tkinter.Label(self.root, text="銷售數(shù)量", font=("微軟雅黑", 10)).place(x=400,y=350) ? ? ? ? self.entryss8 = tkinter.Entry(self.root, font=("微軟雅黑", 10)) ? ? ? ? self.entryss8.place(x=460,y=350) ? ? ? ? tkinter.Label(self.root, text="倉庫編號", font=("微軟雅黑", 10)).place(x=400, y=200) ? ? ? ? self.entryss9 = tkinter.Entry(self.root, font=("微軟雅黑", 10)) ? ? ? ? self.entryss9.place(x=460, y=200) ? ? ? ? tkinter.Button(self.root,text="確認(rèn)添加",command=self.add_s,font=("微軟雅黑", 15)).place(x=200,y=420) ? ? ? ? tkinter.Button(self.root, text="取消 ? ", command=self.add_Cancel, font=("微軟雅黑",15)).place(x=400,y=420) ? ? ? ? tkinter.Button(self.root, text="返回主菜單", command=self.The_store_1, font=("微軟雅黑", 15)).place(x=0, y=450) ? ? ? ? tkinter.Button(self.root, text="返回 ? ? ", command=self.Commodity_From_1, font=("微軟雅黑", 15)).place(x=600, y=450) ? ? ? ? self.root.mainloop() ? ? def The_store_1(self):#返回主菜單 ? ? ? ? self.root.destroy() ? ? ? ? The_store() ? ? def Commodity_From_1(self): ? ?#返回商品菜單 ? ? ? ? self.root.destroy() ? ? ? ? Commodity_From() ? ? def drop_Text_1(self):#清除顯示信息 ? ? ? ? self.Text_1.delete(0.0, tkinter.END) ? ? ? ? self.Text_1.update() ? ? def add_s(self): ?#處理增加 ? ? ? ? global global_id ? ? ? ? cursor = conn.cursor() ?# 創(chuàng)建sql游標(biāo) ? ? ? ? if self.entryss1.get() =='': ? ? ? ? ? ? self.drop_Text_1() ? ? ? ? ? ? self.Text_1.insert(tkinter.INSERT,"你的商品編碼輸入為空") ? ? ? ? elif self.entryss2.get() =='': ? ? ? ? ? ? self.drop_Text_1() ? ? ? ? ? ? self.Text_1.insert(tkinter.INSERT,"你的商品名稱輸入為空") ? ? ? ? elif self.entryss3.get() == '': ? ? ? ? ? ? self.drop_Text_1() ? ? ? ? ? ? self.Text_1.insert(tkinter.INSERT, "你的商品售價(jià)輸入為空") ? ? ? ? elif self.entryss4.get() == '': ? ? ? ? ? ? self.drop_Text_1() ? ? ? ? ? ? self.Text_1.insert(tkinter.INSERT, "你的商品進(jìn)價(jià)輸入為空") ? ? ? ? elif self.entryss5.get() == '': ? ? ? ? ? ? self.drop_Text_1() ? ? ? ? ? ? self.Text_1.insert(tkinter.INSERT, "你的生產(chǎn)日期輸入為空") ? ? ? ? elif self.entryss6.get() == '': ? ? ? ? ? ? self.drop_Text_1() ? ? ? ? ? ? self.Text_1.insert(tkinter.INSERT, "你的保質(zhì)期輸入為空") ? ? ? ? elif self.entryss7.get() == '': ? ? ? ? ? ? self.drop_Text_1() ? ? ? ? ? ? self.Text_1.insert(tkinter.INSERT, "你的商品規(guī)格輸入為空") ? ? ? ? elif self.entryss8.get() == '': ? ? ? ? ? ? self.drop_Text_1() ? ? ? ? ? ? self.Text_1.insert(tkinter.INSERT, "你的銷售數(shù)量輸入為空") ? ? ? ? elif self.entryss9.get() == '': ? ? ? ? ? ? self.drop_Text_1() ? ? ? ? ? ? self.Text_1.insert(tkinter.INSERT, "你的倉庫編號輸入為空") ? ? ? ? else: ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? sql = "insert into commodity values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)" ?# 添加數(shù)據(jù) ? ? ? ? ? ? ? ? cursor.execute(sql,( ? ? ? ? ? ? ? ? ? ? ? ? self.entryss1.get(), ?#商品編號 ? ? ? ? ? ? ? ? ? ? ? ? self.entryss2.get(), ?#商品名稱 ? ? ? ? ? ? ? ? ? ? ? ? self.entryss3.get(), ?#商品售價(jià) ? ? ? ? ? ? ? ? ? ? ? ? self.entryss4.get(), ?#商品進(jìn)價(jià) ? ? ? ? ? ? ? ? ? ? ? ? self.entryss5.get(), #生產(chǎn)日期 ? ? ? ? ? ? ? ? ? ? ? ? self.entryss6.get(), ?#保質(zhì)期 ? ? ? ? ? ? ? ? ? ? ? ? self.entryss7.get(), ?#商品規(guī)格 ? ? ? ? ? ? ? ? ? ? ? ? self.entryss8.get(), ?#銷售數(shù)量 ? ? ? ? ? ? ? ? ? ? ? ? global_id, ? ? ? ? ? #店鋪編號 ? ? ? ? ? ? ? ? ? ? ? ? self.entryss9.get(), ?#庫房編號 ? ? ? ? ? ? ? ? ? ? ? ? None ? ? ? ? ? ? ? ? ? ? ? ?#顧客編號為空 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? )) ? ? ? ? ? ? ? ? conn.commit() ? #提交 ? ? ? ? ? ? ? ? cursor.execute('select * from commodity where commodity_id="%s"' % (self.entryss1.get())) ? ? ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? ? ? cursor.close() ?#關(guān)閉游標(biāo) ? ? ? ? ? ? ? ? self.drop_Text_1() ? ? ? ? ? ? ? ? self.Text_1.insert(tkinter.INSERT, "數(shù)據(jù)添加成功") ? ? ? ? ? ? ? ? self.Text_1.insert(tkinter.INSERT,cursor.fetchall()) ? ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? ? ? sql = 'select * from commodity where commodity_id="%s"' % (self.entryss1.get()) ? ? ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? ? ? ? ? self.drop_Text_1() ? ? ? ? ? ? ? ? ? ? self.Text_1.insert(tkinter.INSERT, "數(shù)據(jù)存在:") ? ? ? ? ? ? ? ? ? ? self.Text_1.insert(tkinter.INSERT, cursor.fetchall()) ? ? ? ? ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? ? ? self.drop_Text_1() ? ? ? ? ? ? ? ? ? ? self.Text_1.insert(tkinter.INSERT, "商品數(shù)據(jù)不符合類型,從新添加:") ? ? def add_Cancel(self): ? #取消輸入的信息 ? ? ? ? self.entryss1.delete(0, tkinter.END) ? ? ? ? self.entryss2.delete(0, tkinter.END) ? ? ? ? self.entryss3.delete(0, tkinter.END) ? ? ? ? self.entryss4.delete(0, tkinter.END) ? ? ? ? self.entryss5.delete(0, tkinter.END) ? ? ? ? self.entryss6.delete(0, tkinter.END) ? ? ? ? self.entryss7.delete(0, tkinter.END) ? ? ? ? self.entryss8.delete(0, tkinter.END) ? ? ? ? self.entryss9.delete(0, tkinter.END) ? ? ? ? self.Text_1.delete(0.0, tkinter.END) ? ? ? ? self.entryss1.update() ? ? ? ? self.entryss2.update() ? ? ? ? self.entryss3.update() ? ? ? ? self.entryss4.update() ? ? ? ? self.entryss5.update() ? ? ? ? self.entryss6.update() ? ? ? ? self.entryss7.update() ? ? ? ? self.entryss8.update() ? ? ? ? self.entryss9.update() ? ? ? ? self.Text_1.update() ? ? ? ? self.Text_1.insert(tkinter.INSERT,"請選擇其他") ? ? ? ? #————————————————————————————店鋪————————————————————————————————, class Commodity_drop(MainForm): ?#刪除界面 ? ? def __init__(self): ? ? ? ? super().__init__() ? ? ? ? self.Textw = tkinter.Text(self.root, height=18, width=80, font=("微軟雅黑", 10)) ? ? ? ? self.Textw.place(x=15, y=0) ? ? ? ? tkinter.Label(self.root,text="輸入需要刪除的商品編號或商品名稱",font=("微軟雅黑", 20)).place(x=100,y=350) ? ? ? ? self.Entry_1=tkinter.Entry(self.root,font=("微軟雅黑", 20)) ? ? ? ? self.Entry_1.place(x=20,y=400) ? ? ? ? tkinter.Button(self.root,text="查詢",command=self.commodity_select_drop,font=("微軟雅黑", 10)).place(x=380,y=400) ? ? ? ? tkinter.Button(self.root, text="返回", command=self.commodity_return, font=("微軟雅黑", 10)).place(x=600, y=450) ? ? ? ? tkinter.Button(self.root, text="確定清除", command=self.commodity_confirm, font=("微軟雅黑", 10)).place(x=450, y=400) ? ? ? ? tkinter.Button(self.root, text="取消清除", command=self.commodity_confirm, font=("微軟雅黑", 10)).place(x=550, y=400) ? ? ? ? self.commodity_refersh() ? #顯示提示頁面 ? ? ? ? self.commodity_select() ?#顯示所有的商品信息 ? ? ? ? self.root.mainloop() ? ? def commodity_return(self): #返回商品菜單 ? ? ? ? self.root.destroy() ? ? ? ? Commodity_From() ? ? def commodity_confirm(self): ?#提示確認(rèn)查詢 ? ? ? ? self.commodity_refersh() ? ? ? ? self.Textw.insert(tkinter.INSERT,"請先查詢\n") ? ? ? ? self.commodity_select() ? ? def commodity_refersh(self): ?#刷新界面 ? ? ? ? self.Textw.delete(0.0,tkinter.END) ? ? ? ? self.Textw.update() ? ? ? ? self.Textw.insert(tkinter.INSERT, ? ? ? ? ? ? ? ? ? ? ? ? ? "----------------------------------請輸入你要刪除的商品編號,或商品名稱----------------------------------\n") ? ? def commodity_select(self): ?#查詢所有的商品 ? ? ? ? cursor = conn.cursor() ?# 創(chuàng)建sql游標(biāo) ? ? ? ? sql = 'select * from commodity ' ? # 查詢所有商品的信息 ? ? ? ? cursor.execute(sql) ? ? ? ? self.Textw.insert(tkinter.INSERT, "你的商品信息為:\n") ? ? ? ? for fetchone in cursor.fetchall(): ? ? ? ? ? ? self.Textw.insert(tkinter.INSERT, fetchone) ? ? ? ? ? ? self.Textw.insert(tkinter.INSERT, '\n') ? ? #——————————————————————————————————————————————————————刪除頁面———————————————————————————————————————————————————— ? ? def commodity_select_drop(self): ?#查詢需要刪除的商品信息 ? ? ? ? if self.Entry_1.get() == '': ? ? ? ? ? ? self.commodity_refersh() ? ? ? ? ? ? self.Textw.insert(tkinter.INSERT, "你的輸入為空:\n") ? ? ? ? ? ? self.commodity_select() ? ? ? ? else: ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? def selecte_id_look(): ? ? ? ? ? ? ? ? ? ? cursor = conn.cursor() ?# 創(chuàng)建sql游標(biāo) ? ? ? ? ? ? ? ? ? ? sql1 = 'select * from commodity where commodity_id="%s"' % (self.Entry_1.get()) ?# 查詢需要刪除的信息 ? ? ? ? ? ? ? ? ? ? cursor.execute(sql1) ? ? ? ? ? ? ? ? ? ? conn.commit() ?# 提交 ? ? ? ? ? ? ? ? ? ? cursor.close() ?# 關(guān)閉游標(biāo) ? ? ? ? ? ? ? ? ? ? self.commodity_refersh() ? ? ? ? ? ? ? ? ? ? self.Textw.insert(tkinter.INSERT, "你輸入的的商品編號查詢的信息為:\n") ? ? ? ? ? ? ? ? ? ? return cursor.fetchall() ? ? ? ? ? ? ? ? def selecte_name_look(): ? ? ? ? ? ? ? ? ? ? cursor = conn.cursor() ?# 創(chuàng)建sql游標(biāo) ? ? ? ? ? ? ? ? ? ? sql2 = 'select * from commodity where commodity_name="%s"' % (self.Entry_1.get()) ?# 查詢需要刪除的信息 ? ? ? ? ? ? ? ? ? ? cursor.execute(sql2) ? ? ? ? ? ? ? ? ? ? conn.commit() ?# 提交 ? ? ? ? ? ? ? ? ? ? cursor.close() ?# 關(guān)閉游標(biāo) ? ? ? ? ? ? ? ? ? ? self.commodity_refersh() ? ? ? ? ? ? ? ? ? ? self.Textw.insert(tkinter.INSERT, "你輸入的的商品名稱查詢的信息為:\n") ? ? ? ? ? ? ? ? ? ? return cursor.fetchall() ? ? ? ? ? ? ? ? def button_id(): ? ? ? ? ? ? ? ? ? ? tkinter.Button(self.root, text="確定清除", command=delete_id, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?font=("微軟雅黑", 10)).place(x=450, y=400) ? ? ? ? ? ? ? ? ? ? tkinter.Button(self.root, text="取消清除", command=self.commodity_select, font=("微軟雅黑", 10)).place( ? ? ? ? ? ? ? ? ? ? ? ? x=550, y=400) ? ? ? ? ? ? ? ? def button_name(): ? ? ? ? ? ? ? ? ? ? tkinter.Button(self.root, text="確定清除", command=delete_name, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?font=("微軟雅黑", 10)).place(x=450, y=400) ? ? ? ? ? ? ? ? ? ? tkinter.Button(self.root, text="取消清除", command=self.commodity_select, font=("微軟雅黑", 10)).place( ? ? ? ? ? ? ? ? ? ? ? ? x=550, y=400) ? ? ? ? ? ? ? ? def delete_id(): ? ? ? ? ? ? ? ? ? ? cursor = conn.cursor() ?# 創(chuàng)建sql游標(biāo) ? ? ? ? ? ? ? ? ? ? sql = 'delete from commodity where commodity_id="%s"' % (self.Entry_1.get()) ? ? ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? ? ? conn.commit() ?# 提交 ? ? ? ? ? ? ? ? ? ? cursor.close() ?# 關(guān)閉游標(biāo) ? ? ? ? ? ? ? ? ? ? self.Textw.insert(tkinter.INSERT, "數(shù)據(jù)刪除成功\n") ? ? ? ? ? ? ? ? def delete_name(): ? ? ? ? ? ? ? ? ? ? cursor = conn.cursor() ?# 創(chuàng)建sql游標(biāo) ? ? ? ? ? ? ? ? ? ? sql = 'delete from commodity where commodity_name="%s"' % (self.Entry_1.get()) ? ? ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? ? ? conn.commit() ?# 提交 ? ? ? ? ? ? ? ? ? ? cursor.close() ?# 關(guān)閉游標(biāo) ? ? ? ? ? ? ? ? ? ? self.Textw.insert(tkinter.INSERT, "數(shù)據(jù)刪除成功\n") ? ? ? ? ? ? ? ? if bool(selecte_id_look())==True: ? ? ? ? ? ? ? ? ? ? for fetchone in selecte_id_look(): ? ? ? ? ? ? ? ? ? ? ? ? self.Textw.insert(tkinter.INSERT, fetchone) ? ? ? ? ? ? ? ? ? ? ? ? self.Textw.insert(tkinter.INSERT, '\n') ? ? ? ? ? ? ? ? ? ? button_id() ? ? ? ? ? ? ? ? elif bool(selecte_name_look())==True: ? ? ? ? ? ? ? ? ? ? for fetchone in selecte_name_look(): ? ? ? ? ? ? ? ? ? ? ? ? self.Textw.insert(tkinter.INSERT, fetchone) ? ? ? ? ? ? ? ? ? ? ? ? self.Textw.insert(tkinter.INSERT, '\n') ? ? ? ? ? ? ? ? ? ? button_name() ? ? ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? ? ? self.commodity_refersh() ? ? ? ? ? ? ? ? ? ? self.Textw.insert(tkinter.INSERT, "你輸入的的商品信息錯(cuò)誤或沒有此商品:\n") ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? self.Textw.insert(tkinter.INSERT, "程序運(yùn)行故障:\n") ? ? ? ? #_____________________________________修改頁面———————————————————————————————————————————————————————————— class Commodity_delente(MainForm): #修改 ? ? def __init__(self): ? ? ? ? super().__init__() ? ? ? ? photo=tkinter.PhotoImage(file=COMMODITY_DELETE_PATH) ? ? ? ? tkinter.Label(self.root, image=photo, width=680, height=500).place(x=0, y=0) ? ? ? ? tkinter.Label(self.root,text="修改商品信息",font=("黑體",20)).place(x=250,y=0) ? ? ? ? tkinter.Label(self.root, text="所有商品信息", font=("微軟雅黑", 10)).place(x=110, y=30) ? ? ? ? self.Text_select=tkinter.Text(self.root,width=40,height=13,font=("微軟雅黑", 10)) ?#顯示所有商品信息 ? ? ? ? self.Text_select.place(x=10,y=50) ? ? ? ? tkinter.Label(self.root, text="修改商品信息", font=("微軟雅黑", 10)).place(x=110, y=300) ?#顯示查詢和修改的商品信息 ? ? ? ? self.Text_delete = tkinter.Text(self.root, width=40, height=8,font=("微軟雅黑", 10)) ? ? ? ? self.Text_delete.place(x=10, y=320) ? ? ? ? tkinter.Label(self.root, text="查詢商品信息", font=("微軟雅黑", 10)).place(x=500, y=30) ? ? ? ? tkinter.Label(self.root, text="輸入商品編號:", font=("微軟雅黑", 10)).place(x=350, y=50) ? ? ? ? self.Entry_id = tkinter.Entry(self.root,font=("微軟雅黑", 10)) ? #輸入商品編號 ? ? ? ? self.Entry_id.place(x=450, y=50) ? ? ? ? tkinter.Button(self.root, text="查詢",command=self.select_id_commodity, font=("微軟雅黑", 7)).place(x=630, y=50) ? ? ? ? tkinter.Label(self.root, text="修改商品內(nèi)容:", font=("微軟雅黑", 10)).place(x=350, y=100) ? ? ? ? self.Entry_update = tkinter.Entry(self.root, font=("微軟雅黑", 10)) ?#輸入修改的商品信息 ? ? ? ? self.Entry_update.place(x=450, y=100) ? ? ? ? tkinter.Button(self.root,text="商品名稱",command=self.update_name,font=("微軟雅黑",10)).place(x=450,y=150) ? ? ? ? tkinter.Button(self.root, text="商品售價(jià)", command=self.update_price, font=("微軟雅黑", 10)).place(x=550, y=150) ? ? ? ? tkinter.Button(self.root, text="商品進(jìn)價(jià)", command=self.update_pur_price, font=("微軟雅黑", 10)).place(x=450, y=200) ? ? ? ? tkinter.Button(self.root, text="生產(chǎn)日期", command=self.update_production, font=("微軟雅黑", 10)).place(x=550, y=200) ? ? ? ? tkinter.Button(self.root, text="保質(zhì)期", command=self.update_life, font=("微軟雅黑", 10)).place(x=450, y=250) ? ? ? ? tkinter.Button(self.root, text="商品規(guī)格", command=self.update_speci, font=("微軟雅黑", 10)).place(x=550, y=250) ? ? ? ? tkinter.Button(self.root,text="庫房編號",command=self.warehouse_id,font=("微軟雅黑",10)).place(x=450,y=300) ? ? ? ? tkinter.Button(self.root, text="返回", command=self.commodity_return, font=("微軟雅黑", 10)).place(x=600, y=450) ? ? ? ? self.selecte_Text_query() ? #跟新并查詢商品信息 ? ? ? ? self.root.mainloop() ? ? def commodity_return(self): ?#返回商品菜單 ? ? ? ? self.root.destroy() ? ? ? ? Commodity_From() ? ? def selecte_Text_query(self): ?# 更新并查詢商品信息 ? ? ? ? self.Text_select.delete(0.0, tkinter.END) ? ? ? ? self.Text_select.update() ? ? ? ? try: ? ? ? ? ? ? cursor=conn.cursor() ? ? ? ? ? ? sql='select * from commodity ' ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? for i in cursor.fetchall(): ? ? ? ? ? ? ? ? self.Text_select.insert(tkinter.INSERT,i) ? ? ? ? ? ? ? ? self.Text_select.insert(tkinter.INSERT,'\n') ? ? ? ? except: ? ? ? ? ? ? pass ? ? def delete_Text_query(self): #跟新輸出顯示框的信息 ? ? ? ? self.Text_delete.delete(0.0,tkinter.END) ? ? ? ? self.Text_delete.update() ? ? ? ? self.Text_delete.insert(tkinter.INSERT,"你查詢到的商品為:\n") ? ? def select_id_commodity(self): ? #根據(jù)id查詢信息 ? ? ? ? def commodity_select_id(): ?#查詢商品信息 ? ? ? ? ? ? def select_id(): ? ? ? ? ? ? ? ? cursor = conn.cursor() ?# 創(chuàng)建sql游標(biāo) ? ? ? ? ? ? ? ? sql = 'select * from commodity where commodity_id="%s"' % (self.Entry_id.get()) ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? conn.commit() ?# 提交 ? ? ? ? ? ? ? ? cursor.close() ?# 關(guān)閉游標(biāo) ? ? ? ? ? ? ? ? return cursor.fetchall() ? ? ? ? ? ? if bool(select_id())==True: ? ? ? ? ? ? ? ? for i in select_id(): ? ? ? ? ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT, i) ? ? ? ? ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT,'\n') ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT,"沒有該商品信息:\n") ? ? ? ? if self.Entry_id.get()=='': ? ? ? ? ? ? self.delete_Text_query() ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT,"你的輸入為空:\n請從新輸入;\n") ? ? ? ? else: ? ? ? ? ? ? commodity_select_id() ? ? def update_name(self): ? ? ? ? self.delete_Text_query() ? ? ? ? try: ? ? ? ? ? ? cursor=conn.cursor() ? ? ? ? ? ? sql='update commodity set commodity_name="%s" where commodity_id="%s"'%(self.Entry_update.get(),self.Entry_id.get()) ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? sql2 = 'select * from commodity where commodity_id="%s"' % (self.Entry_id.get()) ? ? ? ? ? ? cursor.execute(sql2) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT,cursor.fetchall()) ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT, "\n你的商品名稱修改成功;\n") ? ? ? ? except: ? ? ? ? ? ? pass ? ? def update_price(self): ? ? ? ? self.delete_Text_query() ? ? ? ? try: ? ? ? ? ? ? cursor=conn.cursor() ? ? ? ? ? ? sql='update commodity set commodity_price="%s" where commodity_id="%s"'%(self.Entry_update.get(),self.Entry_id.get()) ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? sql2 = 'select * from commodity where commodity_id="%s"' % (self.Entry_id.get()) ? ? ? ? ? ? cursor.execute(sql2) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT,cursor.fetchall()) ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT, "\n你的商品售價(jià)修改成功;\n") ? ? ? ? except: ? ? ? ? ? ? pass ? ? def update_pur_price(self): ? ? ? ? self.delete_Text_query() ? ? ? ? try: ? ? ? ? ? ? cursor=conn.cursor() ? ? ? ? ? ? sql='update commodity set commodity_pur_price="%s" where commodity_id="%s"'%(self.Entry_update.get(),self.Entry_id.get()) ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? sql2 = 'select * from commodity where commodity_id="%s"' % (self.Entry_id.get()) ? ? ? ? ? ? cursor.execute(sql2) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT,cursor.fetchall()) ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT, "\n你的商品進(jìn)價(jià)修改成功;\n") ? ? ? ? except: ? ? ? ? ? ? pass ? ? def update_production(self): ? ? ? ? self.delete_Text_query() ? ? ? ? try: ? ? ? ? ? ? cursor=conn.cursor() ? ? ? ? ? ? sql='update commodity set commodity_production="%s" where commodity_id="%s"'%(self.Entry_update.get(),self.Entry_id.get()) ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? sql2 = 'select * from commodity where commodity_id="%s"' % (self.Entry_id.get()) ? ? ? ? ? ? cursor.execute(sql2) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT,cursor.fetchall()) ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT, "\n你的生產(chǎn)日期修改成功;\n") ? ? ? ? except: ? ? ? ? ? ? pass ? ? def update_life(self): ? ? ? ? self.delete_Text_query() ? ? ? ? try: ? ? ? ? ? ? cursor=conn.cursor() ? ? ? ? ? ? sql='update commodity set commodity_life="%s" where commodity_id="%s"'%(self.Entry_update.get(),self.Entry_id.get()) ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? sql2 = 'select * from commodity where commodity_id="%s"' % (self.Entry_id.get()) ? ? ? ? ? ? cursor.execute(sql2) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT,cursor.fetchall()) ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT, "\n你的保質(zhì)期修改成功;\n") ? ? ? ? except: ? ? ? ? ? ? pass ? ? def update_speci(self): ? ? ? ? self.delete_Text_query() ? ? ? ? try: ? ? ? ? ? ? cursor=conn.cursor() ? ? ? ? ? ? sql='update commodity set commodity_speci="%s" where commodity_id="%s"'%(self.Entry_update.get(),self.Entry_id.get()) ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? sql2 = 'select * from commodity where commodity_id="%s"' % (self.Entry_id.get()) ? ? ? ? ? ? cursor.execute(sql2) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT,cursor.fetchall()) ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT, "\n你的商品規(guī)格修改成功;\n") ? ? ? ? except: ? ? ? ? ? ? pass ? ? def warehouse_id(self): ? ? ? ? self.delete_Text_query() ? ? ? ? try: ? ? ? ? ? ? cursor=conn.cursor() ? ? ? ? ? ? sql='update commodity set warehouse_id="%s" where commodity_id="%s"'%(self.Entry_update.get(),self.Entry_id.get()) ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? sql2 = 'select * from commodity where commodity_id="%s"' % (self.Entry_id.get()) ? ? ? ? ? ? cursor.execute(sql2) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT,cursor.fetchall()) ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? self.Text_delete.insert(tkinter.INSERT, "\n你的庫房修改成功;\n") ? ? ? ? except: ? ? ? ? ? ? pass class Commodity_select(MainForm) : ?#查詢 ? ? def __init__(self): ? ? ? ? super().__init__() ? ? ? ? tkinter.Label(self.root, text="查詢商品信息", font=("黑體", 20)).place(x=250, y=0) ? ? ? ? tkinter.Label(self.root, text="所有商品信息", font=("微軟雅黑", 10)).place(x=110, y=30) ? ? ? ? self.Text_select = tkinter.Text(self.root, width=40, height=13, font=("微軟雅黑", 10)) ?# 顯示所有商品信息 ? ? ? ? self.Text_select.place(x=10, y=50) ? ? ? ? tkinter.Label(self.root, text="查詢商品信息", font=("微軟雅黑", 10)).place(x=500, y=30) ? ? ? ? #商品編號 ? ? ? ? tkinter.Label(self.root, text="輸入商品編號查詢:", font=("微軟雅黑", 10)).place(x=350, y=50) ? ? ? ? self.Entry_id = tkinter.Entry(self.root, font=("微軟雅黑", 10)) ?# 輸入商品編號 ? ? ? ? self.Entry_id.place(x=450, y=50) ? ? ? ? tkinter.Button(self.root, text="查詢",command=self.selecte_id_commodity ,font=("微軟雅黑", 7)).place(x=630, y=50) ? ? ? ? tkinter.Label(self.root, text="所有商品編號信息", font=("微軟雅黑", 10)).place(x=100, y=300) ?# 顯示查詢和修改的商品信息 ? ? ? ? self.Text_id = tkinter.Text(self.root, width=30, height=8, font=("微軟雅黑", 10)) ? ? ? ? self.Text_id.place(x=10, y=320) ? ? ? ? # 商品名稱 ? ? ? ? tkinter.Label(self.root, text="輸入商品名稱查詢:", font=("微軟雅黑", 10)).place(x=350, y=100) ? ? ? ? self.Entry_name = tkinter.Entry(self.root, font=("微軟雅黑", 10)) ?# 輸入修改的商品信息 ? ? ? ? self.Entry_name.place(x=450, y=100) ? ? ? ? tkinter.Button(self.root, text="查詢",command=self.selecte_name_commodity, font=("微軟雅黑", 7)).place(x=630, y=100) ? ? ? ? tkinter.Label(self.root, text="所有商品名稱信息", font=("微軟雅黑", 10)).place(x=300, y=300) ?# 顯示查詢和修改的商品信息 ? ? ? ? self.Text_name = tkinter.Text(self.root, width=30, height=8, font=("微軟雅黑", 10)) ? ? ? ? self.Text_name.place(x=210, y=320) ? ? ? ? #商品庫房名稱 ? ? ? ? tkinter.Label(self.root, text="輸入庫房名稱查詢:", font=("微軟雅黑", 10)).place(x=350, y=150) ? ? ? ? self.Entry_warehouse = tkinter.Entry(self.root, font=("微軟雅黑", 10)) ?# 輸入修改的商品信息 ? ? ? ? self.Entry_warehouse.place(x=450, y=150) ? ? ? ? tkinter.Button(self.root, text="查詢",command=self.selecte_warehouse_commodity, font=("微軟雅黑", 7)).place(x=630, y=150) ? ? ? ? tkinter.Label(self.root, text="庫房所有商品信息", font=("微軟雅黑", 10)).place(x=500, y=300) ?# 顯示查詢和修改的商品信息 ? ? ? ? self.Text_warehouse = tkinter.Text(self.root, width=30, height=8, font=("微軟雅黑", 10)) ? ? ? ? self.Text_warehouse.place(x=410, y=320) ? ? ? ? tkinter.Button(self.root, text="返回", command=self.commodity_return, font=("微軟雅黑", 10)).place(x=600, y=450) ? ? ? ? self.selecte_Text_query() ?# 跟新并查詢商品信息 ? ? ? ? self.root.mainloop() ? ? def commodity_return(self): #返回商品界面 ? ? ? ? self.root.destroy() ? ? ? ? Commodity_From() ? ? def selecte_Text_query(self): ?# 更新并查詢商品信息 ? ? ? ? self.Text_select.delete(0.0, tkinter.END) ? ? ? ? self.Text_select.update() ? ? ? ? try: ? ? ? ? ? ? cursor = conn.cursor() ? ? ? ? ? ? sql = 'select * from commodity ' ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? for i in cursor.fetchall(): ? ? ? ? ? ? ? ? self.Text_select.insert(tkinter.INSERT, i) ? ? ? ? ? ? ? ? self.Text_select.insert(tkinter.INSERT, '\n') ? ? ? ? except: ? ? ? ? ? ? pass ? ? def selecte_id_commodity(self): #根據(jù)商品id查詢商品信息 ? ? ? ? def text_id_query(): ?#清空text里面的信息 ? ? ? ? ? ? self.Text_id.delete(0.0,tkinter.END) ? ? ? ? ? ? self.Text_id.update() ? ? ? ? if self.Entry_warehouse.get()=='': ? ? ? ? ? ? text_id_query() ? ? ? ? ? ? self.Text_id.insert(tkinter.INSERT,"你輸入的庫房賬號為空\n") ? ? ? ? else: ? ? ? ? ? ? text_id_query() ? ? ? ? ? ? def select_id(): ? ? ? ? ? ? ? ? cursor=conn.cursor() ? ? ? ? ? ? ? ? sql='select * from commodity where warehouse_id="%s"'%(self.Entry_warehouse.get()) ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? ? ? return cursor.fetchall() ? ? ? ? ? ? if bool(select_id())==True: ? ? ? ? ? ? ? ? for i in select_id(): ? ? ? ? ? ? ? ? ? ? self.Text_id.insert(tkinter.INSERT,i) ? ? ? ? ? ? ? ? ? ? self.Text_id.insert(tkinter.INSERT,'\n') ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? self.Text_id.insert(tkinter.INSERT,"你輸入的商品不在店鋪\n") ? ? def selecte_name_commodity(self): #根據(jù)商品name查詢商品信息 ? ? ? ? def text_name_query(): ?#清空text里面的信息 ? ? ? ? ? ? self.Text_name.delete(0.0,tkinter.END) ? ? ? ? ? ? self.Text_name.update() ? ? ? ? if self.Entry_name.get()=='': ? ? ? ? ? ? text_name_query() ? ? ? ? ? ? self.Text_name.insert(tkinter.INSERT,"你輸入的商品名稱為空\n") ? ? ? ? else: ? ? ? ? ? ? text_name_query() ? ? ? ? ? ? def select_name(): ? ? ? ? ? ? ? ? cursor=conn.cursor() ? ? ? ? ? ? ? ? sql='select * from commodity where commodity_name="%s"'%(self.Entry_name.get()) ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? ? ? return cursor.fetchall() ? ? ? ? ? ? if bool(select_name())==True: ? ? ? ? ? ? ? ? for i in select_name(): ? ? ? ? ? ? ? ? ? ? self.Text_name.insert(tkinter.INSERT,i) ? ? ? ? ? ? ? ? ? ? self.Text_name.insert(tkinter.INSERT,'\n') ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? self.Text_name.insert(tkinter.INSERT,"你輸入的商品名稱查詢不在店鋪\n") ? ? def selecte_warehouse_commodity(self): #根據(jù)商品id查詢商品信息 ? ? ? ? def text_warehouse_query(): ?#清空text里面的信息 ? ? ? ? ? ? self.Text_warehouse.delete(0.0,tkinter.END) ? ? ? ? ? ? self.Text_warehouse.update() ? ? ? ? if self.Entry_warehouse.get()=='': ? ? ? ? ? ? text_warehouse_query() ? ? ? ? ? ? self.Text_warehouse.insert(tkinter.INSERT,"你輸入的庫房為空\n") ? ? ? ? else: ? ? ? ? ? ? text_warehouse_query() ? ? ? ? ? ? def select_warehouse(): ? ? ? ? ? ? ? ? cursor=conn.cursor() ? ? ? ? ? ? ? ? sql='select * from commodity where commodity_id="%s"'%(self.Entry_id.get()) ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? ? ? return cursor.fetchall() ? ? ? ? ? ? if bool(select_warehouse())==True: ? ? ? ? ? ? ? ? for i in select_warehouse(): ? ? ? ? ? ? ? ? ? ? self.Text_warehouse.insert(tkinter.INSERT,i) ? ? ? ? ? ? ? ? ? ? self.Text_warehouse.insert(tkinter.INSERT,'\n') ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? self.Text_warehouse.insert(tkinter.INSERT,"你輸入的庫房查詢不在店鋪\n") class Shop_From(MainForm): ?#店鋪界面設(shè)置,店鋪可以查詢,修改,導(dǎo)出倉庫信息全部商品 ? ? def __init__(self): ? ? ? ? super().__init__() ? ? ? ? self.button1 = tkinter.Button(self.root, text="顧客", command=self.Customer, height=3, width=10).place(x=0, y=430) ? ? ? ? self.button2 = tkinter.Button(self.root, text="商品", command=self.Commodiyt_from_1, height=3, width=10).place(x=150, y=430) ? ? ? ? self.button3 = tkinter.Button(self.root, text="庫房", command=self.Warehouse_1, height=3, width=10).place(x=300, y=430) ? ? ? ? self.button4 = tkinter.Button(self.root, text="導(dǎo)入導(dǎo)出", command=self.export_1, height=3, width=10).place(x=450, y=430) ? ? ? ? self.button1 = tkinter.Button(self.root, text="返回", command=self.The_store_1, height=3, width=10).place(x=600, y=430) ? ? ? ? self.root.mainloop() ? ? def Commodiyt_from_1(self):#進(jìn)入商品界面 ? ? ? ? self.root.destroy() ? ? ? ? Commodity_From() ? ? def The_store_1(self):#進(jìn)入主界面 ? ? ? ? self.root.destroy() ? ? ? ? The_store() ? ? def Warehouse_1(self): ?# 進(jìn)入庫房界面 ? ? ? ? self.root.destroy() ? ? ? ? Warehouse() ? ? def export_1(self):#進(jìn)入導(dǎo)出界面 ? ? ? ? self.root.destroy() ? ? ? ? Shop_export() ? ? def Customer(self):# ?顧客管理 ? ? ? ? def remove_Text_purint(): ?#清空Customer_Text_purint數(shù)據(jù) ? ? ? ? ? ? Customer_Text_purint.delete(0.0, tkinter.END) ? ? ? ? ? ? Customer_Text_purint.update() ? ? ? ? def import_user(): ?#導(dǎo)出所有用戶信息到Customer_Text中 ? ? ? ? ? ? cursor = conn.cursor() ? ? ? ? ? ? sql = 'select * from customer' ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? Customer_Text.delete(0.0, tkinter.END) ? ? ? ? ? ? Customer_Text.update() ? ? ? ? ? ? Customer_Text.insert(tkinter.INSERT, '你的所有商品信息\n') ? ? ? ? ? ? for x in cursor.fetchall(): ? ? ? ? ? ? ? ? Customer_Text.insert(tkinter.INSERT,x) ? ? ? ? ? ? ? ? Customer_Text.insert(tkinter.INSERT, '\n') ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? cursor.close() ? ? ? ? def query_user():# 查詢用戶信息 ? ? ? ? ? ? cursor=conn.cursor() ? ? ? ? ? ? sql='select * from customer where customer_id="%s" and customer_password="%s"'%(Customer_Entry_user.get(),Customer_Entry_password.get()) ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? return cursor.fetchall() ? ? ? ? #....................修改用戶名......................... ? ? ? ? def delete_user():# ?修改用戶信息 ? ? ? ? ? ? def delete_user_od() : #修改 ? ? ? ? ? ? ? ? cursor = conn.cursor() ? ? ? ? ? ? ? ? sql='update customer set customer_name="%s" where customer_id="%s"'%(Customer_Entry_name.get(),Customer_Entry_user.get()) ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? if Customer_Entry_user.get()=='': ? ? ? ? ? ? ? ? remove_Text_purint() ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, "用戶名輸入為空\n") ? ? ? ? ? ? elif Customer_Entry_password.get()=='': ? ? ? ? ? ? ? ? remove_Text_purint() ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, "密碼輸入為空\n") ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? ? ? remove_Text_purint() ? #清空 ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT,'你原用戶信息\n') ?# 提示信息 ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, query_user()) ?#查詢 ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, "\n你修改后用戶信息\n") ?# 查詢 ? ? ? ? ? ? ? ? ? ? delete_user_od() ?#進(jìn)行修改 ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, query_user()) ?# 在查詢 ? ? ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? ? ? remove_Text_purint() ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, "用戶修改失敗\n") ? ? ? ? # ....................修改密碼......................... ? ? ? ? def delete_password():#修改密碼 ? ? ? ? ? ? def delete_user_od() : #對密碼修改 ? ? ? ? ? ? ? ? cursor = conn.cursor() ? ? ? ? ? ? ? ? sql='update customer set customer_password="%s" where customer_id="%s"'%(Customer_Entry_password.get(),Customer_Entry_user.get()) ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? def query_user(): ?# 查詢用戶信息 ? ? ? ? ? ? ? ? cursor = conn.cursor() ? ? ? ? ? ? ? ? sql = 'select * from customer where customer_id="%s"'% ( ? ? ? ? ? ? ? ? Customer_Entry_user.get()) ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? ? ? return cursor.fetchall() ? ? ? ? ? ? if Customer_Entry_user.get()=='': ? ? ? ? ? ? ? ? remove_Text_purint() ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, "用戶名輸入為空\n") ? ? ? ? ? ? elif Customer_Entry_password.get()=='': ? ? ? ? ? ? ? ? remove_Text_purint() ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, "密碼輸入為空\n") ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? ? ? remove_Text_purint() ? #清空 ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT,'你原用戶信息\n') ?# 提示信息 ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, query_user()) ?#查詢 ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, "\n你修改后的用戶信息\n") ?# 查詢 ? ? ? ? ? ? ? ? ? ? delete_user_od() ?#進(jìn)行修改 ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, query_user()) ?# 在查詢 ? ? ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? ? ? remove_Text_purint() ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, "用戶修改失敗\n") ? ? ? ? ? ? # ....................增加用戶......................... ? ? ? ? def add_user(): ?#增加用戶 ? ? ? ? ? ? def delete_user_add() : #增加修改 ? ? ? ? ? ? ? ? cursor = conn.cursor() ? ? ? ? ? ? ? ? sql='insert into customer values(%s,%s,%s,0)'%(Customer_Entry_user.get(),Customer_Entry_name.get(),Customer_Entry_password.get()) ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? def query_user(): ?# 查詢用戶信息 ? ? ? ? ? ? ? ? cursor = conn.cursor() ? ? ? ? ? ? ? ? sql = 'select * from customer where customer_id="%s"'% ( ? ? ? ? ? ? ? ? Customer_Entry_user.get()) ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? ? ? return cursor.fetchall() ? ? ? ? ? ? if Customer_Entry_user.get()=='': ? ? ? ? ? ? ? ? remove_Text_purint() ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, "用戶名輸入為空\n") ? ? ? ? ? ? elif Customer_Entry_password.get()=='': ? ? ? ? ? ? ? ? remove_Text_purint() ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, "密碼輸入為空\n") ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? ? ? remove_Text_purint() ? #清空 ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, "你增加的用戶信息\n") ?# 查詢 ? ? ? ? ? ? ? ? ? ? delete_user_add() ?#進(jìn)行修改 ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, query_user()) ?# 在查詢 ? ? ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? ? ? remove_Text_purint() ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, "用戶已存在,用戶添加失敗\n") ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, query_user()) ?# 在查詢 ? ? ? ? ? ? # ....................刪除用戶......................... ? ? ? ? def drop_user(): ?#刪除用戶 ? ? ? ? ? ? def delete_user_drop() : #刪除修改 ? ? ? ? ? ? ? ? cursor = conn.cursor() ? ? ? ? ? ? ? ? sql='delete from customer where customer_id="%s" and customer_password="%s"'%(Customer_Entry_user.get(),Customer_Entry_password.get()) ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? def query_user(): ?# 查詢用戶信息 ? ? ? ? ? ? ? ? cursor = conn.cursor() ? ? ? ? ? ? ? ? sql = 'select * from customer where customer_id="%s"'% ( ? ? ? ? ? ? ? ? Customer_Entry_user.get()) ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? ? ? return cursor.fetchall() ? ? ? ? ? ? if Customer_Entry_user.get()=='': ? ? ? ? ? ? ? ? remove_Text_purint() ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, "用戶名輸入為空\n") ? ? ? ? ? ? elif Customer_Entry_password.get()=='': ? ? ? ? ? ? ? ? remove_Text_purint() ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, "密碼輸入為空\n") ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? ? ? remove_Text_purint() ? #清空 ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, "你刪除的用戶信息\n") ?# 查詢 ? ? ? ? ? ? ? ? ? ? delete_user_drop() ?#刪除 ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, query_user()) ?# 在查詢 ? ? ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? ? ? remove_Text_purint() ? ? ? ? ? ? ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT, "用戶輸入不對,用戶刪除失敗\n") ? ? ? ? tkinter.Label(self.root, text="顧客信息", font=("黑體", 20)).place(x=260, y=0) ? ? ? ? Customer_Text=tkinter.Text(self.root,width=50,height=20,font=("微軟雅黑",10)) ? ? ? ? Customer_Text.place(x=0,y=30) ? ? ? ? import_user() ? ? ? ? tkinter.Label(self.root, text="用戶信息修改", font=("黑體", 10)).place(x=500, y=10) ? ? ? ? tkinter.Label(self.root, text="用戶賬號", font=("黑體", 10)).place(x=420, y=50) ? ? ? ? tkinter.Label(self.root, text="密 ? ?碼", font=("黑體", 10)).place(x=420, y=100) ? ? ? ? tkinter.Label(self.root, text="用 戶 名", font=("黑體", 10)).place(x=420, y=150) ? ? ? ? tkinter.Label(self.root, text="電 ? ?話", font=("黑體", 10)).place(x=420, y=200) ? ? ? ? Customer_Entry_user = tkinter.Entry(self.root, font=("微軟雅黑", 10)) ?# 顯示框 ? ? ? ? Customer_Entry_user.place(x=500,y=50) ? ? ? ? Customer_Entry_password = tkinter.Entry(self.root, font=("微軟雅黑", 10),show='*') ?# 顯示框 ? ? ? ? Customer_Entry_password.place(x=500,y=100) ? ? ? ? Customer_Entry_name = tkinter.Entry(self.root, font=("微軟雅黑", 10)) ?# 顯示框 ? ? ? ? Customer_Entry_name.place(x=500, y=150) ? ? ? ? Customer_Entry_phon = tkinter.Entry(self.root, font=("微軟雅黑", 10)) ?# 顯示框 ? ? ? ? Customer_Entry_phon.place(x=500, y=200) ? ? ? ? tkinter.Button(self.root,text="修改用戶信息",command=delete_user,font=('微軟雅黑',10)).place(x=420,y=250) ? ? ? ? tkinter.Button(self.root, text="修改密碼", command=delete_password, font=('微軟雅黑', 10)).place(x=420, y=300) ? ? ? ? tkinter.Button(self.root, text="添加用戶", command=add_user, font=('微軟雅黑', 10)).place(x=560, y=250) ? ? ? ? tkinter.Button(self.root, text="刪除用戶", command='1111', font=('微軟雅黑', 10)).place(x=560, y=300) ? ? ? ? Customer_Text_purint=tkinter.Text(self.root,width=30,height=3,font=("微軟雅黑",10)) ? ? ? ? Customer_Text_purint.place(x=420, y=350) ? ? ? ? Customer_Text_purint.insert(tkinter.INSERT,"輸入正確的賬號密碼可以修改用戶名\n輸入正確的賬號可以修改密碼\n" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"輸入沒有的賬號,用戶名,密碼可以添加賬號\n輸入正確的賬號,密碼可以刪除賬號") class Shop_export(MainForm):#導(dǎo)入導(dǎo)出 ? ? def __init__(self): ? ? ? ? super().__init__() ? ? ? ? tkinter.Label(self.root, text="導(dǎo)入導(dǎo)出顧客商品信息", font=("黑體", 20)).place(x=200, y=0) ? ? ? ? self.prompt=tkinter.Text(self.root,width=55,height=5,font=("微軟雅黑",15)) ? ? ? ? self.prompt.place(x=10,y=50) ? ? ? ? #————————————————導(dǎo)入———————————————————————— ? ? ? ? tkinter.Label(self.root,text="輸入導(dǎo)入的絕對地址:",font=("微軟雅黑",15)).place(x=70,y=200) ? ? ? ? self.leading_in=tkinter.Entry(self.root,font=("黑體",15)) ? ? ? ? self.leading_in.place(x=50,y=250) ? ? ? ? tkinter.Button(self.root, text="導(dǎo)入顧客", command=self.leading_in_customer,font=("微軟雅黑",15)).place(x=100, y=300) ? ? ? ? tkinter.Button(self.root, text="導(dǎo)入商品", command=self.leading_in_commodity, font=("微軟雅黑",15)).place( ? ? ? ? ? ? x=100, y=350) ? ? ? ? #————————————————導(dǎo)出———————————————— ? ? ? ? tkinter.Label(self.root, text="輸入導(dǎo)出的絕對地址:", font=("微軟雅黑", 15)).place(x=420, y=200) ? ? ? ? self.leading_out = tkinter.Entry(self.root, font=("黑體", 15)) ? ? ? ? self.leading_out.place(x=400, y=250) ? ? ? ? tkinter.Button(self.root, text="導(dǎo)出顧客", command=self.leading_out_customer, font=("微軟雅黑",15)).place(x=450, y=300) ? ? ? ? tkinter.Button(self.root, text="導(dǎo)出商品", command=self.leading_out_commodity,font=("微軟雅黑",15)).place( ? ? ? ? ? ? x=450, y=350) ? ? ? ? tkinter.Button(self.root, text="查看顧客", command=self.look_customer, font=("微軟雅黑", 15)).place(x=0, y=430) ? ? ? ? tkinter.Button(self.root, text="查看商品", command=self.look_commodity, font=("微軟雅黑", 15)).place(x=300, y=430) ? ? ? ? tkinter.Button(self.root, text="返回商品", command=self.The_store_1,font=("微軟雅黑",15)).place(x=600,y=430) ? ? ? ? self.root.mainloop() ? ? def The_store_1(self): #返回商品 ? ? ? ? self.root.destroy() ? ? ? ? The_store() ? ? def clean_prompt(self): ?#清除提示框 ? ? ? ? self.prompt.delete(0.0,tkinter.END) ? ? ? ? self.prompt.update() ? ? def look_customer(self): #查看顧客 ? ? ? ? cursor=conn.cursor() ? ? ? ? cursor.execute("select * from customer") ? ? ? ? conn.commit() ? ? ? ? cursor.close() ? ? ? ? self.clean_prompt() ? ? ? ? for i in cursor.fetchall(): ? ? ? ? ? ? self.prompt.insert(tkinter.INSERT,i) ? ? def look_commodity(self): #查看商品 ? ? ? ? cursor=conn.cursor() ? ? ? ? cursor.execute("select * from commodity") ? ? ? ? conn.commit() ? ? ? ? cursor.close() ? ? ? ? self.clean_prompt() ? ? ? ? for i in cursor.fetchall(): ? ? ? ? ? ? self.prompt.insert(tkinter.INSERT,i) ? ? def leading_in_customer(self): ?#導(dǎo)入顧客信息 ? ? ? ? global global_id ? ? ? ? self.clean_prompt() ? ? ? ? address=self.leading_in.get() ? ? ? ? df_customer=pd.read_excel(address) ? ? ? ? def go_shopping(): ?# 查看購物情況 ? ? ? ? ? ? sql = ' select sum(commodity_amount) from commodity GROUP BY customer_id;' ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? return cursor.fetchone() ? ? ? ? cursor = conn.cursor() ?# 創(chuàng)建游標(biāo) ? ? ? ? try: ? ? ? ? ? ? for co in range(len(df_customer["用戶賬號"])): ? ? ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? ? ? sql = 'insert into customer values (%s,%s,%s,%s,%s,%s);' ?# 添加數(shù)據(jù) ? ? ? ? ? ? ? ? ? ? cursor.execute(sql, ( ? ? ? ? ? ? ? ? ? ? ? ? df_customer["用戶賬號"][co], ? ? ? ? ? ? ? ? ? ? ? ? df_customer["密碼"][co], ? ? ? ? ? ? ? ? ? ? ? ? df_customer["用戶名"][co], ? ? ? ? ? ? ? ? ? ? ? ? df_customer["電話"][co], ? ? ? ? ? ? ? ? ? ? ? ? go_shopping(), ? ? ? ? ? ? ? ? ? ? ? ? global_id) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?) ?# 執(zhí)行添加數(shù)據(jù) ? ? ? ? ? ? ? ? ? ? conn.commit() ?# 提交 ? ? ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? ? ? self.prompt.insert(tkinter.INSERT,"你的用戶賬號已導(dǎo)入\n") ? ? ? ? ? ? ? ? ? ? self.prompt.insert(tkinter.INSERT,df_customer["用戶賬號"][co]) ? ? ? ? ? ? ? ? ? ? self.prompt.insert(tkinter.INSERT, "\n") ? ? ? ? except: ? ? ? ? ? ? self.prompt.insert(tkinter.INSERT, "錯(cuò)誤:你導(dǎo)入的信息不符合導(dǎo)入格式\n") ? ? ? ? cursor.close() ?# 關(guān)閉游標(biāo) ? ? def leading_in_commodity(self): ?#導(dǎo)入顧客信息 ? ? ? ? global global_id ? ? ? ? self.clean_prompt() ? ? ? ? address = self.leading_in.get() ? ? ? ? df_commodity = pd.read_excel(address) ? ? ? ? cursor = conn.cursor() ?# 創(chuàng)建游標(biāo) ? ? ? ? try: ? ? ? ? ? ? for co in range(len(df_commodity["商品編碼"])): ? ? ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? ? ? sql = 'insert into commodity values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);' ?# 添加數(shù)據(jù) ? ? ? ? ? ? ? ? ? ? cursor.execute(sql, ( ? ? ? ? ? ? ? ? ? ? ? ? df_commodity["商品編碼"][co], ? ? ? ? ? ? ? ? ? ? ? ? df_commodity["商品名稱"][co], ? ? ? ? ? ? ? ? ? ? ? ? df_commodity["商品售價(jià)"][co], ? ? ? ? ? ? ? ? ? ? ? ? df_commodity["商品進(jìn)價(jià)"][co], ? ? ? ? ? ? ? ? ? ? ? ? df_commodity["生產(chǎn)日期"][co], ? ? ? ? ? ? ? ? ? ? ? ? df_commodity["保質(zhì)期"][co], ? ? ? ? ? ? ? ? ? ? ? ? df_commodity["商品規(guī)格"][co], ? ? ? ? ? ? ? ? ? ? ? ? df_commodity["銷售數(shù)量"][co], ? ? ? ? ? ? ? ? ? ? ? ? global_id, ? ? ? ? ? ? ? ? ? ? ? ? df_commodity["庫房編號"][co], ? ? ? ? ? ? ? ? ? ? ? ? df_commodity["顧客編號"][co]) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?) ?# 執(zhí)行添加數(shù)據(jù) ? ? ? ? ? ? ? ? ? ? conn.commit() ?# 提交 ? ? ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? ? ? self.prompt.insert(tkinter.INSERT, "你的商品賬號已導(dǎo)入\n") ? ? ? ? ? ? ? ? ? ? self.prompt.insert(tkinter.INSERT, df_commodity["商品編碼"][co]) ? ? ? ? ? ? ? ? ? ? self.prompt.insert(tkinter.INSERT, "\n") ? ? ? ? except: ? ? ? ? ? ? self.prompt.insert(tkinter.INSERT, "錯(cuò)誤:你導(dǎo)入的信息不符合導(dǎo)入格式\n") ? ? ? ? cursor.close() ?# 關(guān)閉游標(biāo) ? ? def leading_out_customer(self): #導(dǎo)出顧客 ? ? ? ? def select_(): ? ? ? ? ? ? cursor = conn.cursor() ? ? ? ? ? ? cursor.execute("select * from customer") ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? return cursor.fetchall() ? ? ? ? b=['顧客帳號','顧客密碼','顧客名稱','顧客電話','消費(fèi)情況','店鋪帳號'] ? ? ? ? c=self.leading_out.get() ? ? ? ? df=pd.DataFrame(select_(),columns=b) ? ? ? ? try: ? ? ? ? ? ? df.to_excel(c,index=0) ? ? ? ? except: ? ? ? ? ? ? self.prompt.insert(tkinter.INSERT,"地址格式錯(cuò)誤:") ? ? def leading_out_commodity(self): #導(dǎo)出顧客 ? ? ? ? def select_commoidty(): ? ? ? ? ? ? cursor = conn.cursor() ? ? ? ? ? ? cursor.execute("select * from commodity") ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? return cursor.fetchall() ? ? ? ? b=['商品編號','商品名稱','商品售價(jià)','商品進(jìn)價(jià)','生產(chǎn)日期','保質(zhì)期','商品規(guī)格','銷售數(shù)量','店鋪編號','庫房編號','顧客編號'] ? ? ? ? c=self.leading_out.get() ? ? ? ? df=pd.DataFrame(select_commoidty(),columns=b) ? ? ? ? try: ? ? ? ? ? ? df.to_excel(c,index=0) ? ? ? ? except: ? ? ? ? ? ? self.prompt.insert(tkinter.INSERT,"地址格式錯(cuò)誤:") class Warehouse(MainForm):#庫房 ? ? def __init__(self): ? ? ? ? super().__init__() ? ? ? ? tkinter.Label(self.root, text="庫房", font=("黑體", 20)).place(x=300, y=0) ? ? ? ? #庫房統(tǒng)計(jì)查詢 ? ? ? ? tkinter.Button(self.root, text="庫存情況", command=self.Warehouse_situation, height=3, width=10).place(x=0, y=430) ? ? ? ? tkinter.Button(self.root, text="庫存導(dǎo)出", command=self.leading_out_warehouse, height=3, width=10).place(x=300, y=430) ? ? ? ? tkinter.Button(self.root, text="返回菜單", command=self.The_store_1, height=3, width=10).place(x=600, y=430) ? ? ? ? self.root.mainloop() ? ? def The_store_1(self): ?#返回菜單 ? ? ? ? self.root.destroy() ? ? ? ? The_store() ? ? def Warehouse_situation(self): ?#庫存情況 ? ? ? ? tkinter.Label(self.root, text="店鋪帳號:", font=("微軟雅黑", 15)).place(x=100,y=200) ? ? ? ? self.entry_warehouse = tkinter.Entry(self.root, font=("微軟雅黑", 15)) ? ? ? ? self.entry_warehouse.place(x=250, y=200) ? ? ? ? tkinter.Label(self.root, text="店鋪密碼:", font=("微軟雅黑", 15)).place(x=100, y=250) ? ? ? ? self.entry_password = tkinter.Entry(self.root, font=("微軟雅黑", 15)) ? ? ? ? self.entry_password.place(x=250, y=250) ? ? ? ? tkinter.Button(self.root, text="查詢", command=self.Warehouse_confirm,font=("微軟雅黑", 10)).place(x=600, y=200) ? ? ? ? self.Text_warehouse=tkinter.Text(self.root,width=80,height=7,font=("微軟雅黑", 10)) ? ? ? ? self.Text_warehouse.place(x=12,y=30) ? ? ? ? tkinter.Label(self.root, text="導(dǎo)出地址:", font=("微軟雅黑", 15)).place(x=100, y=300) ? ? ? ? self.leading_warehouse_Entry = tkinter.Entry(self.root, font=("微軟雅黑", 15)) ? ? ? ? self.leading_warehouse_Entry.place(x=250, y=300) ? ? def remove_Text_warehouse(self): ? ? ? ? self.Text_warehouse.delete(0.0,tkinter.END) ? ? ? ? self.Text_warehouse.update() ? ? def Warehouse_confirm(self): ?#執(zhí)行查詢結(jié)果 ? ? ? ? self.remove_Text_warehouse() ? ? ? ? def selecte_warehouse(): ? ? ? ? ? ? try: ? ? ? ? ? ? ? ? cursor = conn.cursor() ? ? ? ? ? ? ? ? sql=' select commodity_name,count(*),warehouse_id from commodity GROUP BY commodity_name having ' \ ? ? ? ? ? ? ? ? ? ? 'warehouse_id=(select warehouse_id from warehouse where warehouse_id="%s"' \ ? ? ? ? ? ? ? ? ? ? ' and warehouse_password="%s")'%(self.entry_warehouse.get(),self.entry_password.get()) ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? ? ? self.remove_Text_warehouse() ? ? ? ? ? ? ? ? return cursor.fetchall() ? ? ? ? ? ? except: ? ? ? ? ? ? ? ? pass ? ? ? ? if bool(selecte_warehouse())==True: ? ? ? ? ? ? self.Text_warehouse.insert(tkinter.INSERT, "商品名稱,庫存,庫房號:\n") ? ? ? ? ? ? for i in selecte_warehouse(): ? ? ? ? ? ? ? ? self.Text_warehouse.insert(tkinter.INSERT,i) ? ? ? ? ? ? ? ? self.Text_warehouse.insert(tkinter.INSERT,'\n') ? ? ? ? else: ? ? ? ? ? ? self.Text_warehouse.insert(tkinter.INSERT,"庫房賬號,或密碼輸入不對\n") ? ? def leading_out_warehouse(self): ?#導(dǎo)出庫存 ? ? ? ? self.remove_Text_warehouse() ? ? ? ? try: ? ? ? ? ? ? def selecte_warehouse(): ? ? ? ? ? ? ? ? cursor = conn.cursor() ? ? ? ? ? ? ? ? sql = 'select commodity_name,count(*),warehouse_id from commodity group by commodity_name having warehouse_id="%s"'%(self.entry_warehouse.get()) ? ? ? ? ? ? ? ? cursor.execute(sql) ? ? ? ? ? ? ? ? conn.commit() ? ? ? ? ? ? ? ? cursor.close() ? ? ? ? ? ? ? ? return cursor.fetchall() ? ? ? ? ? ? if bool(selecte_warehouse())==True: ? ? ? ? ? ? ? ? df=pd.DataFrame(selecte_warehouse(),columns=["商品名稱","剩余數(shù)量","庫房名稱"]) ? ? ? ? ? ? ? ? df.to_excel(self.leading_warehouse_Entry.get(),index=0) ? ? ? ? ? ? ? ? self.Text_warehouse.insert(tkinter.INSERT, "庫存導(dǎo)出成功\n") ? ? ? ? ? ? else:self.Text_warehouse.insert(tkinter.INSERT,"請先查庫存\n") ? ? ? ? except: ? ? ? ? ? ? self.Text_warehouse.insert(tkinter.INSERT,"程序運(yùn)行錯(cuò)誤:\n") if __name__=="__main__": ? ? conn=pymysql.connect( ? #連接MySQL ? ? ? ? host='localhost', ? #本地服務(wù)器 ? ? ? ? port=3306, #服務(wù)器端口 ? ? ? ? user='root', #用戶名 ? ? ? ? password='123456', ? ? ? ? db='cpsim', ? ? ? ? charset='utf8' ? ? ? ? ) ? ? global_id = 0 ? ? The_login() ? ? conn.close()
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python標(biāo)準(zhǔn)庫06之子進(jìn)程 (subprocess包) 詳解
本篇文章主要介紹了Python標(biāo)準(zhǔn)庫06之子進(jìn)程 (subprocess包) 詳解,具有一定的參考價(jià)值,有興趣的同學(xué)可以了解一下。2016-12-12用python按照圖像灰度值統(tǒng)計(jì)并篩選圖片的操作(PIL,shutil,os)
這篇文章主要介紹了用python按照圖像灰度值統(tǒng)計(jì)并篩選圖片的操作(PIL,shutil,os),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06基于Python在MacOS上安裝robotframework-ride
今天小編就為大家分享一篇關(guān)于基于Python在MacOS上安裝robotframework-ride,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12深入理解Python虛擬機(jī)中浮點(diǎn)數(shù)(float)的實(shí)現(xiàn)原理及源碼
在本篇文章當(dāng)中主要分析在 cpython 虛擬機(jī)當(dāng)中 float 類型的實(shí)現(xiàn)原理以及與他相關(guān)的一些源代碼,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-03-03python實(shí)現(xiàn)類之間的方法互相調(diào)用
下面小編就為大家分享一篇python實(shí)現(xiàn)類之間的方法互相調(diào)用,具有很的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04Python?sklearn預(yù)測評估指標(biāo)混淆矩陣計(jì)算示例詳解
這篇文章主要為大家介紹了Python?sklearn預(yù)測評估指標(biāo)混淆矩陣計(jì)算示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02