def addsub(): pname=entrytext1.get() syear=entrytext2.get() pmail=entrytext3.get() if pname and pmail and syear: if sql.Sqloperation().checkinputsub(pmail,syear): tk.messagebox.showerror(title='信息', message=sql.Sqloperation().checkinputsub(pmail,syear)) return try: syearn=int(syear) except: tk.messagebox.showerror(title='信息', message='“征订年份”的格式不符合要求') return comfirmc = tk.messagebox.askyesno('确认',message=r"""期刊名称:{} 邮发代码:{} 征订年份:{} 信息是否无误? """.format(pname,pmail,syear)) if comfirmc: if sql.Sqloperation().subscript(pname,pmail,syear): tk.messagebox.showinfo(title='信息', message='添加征订成功') else: tk.messagebox.showerror(title='信息', message='添加征订失败,请重试') else:return else: tk.messagebox.showerror(title='信息', message='不允许留空!')
def sign_to_system(): # 以下三行就是获取我们注册时所输入的信息 np = new_pwd.get() npf = new_pwd_confirm.get() nn = new_name.get() # 这里就是判断,如果两次密码输入不一致,则提示Error, Password and confirm password must be the same! if np != npf: tkinter.messagebox.showerror('提示信息',message='两次密码不一致') return False # 如果用户名已经在我们的数据文件中,则提示Error, The user has already signed up! elif sql.Sqloperation().is_user_exist(nn): tkinter.messagebox.showerror('提示信息',message='账号已存在') return False elif not sql.Sqloperation().checkpassformat(np): tkinter.messagebox.showerror('提示信息',message='密码格式不正确,不能为空以及包含空格') return False elif not sql.Sqloperation().checkidformat(nn): tkinter.messagebox.showerror('提示信息',message='工号格式(1字母+8数字)不正确') return False # 最后如果输入无以上错误,则将注册输入的信息记录到文件当中,并提示注册成功Welcome!,You have successfully signed up!,然后销毁窗口。 else: sql.Sqloperation().adduser(nn,np) tkinter.messagebox.showinfo('提示信息',message='注册成功') # 然后销毁窗口。 sign_up_window.destroy()
def catalogc(): pname=entrytext1.get() pcn=entrytext2.get() pisn=entrytext3.get() pmail=entrytext4.get() pper=entrytext5.get() ploc=entrytext6.get() ppress=entrytext7.get() if sql.Sqloperation().checkinputcatalog(pcn,pisn,pmail,pper): tk.messagebox.showerror(title='信息', message=sql.Sqloperation().checkinputcatalog(pcn,pisn,pmail,pper)) return if pname and pcn and pisn and pmail and pper and ploc and ppress: comfirmc = tk.messagebox.askyesno('确认',message=r"""期刊名称:{} CN刊号:{} ISSN:{} 邮发代码:{} 出版周期:{} 出版地:{} 主办单位:{} 信息是否无误? """.format(pname,pcn,pisn,pmail,pper,ploc,ppress)) if comfirmc: if sql.Sqloperation().addcatalog(pname,pcn,pisn,pmail,pper,ploc,ppress): tk.messagebox.showinfo(title='信息', message='目录登记成功') else: tk.messagebox.showerror(title='信息', message='目录登记失败,请重试') else:return else: tk.messagebox.showerror(title='信息', message='不允许留空!')
def lentrp(): itemexist=False for item in tree.selection(): itemexist=True item_text = tree.item(item,"values") if not itemexist: tk.messagebox.showerror(title='信息', message='借出失败,请先用鼠标选中一本期刊') return pname=item_text[1] pyear=int(item_text[2]) pvolume=int(item_text[3]) pissue=int(item_text[4]) if not entrytextuname.get(): tk.messagebox.showerror(title='信息', message='借出失败,请输入借出工号名') return elif not sql.Sqloperation().checkidformat(entrytextuname.get()): tk.messagebox.showerror(title='信息', message='工号格式(1字母+8数字)不正确,请重试') return # if the booking id match resultsb = sql.Sqloperation().inquiry_pbinfo(entrytext.get()) matchedrecord=[None]*10 for b in range(resultsb.__len__()): if pname==resultsb[b][3] and pyear==resultsb[b][4] and pvolume==resultsb[b][5] and pissue==resultsb[b][6]: matchedrecord=resultsb[b] if matchedrecord[9] and matchedrecord[9]!=entrytextuname.get(): tk.messagebox.showerror(title='信息', message='借出失败,该期刊已被其他用户预定') return if sql.Sqloperation().lend(entrytextuname.get(),pname,pyear,pvolume,pissue): tk.messagebox.showinfo(title='信息', message='借出成功') else: tk.messagebox.showerror(title='信息', message='借出失败,请重试')
def contentc(): pname=entrytext1.get() pyear=entrytext2.get() pvolume=entrytext3.get() pissue=entrytext4.get() ptitle=entrytext5.get() pauther=entrytext6.get() ppage=entrytext8.get() if pname and pyear and pvolume and pissue and ptitle and pauther and entrytext7.get() and ppage: if sql.Sqloperation().checkinputcontent(pyear,ppage): tk.messagebox.showerror(title='信息', message=sql.Sqloperation().checkinputcontent(pyear,ppage)) return if entrytext7.get().count(';')>entrytext7.get().count(';'): opkws=entrytext7.get().split(";") else: opkws=entrytext7.get().split(";") npkws=[None,None,None,None,None] for _ in range(len(opkws)): npkws[_]=opkws[_] try: pyearn=int(pyear) except: tk.messagebox.showerror(title='信息', message='“年”的格式不符合要求') return try: pvolumen=int(pvolume) except: tk.messagebox.showerror(title='信息', message='“卷”的格式不符合要求') return try: pissuen=int(pissue) except: tk.messagebox.showerror(title='信息', message='“期”的格式不符合要求') return comfirmc = tk.messagebox.askyesno('确认',message=r"""期刊名称:{} 年:{} 卷:{} 期:{} 文章标题:{} 作者姓名:{} 所在页码:{} 关键词1:{} 关键词2:{} 关键词3:{} 关键词4:{} 关键词5:{} 信息是否无误? """.format(pname,pyear,pvolume,pissue,ptitle,pauther,ppage,npkws[0],npkws[1],npkws[2],npkws[3],npkws[4])) if comfirmc: if sql.Sqloperation().addcontent(pname,pyear,pvolume,pissue,ptitle,pauther,ppage,npkws[0],npkws[1],npkws[2],npkws[3],npkws[4]): tk.messagebox.showinfo(title='信息', message='期刊内容登记成功') else: tk.messagebox.showerror(title='信息', message='期刊内容登记失败,请重试') else:return else: tk.messagebox.showerror(title='信息', message='不允许留空!')
def changepass(): if not sql.Sqloperation().is_pass_match(aname,entrytext1.get()): tk.messagebox.showerror('提示信息',message='原密码错误') return False if entrytext3.get()!=entrytext2.get(): tk.messagebox.showerror(title='信息', message='新密码两次输入不一致,请重试') elif not sql.Sqloperation().checkpassformat(entrytext2.get()): tk.messagebox.showerror('提示信息',message='密码格式不正确,不能为空以及包含空格') return False else: if sql.Sqloperation().update_admin_passwd(aname,entrytext2.get()): tk.messagebox.showinfo('提示信息',message='修改成功') else: tk.messagebox.showerror('提示信息',message='修改失败')
def getsub(): results=sql.Sqloperation().inquirysubscription() items = tree.get_children() for item in items: tree.delete(item) for _ in range(results.__len__()): tree.insert('', 'end', values=results[_])
def search_content_byau(): results = sql.Sqloperation().inquiry_content_by_au(entrytext1.get()) if not results.__len__(): tk.messagebox.showerror(title='信息', message='未查找到相关内容') else: items = tree.get_children() for item in items: tree.delete(item) for _ in range(results.__len__()): tree.insert('', 'end', values=results[_])
def searchpn(): results = sql.Sqloperation().inquiry_pbinfo(entrytext.get()) if not results.__len__(): tk.messagebox.showerror(title='信息', message='未查找到已被借阅的相关期刊') else: items = tree.get_children() for item in items: tree.delete(item) for _ in range(results.__len__()): tree.insert('', 'end', values=results[_])
def usr_login(): # 这两行代码就是获取用户输入的usr_name和usr_pwd usr_name = var_usr_name.get() usr_pwd = var_usr_pwd.get() # 如果用户名和密码与文件中的匹配成功,则会登录成功 if sql.Sqloperation().is_user_exist(usr_name): if sql.Sqloperation().is_pass_match(usr_name,usr_pwd): tkinter.messagebox.showinfo(title='登录信息', message='登录成功') login_window.destroy() if sql.Sqloperation().is_admin(usr_name):goto_adminui(usr_name) else: goto_normalui(usr_name) # 如果用户名匹配成功,而密码输入错误,则会弹出'Error, your password is wrong, try again.' else: tkinter.messagebox.showerror(title='登录信息', message='登录失败,请检查用户名或密码') # 如果发现用户名不存在 else: is_sign_up = tkinter.messagebox.askyesno('提示信息',message=' 该账号不存在,是否转到注册页面?') # 提示需不需要注册新用户 if is_sign_up:usr_sign_up()
def searchun(): results = sql.Sqloperation().inquiry_ubinfo(username) if not results.__len__(): tk.messagebox.showerror(title='信息', message='您暂未借阅期刊') else: items = tree.get_children() for item in items: tree.delete(item) for _ in range(results.__len__()): tree.insert('', 'end', values=results[_])
def cbookp(): for item in tree.selection(): item_text = tree.item(item, "values") pname = item_text[0] pyear = item_text[1] pvolume = item_text[2] pissue = item_text[3] if sql.Sqloperation().bookp(pname, username, pyear, pvolume, pissue): tk.messagebox.showinfo(title='信息', message='预定成功') else: tk.messagebox.showerror(title='信息', message='预定失败,请联系管理员')
def searchrp(): resultsr = sql.Sqloperation().inquiry_register(entrytext.get()) resultsb = sql.Sqloperation().inquiry_pbinfo(entrytext.get()) discardrecord=[] if not resultsr.__len__(): tk.messagebox.showerror(title='信息', message='未查找到相关期刊') return if resultsb.__len__(): "there is record in borrow table" for r in range(resultsr.__len__()): for b in range(resultsb.__len__()): if resultsr[r][1]==resultsb[b][3] and resultsr[r][2]==resultsb[b][4] and resultsr[r][3]==resultsb[b][5] and resultsr[r][4]==resultsb[b][6] and not resultsb[b][8]: discardrecord.append(r) """ if not resultsb[b][8]: "not returned" discardrecord.append(r) """ items = tree.get_children() for item in items: tree.delete(item) for _ in range(resultsr.__len__()): if not discardrecord.count(_): tree.insert('', 'end', values=resultsr[_])
def searchun(): if not entrytextuname.get(): tk.messagebox.showerror(title='信息', message='工号不能为空!') return results = sql.Sqloperation().inquiry_ubinfo(entrytextuname.get()) if not results.__len__(): tk.messagebox.showerror(title='信息', message='该用户暂未借阅期刊') else: items = tree.get_children() for item in items: tree.delete(item) for _ in range(results.__len__()): tree.insert('', 'end', values=results[_])
def cregister(): pname=entrytext1.get() pyear=entrytext2.get() pvolume=entrytext3.get() pissue=entrytext4.get() if sql.Sqloperation().checkinputregister(pyear): tk.messagebox.showerror(title='信息', message=sql.Sqloperation().checkinputregister(pyear)) return if pname and pyear and pvolume and pissue: try: pyearn=int(pyear) except: tk.messagebox.showerror(title='信息', message='“年”的格式不符合要求') return try: pvolumen=int(pvolume) except: tk.messagebox.showerror(title='信息', message='“卷”的格式不符合要求') return try: pissuen=int(pissue) except: tk.messagebox.showerror(title='信息', message='“期”的格式不符合要求') return comfirmc = tk.messagebox.askyesno('确认',message=r"""期刊名称:{} 年:{} 卷:{} 期:{} 信息是否无误? """.format(pname,pyear,pvolume,pissue)) if comfirmc: if sql.Sqloperation().register(pname,pyear,pvolume,pissue): tk.messagebox.showinfo(title='信息', message='期刊注册成功') else: tk.messagebox.showerror(title='信息', message='期刊注册失败,请重试') else:return else: tk.messagebox.showerror(title='信息', message='不允许留空!')
def returnbp(): itemexist=False for item in tree.selection(): itemexist=True item_text = tree.item(item,"values") if not itemexist: tk.messagebox.showerror(title='信息', message='归还失败,请先用鼠标选中一条记录') return pname=item_text[3] pyear=item_text[4] pvolume=item_text[5] pissue=item_text[6] if sql.Sqloperation().returnp(pname,pyear,pvolume,pissue): tk.messagebox.showinfo(title='信息', message='归还成功') else: tk.messagebox.showerror(title='信息', message='归还失败,请重试')
def delsubc(): itemexist=False for item in tree.selection(): itemexist=True item_text = tree.item(item,"values") if not itemexist: tk.messagebox.showerror(title='信息', message='删除失败,请先用鼠标选中一条内容') return pname=item_text[0] pmail=item_text[1] syear=item_text[2] if not tk.messagebox.askyesno('删除确认',message='确定删除选定的内容?'):return if sql.Sqloperation().delsub(pname,pmail,syear): tk.messagebox.showinfo(title='信息', message='删除成功') else: tk.messagebox.showerror(title='信息', message='删除失败')
def delcontentc(): itemexist=False for item in tree.selection(): itemexist=True item_text = tree.item(item,"values") if not itemexist: tk.messagebox.showerror(title='信息', message='删除失败,请先用鼠标选中一条内容') return pname=item_text[1] pyear=item_text[2] pvolume=item_text[3] pissue=item_text[4] title=item_text[5] author=item_text[6] page=item_text[7] if not tk.messagebox.askyesno('删除确认',message='确定删除选定的内容?'):return if sql.Sqloperation().delcontent(pname,pyear,pvolume,pissue,title,author,page): tk.messagebox.showinfo(title='信息', message='删除成功') else: tk.messagebox.showerror(title='信息', message='删除失败')
def searchpb(): results = sql.Sqloperation().inquiry_pbinfo(entrytext.get()) if not results.__len__(): tk.messagebox.showerror(title='信息', message='未查找到已被借阅的相关期刊') else: items = tree.get_children() for item in items: tree.delete(item) for _ in range(results.__len__()): # discard returned and booked items if not results[_][9] and not results[_][8]: if results[_][1] != username: tree.insert('', 'end', values=[ results[_][3], results[_][4], results[_][5], results[_][6], results[_][7] ])