zoukankan      html  css  js  c++  java
  • 山东大学数据库实验课设2019.12

       1 from PyQt5 import QtCore, QtGui, QtWidgets
       2 from dl import *
       3 from shoujiemian import *
       4 from dzdl import *
       5 from glydl import *
       6 from zc import *
       7 from dzzc import *
       8 from glyzc import *
       9 from dzdlcw import *
      10 from dzcz import *
      11 from dzxxcx import *
      12 from dzxgmm import *
      13 from xgmmsuccessful import *
      14 from xgmmfail import *
      15 from dzjs import *
      16 from jsxxcx import *
      17 from hsxxcx import *
      18 from dzzcsuccess import *
      19 from dzzcfail import *
      20 from glycz import *
      21 from jssuccess import *
      22 from jsfail import *
      23 from hssuccess import *
      24 from hsfail import *
      25 from pccz import *
      26 from wxskhhh import *
      27 from glydzxxcz import *
      28 from glyhsxxcz import *
      29 from glyjsxxcz import *
      30 from glypcxxcz import *
      31 from glysjcz import *
      32 from glyxgmm import *
      33 from dzxxscsuccess import *
      34 from dzxxscfail import *
      35 from tjsuccess import *
      36 from tjfail import *
      37 from pcfail import *
      38 from cqpc import *
      39 from xjcg import *
      40 from xjfail import *
      41 from unexpected import *
      42 import pymysql,sys,re
      43 from PyQt5.QtCore import QDate, QTime, QDateTime, Qt
      44 from PyQt5.QtWidgets import (QFrame,QApplication,QDialog, QDialogButtonBox,
      45         QMessageBox,QVBoxLayout, QLineEdit,QTableWidgetItem,QTableWidget,QHBoxLayout)
      46 
      47 global dzid,glyid
      48 
      49 def ok(num):
      50     pattern = re.compile(r'^[-+]?[-0-9]d*.d*|[-+]?.?[0-9]d*$')
      51     result = pattern.match(num)
      52     if result:
      53         return True
      54     else:
      55         return False
      56 
      57 class Ui_Dialog(QtWidgets.QDialog, Ui_2):
      58     def __init__(self):
      59         super(Ui_Dialog, self).__init__()
      60         self.setupUi(self)
      61 
      62 class First(QtWidgets.QMainWindow,Ui_1):
      63     def __init__(self):
      64         super(First,self).__init__()
      65         self.setupUi(self)
      66 
      67 class Ui_dzdl(QtWidgets.QDialog, Ui_3):
      68     def __init__(self):
      69         super(Ui_dzdl, self).__init__()
      70         self.setupUi(self)
      71     def Clean(self):
      72         self.lineEdit.setText("")
      73         self.lineEdit_2.setText("")
      74     def get_word(self):
      75         global dzid
      76         dzid = self.lineEdit.text()
      77         dzpassword = self.lineEdit_2.text()
      78         dzcount=cur.execute("SELECT * FROM 读者信息 where Reader_id='%s' and Password='%s';" % (dzid,dzpassword))
      79         if dzcount!=0:
      80             dzd.hide()
      81             dzcz.show()
      82             dzcz.pushButton.clicked.connect(dzcz.hide)
      83             dzcz.pushButton.clicked.connect(dzxxcx.dzxxcxshow)
      84             dzcz.pushButton.clicked.connect(dzxxcx.show)#从读者操作界面进入读者信息查询界面
      85 
      86             dzcz.pushButton_2.clicked.connect(dzcz.hide)
      87             dzcz.pushButton_2.clicked.connect(dzxgmm.show)#从读者操作界面进入到修改密码界面
      88 
      89             dzxgmm.pushButton_3.clicked.connect(dzxgmm.get_word)#调用get_word函数
      90 
      91             dzxgmm.pushButton.clicked.connect(dzxgmm.hide)
      92             dzxgmm.pushButton.clicked.connect(dzxgmm.Clean)
      93             dzxgmm.pushButton.clicked.connect(dzcz.show)  # 从读者操作界面返回到登录界面
      94 
      95             dzjs.pushButton.clicked.connect(dzjs.dimquery)#调用模糊查询函数
      96 
      97             dzjs.pushButton_6.clicked.connect(dzjs.exactquery)  # 调用精准查询函数
      98 
      99             dzjs.pushButton_2.clicked.connect(dzjs.borrowbook)  # 调用借书函数
     100 
     101             dzjs.pushButton_5.clicked.connect(dzjs.returnbook)  # 调用还书函数
     102 
     103             dzjs.pushButton_7.clicked.connect(dzjs.renew)  # 调用续借函数
     104 
     105             dzcz.pushButton_3.clicked.connect(dzcz.hide)
     106             dzcz.pushButton_3.clicked.connect(dzjs.show)  # 从读者操作界面进入到借书操作界面
     107 
     108             dzjs.pushButton_3.clicked.connect(dzjs.hide)
     109             dzjs.pushButton_3.clicked.connect(dzjs.Clean)
     110             dzjs.pushButton_3.clicked.connect(dzcz.show)  # 从借书操作界面返回到读者操作界面
     111 
     112             dzcz.pushButton_9.clicked.connect(dzd.Clean)
     113             dzcz.pushButton_9.clicked.connect(dzcz.hide)
     114             dzcz.pushButton_9.clicked.connect(dzd.show)  # 从读者操作界面返回到登录界面
     115 
     116             dzcz.pushButton_5.clicked.connect(dzcz.hide)
     117             dzcz.pushButton_5.clicked.connect(jsxxcx.jsxxcxshow)
     118             dzcz.pushButton_5.clicked.connect(jsxxcx.show)#从读者操作界面进入到借书信息查询界面
     119 
     120             dzcz.pushButton_6.clicked.connect(dzcz.hide)
     121             dzcz.pushButton_6.clicked.connect(hsxxcx.hsxxcxshow)
     122             dzcz.pushButton_6.clicked.connect(hsxxcx.show)#从读者操作界面进入到还书信息查询界面
     123 
     124             dzcz.pushButton_7.clicked.connect(dzcz.hide)
     125             dzcz.pushButton_7.clicked.connect(pccz.show)  # 从读者操作界面进入到赔偿操作界面
     126 
     127             pccz.pushButton_4.clicked.connect(pccz.dimquery)#模糊查询
     128 
     129             pccz.pushButton_5.clicked.connect(pccz.exactquery)#精准查询
     130 
     131             pccz.pushButton_3.clicked.connect(pccz.pay) #调用赔偿函数
     132 
     133             jsxxcx.pushButton.clicked.connect(jsxxcx.hide)
     134             jsxxcx.pushButton.clicked.connect(dzcz.show)#从借书信息查询界面回到读者操作界面
     135 
     136             hsxxcx.pushButton.clicked.connect(hsxxcx.hide)
     137             hsxxcx.pushButton.clicked.connect(dzcz.show)#从还书信息查询界面回到读者操作界面
     138 
     139             dzxxcx.pushButton.clicked.connect(dzxxcx.hide)
     140             dzxxcx.pushButton.clicked.connect(dzcz.show)#从读者信息查询界面回到读者操作界面
     141 
     142             pccz.pushButton.clicked.connect(pccz.hide)
     143             pccz.pushButton.clicked.connect(pccz.Clean)
     144             pccz.pushButton.clicked.connect(dzcz.show)  # 从赔偿操作界面回到读者操作界面
     145         else:
     146             dzdlcw.show()
     147 
     148 class Ui_glydl(QtWidgets.QDialog, Ui_4):
     149     def __init__(self):
     150         super(Ui_glydl, self).__init__()
     151         self.setupUi(self)
     152     def Clean(self):
     153         self.lineEdit.setText("")
     154         self.lineEdit_2.setText("")
     155     def get_word(self):
     156         global glyid
     157         glyid = self.lineEdit.text()
     158         glypassword = self.lineEdit_2.text()
     159         glycount=cur.execute("SELECT * FROM 管理员 where Admin_id='%s' and Password='%s';" % (glyid,glypassword))
     160         if glycount != 0:
     161 
     162             glyd.hide()
     163             glycz.show()
     164 
     165             self.lineEdit.setText("")
     166             self.lineEdit_2.setText("")
     167 
     168             glycz.pushButton.clicked.connect(glycz.hide)
     169             glycz.pushButton.clicked.connect(glydzxxcz.show)  # 从管理员操作界面进入管理员读者信息操作界面
     170 
     171             glydzxxcz.pushButton_3.clicked.connect(glydzxxcz.hide)
     172             glydzxxcz.pushButton_3.clicked.connect(glydzxxcz.Clean)
     173             glydzxxcz.pushButton_3.clicked.connect(glycz.show)  # 从管理员读者信息操作界面进入管理员操作界面
     174 
     175             glydzxxcz.pushButton.clicked.connect(glydzxxcz.dimquery) #读者信息模糊查询
     176 
     177             glydzxxcz.pushButton_5.clicked.connect(glydzxxcz.exactquery) #读者信息精准查询
     178 
     179             glydzxxcz.pushButton_2.clicked.connect(glydzxxcz.Delete) #读者信息删除
     180 
     181             glycz.pushButton_2.clicked.connect(glycz.hide)
     182             glycz.pushButton_2.clicked.connect(glyxgmm.show)  # 从管理员操作界面进入管理员修改密码界面
     183 
     184             glyxgmm.pushButton_3.clicked.connect(glyxgmm.xgmm)  # 调用修改密码函数
     185 
     186             glyxgmm.pushButton.clicked.connect(glyxgmm.hide)
     187             glyxgmm.pushButton.clicked.connect(glyxgmm.Clean)
     188             glyxgmm.pushButton.clicked.connect(glycz.show)# 从管理员修改密码界面返回管理员操作界面
     189 
     190             glycz.pushButton_5.clicked.connect(glycz.hide)
     191             glycz.pushButton_5.clicked.connect(glysjcz.show)  # 从管理员操作界面进入管理员书籍操作界面
     192 
     193             glysjcz.pushButton.clicked.connect(glysjcz.dimquery)#模糊查询
     194 
     195             glysjcz.pushButton_2.clicked.connect(glysjcz.exactquery)#精确查询
     196 
     197             glysjcz.pushButton_3.clicked.connect(glysjcz.add)#添加书籍
     198 
     199             glysjcz.pushButton_6.clicked.connect(glysjcz.Delete)#删除书籍
     200 
     201             glysjcz.pushButton_4.clicked.connect(glysjcz.hide)
     202             glysjcz.pushButton_4.clicked.connect(glysjcz.Clean)
     203             glysjcz.pushButton_4.clicked.connect(glycz.show)  # 从管理员书籍操作界面返回管理员操作界面
     204 
     205             glycz.pushButton_7.clicked.connect(glycz.hide)
     206             glycz.pushButton_7.clicked.connect(glypcxxcz.show)  # 从管理员操作界面进入管理员赔偿信息查询界面
     207 
     208             glypcxxcz.pushButton_3.clicked.connect(glypcxxcz.dimquery)#模糊查询
     209 
     210             glypcxxcz.pushButton_4.clicked.connect(glypcxxcz.exactquery)#精确查询
     211 
     212             glypcxxcz.pushButton.clicked.connect(glypcxxcz.hide)
     213             glypcxxcz.pushButton.clicked.connect(glypcxxcz.Clean)
     214             glypcxxcz.pushButton.clicked.connect(glycz.show)  # 从管理员赔偿信息查询界面返回管理员操作界面
     215 
     216             glycz.pushButton_6.clicked.connect(glycz.hide)
     217             glycz.pushButton_6.clicked.connect(glyjsxxcz.show)  # 从管理员操作界面进入管理员借书信息查询界面
     218 
     219             glyjsxxcz.pushButton.clicked.connect(glyjsxxcz.dimquery)#模糊查询
     220 
     221             glyjsxxcz.pushButton_2.clicked.connect(glyjsxxcz.exactquery)#精确查询
     222 
     223             glyjsxxcz.pushButton_3.clicked.connect(glyjsxxcz.hide)
     224             glyjsxxcz.pushButton_3.clicked.connect(glyjsxxcz.Clean)
     225             glyjsxxcz.pushButton_3.clicked.connect(glycz.show)  # 从管理员借书信息查询界面返回管理员操作界面
     226 
     227             glycz.pushButton_8.clicked.connect(glycz.hide)
     228             glycz.pushButton_8.clicked.connect(glyhsxxcz.show)  # 从管理员操作界面进入管理员还书信息查询界面
     229 
     230             glyhsxxcz.pushButton.clicked.connect(glyhsxxcz.dimquery)  # 模糊查询
     231 
     232             glyhsxxcz.pushButton_2.clicked.connect(glyhsxxcz.exactquery)  # 精确查询
     233 
     234             glyhsxxcz.pushButton_3.clicked.connect(glyhsxxcz.hide)
     235             glyhsxxcz.pushButton_3.clicked.connect(glyhsxxcz.Clean)
     236             glyhsxxcz.pushButton_3.clicked.connect(glycz.show) # 从管理员还书信息查询界面返回管理员操作界面
     237 
     238             glycz.pushButton_3.clicked.connect(glycz.hide)
     239             glycz.pushButton_3.clicked.connect(glyd.show)  # 从管理员操作界面进入管理员登陆界面
     240 
     241             glycz.pushButton_9.clicked.connect(glycz.hide)
     242             glycz.pushButton_9.clicked.connect(unexpected.show)  # 从管理员操作界面进入意外处理界面
     243 
     244             unexpected.pushButton.clicked.connect(unexpected.hide)
     245             unexpected.pushButton.clicked.connect(glycz.show)  # 从意外处理界面进入管理员操作界面
     246 
     247             unexpected.pushButton_3.clicked.connect(unexpected.add)#调用添加函数
     248             unexpected.pushButton.clicked.connect(unexpected.Clean)  # 调用清空函数
     249         else:
     250             dzdlcw.show()
     251 
     252 
     253 class Ui_zc(QtWidgets.QDialog, Ui_5):
     254     def __init__(self):
     255         super(Ui_zc, self).__init__()
     256         self.setupUi(self)
     257 
     258 class Ui_dzzc(QtWidgets.QDialog, Ui_6):
     259     def __init__(self):
     260         super(Ui_dzzc, self).__init__()
     261         self.setupUi(self)
     262     def Clean(self):
     263         self.lineEdit.setText("")
     264         self.lineEdit_2.setText("")
     265         self.lineEdit_3.setText("")
     266         self.lineEdit_4.setText("")
     267     def get_word(self):
     268         dzname = self.lineEdit.text()
     269         dzid = self.lineEdit_2.text()
     270         pw = self.lineEdit_3.text()
     271         sex = self.lineEdit_4.text()
     272         count = cur.execute("SELECT * FROM 读者信息 where reader_id='%s';" % (dzid))
     273         if count==0:
     274             if dzname!=""and dzid !="" and pw!="" and sex!="":
     275                 if sex!="" and sex!="":
     276                     sex="未知"
     277                 cur.execute("INSERT INTO 读者信息 values('%s','%s','%s','%s',0,null,null)" % (dzname,dzid,pw,sex))
     278                 conn.commit()
     279                 dzzcsuccess.show()
     280                 self.lineEdit.setText("")
     281                 self.lineEdit_2.setText("")
     282                 self.lineEdit_3.setText("")
     283                 self.lineEdit_4.setText("")
     284             else:
     285                 dzzcfail.show()
     286         else:
     287              dzzcfail.show()
     288 
     289 class Ui_glyzc(QtWidgets.QDialog, Ui_7):
     290     def __init__(self):
     291         super(Ui_glyzc, self).__init__()
     292         self.setupUi(self)
     293     def Clean(self):
     294         self.lineEdit.setText("")
     295         self.lineEdit_2.setText("")
     296         self.lineEdit_3.setText("")
     297     def get_word(self):
     298         glyname = self.lineEdit.text()
     299         glyid = self.lineEdit_2.text()
     300         pw = self.lineEdit_3.text()
     301         count = cur.execute("SELECT * FROM 管理员 where admin_id='%s';" % (glyid))
     302         if glyname!="" and glyid!="" and pw!="":
     303             if count==0:
     304                 if glyname!=""and glyid !="" and pw!="":
     305                     cur.execute("INSERT INTO 管理员 values('%s','%s','%s')" % (glyname,glyid,pw))
     306                     conn.commit()
     307                     self.lineEdit.setText("")
     308                     self.lineEdit_2.setText("")
     309                     self.lineEdit_3.setText("")
     310                     dzzcsuccess.show()
     311                 else:
     312                     dzzcfail.show()
     313             else:
     314                 dzzcfail.show()
     315 
     316 class Ui_dzdlcw(QtWidgets.QDialog, Ui_8):
     317     def __init__(self):
     318         super(Ui_dzdlcw, self).__init__()
     319         self.setupUi(self)
     320 
     321 class Ui_dzcz(QtWidgets.QDialog, Ui_9):
     322     def __init__(self):
     323         super(Ui_dzcz, self).__init__()
     324         self.setupUi(self)
     325 
     326 class Ui_dzxxcx(QtWidgets.QDialog, Ui_10):
     327     def __init__(self):
     328         super(Ui_dzxxcx, self).__init__()
     329         self.setupUi(self)
     330     def dzxxcxshow(self):
     331         global dzid
     332         cur.execute("SELECT * FROM 读者信息 where Reader_id = '%s';" % (dzid))
     333         data=cur.fetchall()
     334         row=len(data)
     335         vol=len(data[0])
     336         self.tableWidget.setRowCount(row)
     337         self.tableWidget.setColumnCount(vol)
     338         for i in range(row):
     339             for j in range(vol):
     340                 temp_data=data[i][j]
     341                 data1=QTableWidgetItem(str(temp_data))
     342                 self.tableWidget.setItem(i,j,data1)
     343 
     344 class Ui_dzxgmm(QtWidgets.QDialog, Ui_11):
     345     def __init__(self):
     346         super(Ui_dzxgmm, self).__init__()
     347         self.setupUi(self)
     348     def Clean(self):
     349         self.lineEdit.setText("")
     350         self.lineEdit_2.setText("")
     351     def get_word(self):
     352         firstpw = self.lineEdit.text()
     353         secondpw = self.lineEdit_2.text()
     354         global dzid
     355         if  firstpw!="" and secondpw!="":
     356             if firstpw==secondpw and firstpw!="":
     357                 cur.execute("update 读者信息 set password = ('%s') where reader_id='%s'"% (firstpw,dzid))
     358                 conn.commit()
     359                 self.lineEdit.setText("")
     360                 self.lineEdit_2.setText("")
     361                 xgmmsuccessful.show()
     362             else:
     363                 print(firstpw)
     364                 print(secondpw)
     365                 print("hhh")
     366                 xgmmfail.show()
     367 
     368 
     369 class Ui_xgmmsuccessful(QtWidgets.QDialog, Ui_12):
     370     def __init__(self):
     371         super(Ui_xgmmsuccessful, self).__init__()
     372         self.setupUi(self)
     373 
     374 class Ui_xgmmfail(QtWidgets.QDialog, Ui_13):
     375     def __init__(self):
     376         super(Ui_xgmmfail, self).__init__()
     377         self.setupUi(self)
     378 
     379 class Ui_dzjs(QtWidgets.QDialog, Ui_14):
     380     def __init__(self):
     381         super(Ui_dzjs, self).__init__()
     382         self.setupUi(self)
     383     def Clean(self):
     384         self.lineEdit.setText("")
     385         self.lineEdit_2.setText("")
     386         self.lineEdit_3.setText("")
     387         self.lineEdit_4.setText("")
     388         self.tableWidget.setRowCount(0)
     389         self.tableWidget.setColumnCount(0)
     390         self.tableWidget.setHorizontalHeaderLabels(['书名', '索书号', '类型', '价格', '是否可借'])
     391     def dimquery(self):
     392         bookname = self.lineEdit.text()
     393         bookid = self.lineEdit_2.text()
     394         Type = self.lineEdit_3.text()
     395         money = self.lineEdit_4.text()
     396         if ok(money) == False:
     397             sjcount = cur.execute(
     398                 "SELECT * FROM 书籍信息 where Book_id='%s' or book_name='%s' or Type = '%s'" % (
     399                     bookid, bookname, Type))
     400         else:
     401             sjcount = cur.execute(
     402                 "SELECT * FROM 书籍信息 where Book_id='%s' or book_name='%s' or Type = '%s' or money='%f'" % (
     403                 bookid, bookname, Type, float(money)))
     404         if bookname == "" and bookid == "" and Type == "" and money == "":
     405             sjcount = cur.execute("SELECT * FROM 书籍信息")
     406         if sjcount != 0:
     407             data = cur.fetchall()
     408             row = len(data)
     409             vol = len(data[0])
     410             self.tableWidget.setRowCount(row)
     411             self.tableWidget.setColumnCount(vol)
     412             self.tableWidget.setHorizontalHeaderLabels(['书名', '索书号', '类型', '价格', '是否可借'])
     413             for i in range(row):
     414                 for j in range(vol):
     415                     temp_data = data[i][j]
     416                     data1 = QTableWidgetItem(str(temp_data))
     417                     self.tableWidget.setItem(i, j, data1)
     418         else:
     419             self.tableWidget.setRowCount(0)
     420             self.tableWidget.setColumnCount(0)
     421 
     422     def exactquery(self):
     423         bookname = self.lineEdit.text()
     424         bookid = self.lineEdit_2.text()
     425         Type =  self.lineEdit_3.text()
     426         money= self.lineEdit_4.text()
     427         if ok(money)==False:
     428             sjcount = cur.execute(
     429                 "SELECT * FROM 书籍信息 where Book_id='%s' and book_name='%s' and Type = '%s'" % (
     430                 bookid, bookname, Type))
     431         else:
     432             sjcount=cur.execute("SELECT * FROM 书籍信息 where Book_id='%s' and book_name='%s' and Type = '%s' and money='%f'" % (bookid,bookname,Type,float(money)))
     433         if sjcount!=0:
     434             data = cur.fetchall()
     435             row = len(data)
     436             vol = len(data[0])
     437             self.tableWidget.setRowCount(row)
     438             self.tableWidget.setColumnCount(vol)
     439             self.tableWidget.setHorizontalHeaderLabels(['书名', '索书号', '类型', '价格', '是否可借'])
     440             for i in range(row):
     441                 for j in range(vol):
     442                     temp_data = data[i][j]
     443                     data1 = QTableWidgetItem(str(temp_data))
     444                     self.tableWidget.setItem(i, j, data1)
     445         else:
     446             self.tableWidget.setRowCount(0)
     447             self.tableWidget.setColumnCount(0)
     448 
     449     def borrowbook(self):
     450         bookname = self.lineEdit.text()
     451         bookid = self.lineEdit_2.text()
     452         Type = self.lineEdit_3.text()
     453         money = self.lineEdit_4.text()
     454         if ok(money) == False:
     455             sjcount = cur.execute(
     456                 "SELECT * FROM 书籍信息 where Book_id='%s' and book_name='%s' and Type = '%s'" % (
     457                     bookid, bookname, Type))
     458         else:
     459             sjcount = cur.execute(
     460                 "SELECT * FROM 书籍信息 where Book_id='%s' and book_name='%s' and Type = '%s' and money='%f'" % (
     461                 bookid, bookname, Type, float(money)))
     462         if bookname != "" and bookid != "" and Type != "" and money != "":
     463             if sjcount==1:
     464                 data = cur.fetchall()
     465                 now = QDateTime.currentDateTime()
     466                 temp_data = data[0][4]
     467                 if temp_data == "可借":
     468                     jssuccess.show()
     469                     Key = '不可借'
     470                     global dzid
     471                     cur.execute("update 书籍信息 set state=('%s') where book_id = '%s'" % (Key, bookid))
     472                     conn.commit()
     473                     cur.execute("update 读者信息 set number=(number+1) where reader_id = '%s'" % (dzid))
     474                     conn.commit()
     475                     cur.execute("insert into 借书信息 values('%s','%s','%s','%s',6,'未归还')" % (
     476                     bookname, bookid, dzid, now.toString(Qt.ISODate)))
     477                     conn.commit()
     478                 else:
     479                      jsfail.show()
     480             else:
     481                 jsfail.show()
     482 
     483     def returnbook(self):
     484         bookname = self.lineEdit.text()
     485         bookid = self.lineEdit_2.text()
     486         Type = self.lineEdit_3.text()
     487         money = self.lineEdit_4.text()
     488         global dzid
     489         jscount=cur.execute("SELECT * FROM 借书信息 where Book_id='%s' and reader_id='%s' and state='未归还'" % (bookid,dzid))
     490         now = QDateTime.currentDateTime()
     491         if bookname!="" and bookid!="" and Type!="" and money!="":
     492             if jscount==1:
     493                 key = "可借"
     494                 cur.execute("update 书籍信息 set state=('%s') where book_id = '%s'" % (key,bookid))
     495                 conn.commit()
     496                 cur.execute("select * from 借书信息 where book_id = '%s' and reader_id='%s'" % (bookid,dzid))
     497                 data=cur.fetchall()
     498                 row=len(data)
     499                 Starttime=QDateTime.fromString(data[row-1][3],"yyyy-MM-ddThh:mm:ss")
     500                 difftime=float(Starttime.secsTo(now))
     501                 cur.execute("update 借书信息 set state=('已归还') where Book_id='%s' and reader_id='%s' and state='未归还'" % (bookid, dzid))
     502                 conn.commit()
     503                 if difftime>float(data[row-1][4]):#超期了
     504                     cur.execute("select * from 赔偿信息")
     505                     data1=cur.fetchall()
     506                     row1=len(data1)
     507                     row1=row1+1
     508                     cur.execute("select * from 读者信息 where reader_id='%s'" % (dzid))
     509                     data2=cur.fetchall()
     510                     readername=data2[0][0]
     511                     cur.execute(
     512                         "insert into 赔偿信息 values('%s','%s','%s','%s','%s','超期','%f','%s','未支付')" % (str(row1),readername,dzid,bookname,bookid,difftime*0.1,now.toString(Qt.ISODate)))
     513                     conn.commit()
     514                     cur.execute("insert into 还书信息 values('%s','%s','%s','%s','超期')" % (bookname,bookid,dzid,now.toString(Qt.ISODate)))
     515                     conn.commit()
     516                     cur.execute("update 读者信息 set number=(number-1) where reader_id = '%s'" % (dzid))
     517                     conn.commit()
     518                     cqpc.show()
     519                 else:
     520                     cur.execute("insert into 还书信息 values('%s','%s','%s','%s','正常')" % (
     521                     bookname, bookid, dzid, now.toString(Qt.ISODate)))
     522                     conn.commit()
     523                     hssuccess.show()
     524             else:
     525                 hsfail.show()
     526 
     527     def renew(self):
     528         bookname = self.lineEdit.text()
     529         bookid = self.lineEdit_2.text()
     530         Type = self.lineEdit_3.text()
     531         money = self.lineEdit_4.text()
     532         global dzid
     533         jscount = cur.execute(
     534             "SELECT * FROM 借书信息 where Book_id='%s' and reader_id='%s' and state='未归还'" % (bookid, dzid))
     535         now = QDateTime.currentDateTime()
     536         if bookname!="" and bookid!="" and Type!="" and money!="":
     537             if jscount == 1:
     538                 cur.execute("select * from 借书信息 where book_id = '%s' and reader_id='%s'" % (bookid, dzid))
     539                 data = cur.fetchall()
     540                 row = len(data)
     541                 Starttime = QDateTime.fromString(data[row - 1][3], "yyyy-MM-ddThh:mm:ss")
     542                 difftime = float(Starttime.secsTo(now))
     543                 if difftime > float(data[row - 1][4]):  # 超期了
     544                     xjfail.show()
     545                 else:
     546                     cur.execute("update 借书信息 set time=(time+6) where Book_id='%s' and reader_id='%s' and state='未归还'" % (bookid, dzid))
     547                     conn.commit()
     548                     xjcg.show()
     549             else:
     550                 xjfail.show()
     551 
     552 class Ui_jsxxcx(QtWidgets.QDialog, Ui_15):
     553     def __init__(self):
     554         super(Ui_jsxxcx, self).__init__()
     555         self.setupUi(self)
     556     def jsxxcxshow(self):
     557         global dzid
     558         count=cur.execute("SELECT * FROM 借书信息 where Reader_id = '%s';" % (dzid))
     559         if count != 0:
     560             data = cur.fetchall()
     561             row = len(data)
     562             vol = len(data[0])
     563             self.tableWidget.setRowCount(row)
     564             self.tableWidget.setColumnCount(vol)
     565             for i in range(row):
     566                 for j in range(vol):
     567                     temp_data = data[i][j]
     568                     data1 = QTableWidgetItem(str(temp_data))
     569                     self.tableWidget.setItem(i, j, data1)
     570         else:
     571             self.tableWidget.setRowCount(0)
     572             self.tableWidget.setColumnCount(0)
     573             self.tableWidget.setHorizontalHeaderLabels(['书名','索书号','读者编号','借书日期','借书时限'])
     574 
     575 class Ui_hsxxcx(QtWidgets.QDialog, Ui_16):
     576     def __init__(self):
     577         super(Ui_hsxxcx, self).__init__()
     578         self.setupUi(self)
     579     def hsxxcxshow(self):
     580         global dzid
     581         count=cur.execute("SELECT * FROM 还书信息 where Reader_id = '%s';" % (dzid))
     582         if count != 0:
     583             data = cur.fetchall()
     584             row = len(data)
     585             vol = len(data[0])
     586             self.tableWidget.setRowCount(row)
     587             self.tableWidget.setColumnCount(vol)
     588             for i in range(row):
     589                 for j in range(vol):
     590                     temp_data = data[i][j]
     591                     data1 = QTableWidgetItem(str(temp_data))
     592                     self.tableWidget.setItem(i, j, data1)
     593         else:
     594             self.tableWidget.setRowCount(0)
     595             self.tableWidget.setColumnCount(0)
     596             self.tableWidget.setHorizontalHeaderLabels(['书名', '索书号', '读者编号', '还书时间'])
     597 
     598 class Ui_dzzcsuccess(QtWidgets.QDialog, Ui_18):
     599     def __init__(self):
     600         super(Ui_dzzcsuccess, self).__init__()
     601         self.setupUi(self)
     602 
     603 class Ui_dzzcfail(QtWidgets.QDialog, Ui_19):
     604     def __init__(self):
     605         super(Ui_dzzcfail, self).__init__()
     606         self.setupUi(self)
     607 
     608 class Ui_glycz(QtWidgets.QDialog, Ui_20):
     609     def __init__(self):
     610         super(Ui_glycz, self).__init__()
     611         self.setupUi(self)
     612 
     613 class Ui_jssuccess(QtWidgets.QDialog, Ui_21):
     614     def __init__(self):
     615         super(Ui_jssuccess, self).__init__()
     616         self.setupUi(self)
     617 
     618 class Ui_jsfail(QtWidgets.QDialog, Ui_22):
     619     def __init__(self):
     620         super(Ui_jsfail, self).__init__()
     621         self.setupUi(self)
     622 
     623 class Ui_hssuccess(QtWidgets.QDialog, Ui_23):
     624     def __init__(self):
     625         super(Ui_hssuccess, self).__init__()
     626         self.setupUi(self)
     627 
     628 class Ui_hsfail(QtWidgets.QDialog, Ui_24):
     629     def __init__(self):
     630         super(Ui_hsfail, self).__init__()
     631         self.setupUi(self)
     632 
     633 class Ui_pccz(QtWidgets.QDialog, Ui_25):
     634     def __init__(self):
     635         super(Ui_pccz, self).__init__()
     636         self.setupUi(self)
     637     def Clean(self):
     638         self.lineEdit.setText("")
     639         self.lineEdit_2.setText("")
     640         self.lineEdit_3.setText("")
     641         self.lineEdit_4.setText("")
     642         self.tableWidget.setRowCount(0)
     643         self.tableWidget.setColumnCount(0)
     644         self.tableWidget.setHorizontalHeaderLabels(
     645             ['赔偿信息编号', '读者姓名', '读者编号', '书名', '索书号', '赔偿原因', '赔偿金额', '赔偿时间', '是否已支付'])
     646     def dimquery(self):
     647         pcxxid = self.lineEdit.text()
     648         pcreason = self.lineEdit_2.text()
     649         money = self.lineEdit_3.text()
     650         bookid = self.lineEdit_4.text()
     651         if bookid=="" and pcreason=="" and money=="" and pcxxid=="":
     652             global dzid
     653             count = cur.execute("SELECT * FROM 赔偿信息 where Reader_id = '%s';" % (dzid))
     654             self.tableWidget.setHorizontalHeaderLabels(
     655                 ['赔偿信息编号', '读者姓名', '读者编号', '书名', '索书号', '赔偿原因', '赔偿金额', '赔偿时间', '是否已支付'])
     656             if count != 0:
     657                 data = cur.fetchall()
     658                 row = len(data)
     659                 vol = len(data[0])
     660                 self.tableWidget.setRowCount(row)
     661                 self.tableWidget.setColumnCount(vol)
     662                 self.tableWidget.setHorizontalHeaderLabels(
     663                     ['赔偿信息编号', '读者姓名', '读者编号', '书名', '索书号', '赔偿原因', '赔偿金额', '赔偿时间', '是否已支付'])
     664                 for i in range(row):
     665                     for j in range(vol):
     666                         temp_data = data[i][j]
     667                         data1 = QTableWidgetItem(str(temp_data))
     668                         self.tableWidget.setItem(i, j, data1)
     669         else:
     670             if ok(money)==False:
     671                 count = cur.execute("SELECT * FROM 赔偿信息 where Reader_id = '%s' and (book_id='%s' or Reason='%s' or Pay_id='%s');" % (dzid,bookid,pcreason,pcxxid))
     672                 if count != 0:
     673                     data = cur.fetchall()
     674                     row = len(data)
     675                     vol = len(data[0])
     676                     self.tableWidget.setRowCount(row)
     677                     self.tableWidget.setColumnCount(vol)
     678                     self.tableWidget.setHorizontalHeaderLabels(['赔偿信息编号', '读者姓名', '读者编号', '书名', '索书号', '赔偿原因', '赔偿金额', '赔偿时间', '是否已支付'])
     679                     for i in range(row):
     680                         for j in range(vol):
     681                             temp_data = data[i][j]
     682                             data1 = QTableWidgetItem(str(temp_data))
     683                             self.tableWidget.setItem(i, j, data1)
     684                 else:
     685                     self.tableWidget.setRowCount(0)
     686                     self.tableWidget.setColumnCount(0)
     687             else:
     688                 count = cur.execute(
     689                     "SELECT * FROM 赔偿信息 where Reader_id = '%s' and (book_id='%s' or Reason='%s' or Pay_id='%s' or money='%f');" % (
     690                     dzid, bookid, pcreason, pcxxid,float(money)))
     691                 if count != 0:
     692                     data = cur.fetchall()
     693                     row = len(data)
     694                     vol = len(data[0])
     695                     self.tableWidget.setRowCount(row)
     696                     self.tableWidget.setColumnCount(vol)
     697                     self.tableWidget.setHorizontalHeaderLabels(['赔偿信息编号', '读者姓名', '读者编号', '书名', '索书号', '赔偿原因', '赔偿金额', '赔偿时间', '是否已支付'])
     698                     for i in range(row):
     699                         for j in range(vol):
     700                             temp_data = data[i][j]
     701                             data1 = QTableWidgetItem(str(temp_data))
     702                             self.tableWidget.setItem(i, j, data1)
     703 
     704                 else:
     705                     self.tableWidget.setRowCount(0)
     706                     self.tableWidget.setColumnCount(0)
     707 
     708     def exactquery(self):
     709         pcxxid = self.lineEdit.text()
     710         pcreason = self.lineEdit_2.text()
     711         money = self.lineEdit_3.text()
     712         bookid = self.lineEdit_4.text()
     713         if bookid != "" and pcreason != "" and pcxxid != "":
     714             if ok(money)==False:
     715                 count = cur.execute(
     716                     "SELECT * FROM 赔偿信息 where Reader_id = '%s' and book_id='%s' and Reason='%s' and Pay_id='%s';" % (
     717                     dzid, bookid, pcreason, pcxxid))
     718                 if count != 0:
     719                     data = cur.fetchall()
     720                     row = len(data)
     721                     vol = len(data[0])
     722                     self.tableWidget.setRowCount(row)
     723                     self.tableWidget.setColumnCount(vol)
     724                     self.tableWidget.setHorizontalHeaderLabels(
     725                         ['赔偿信息编号', '读者姓名', '读者编号', '书名', '索书号', '赔偿原因', '赔偿金额', '赔偿时间', '是否已支付'])
     726                     for i in range(row):
     727                         for j in range(vol):
     728                             temp_data = data[i][j]
     729                             data1 = QTableWidgetItem(str(temp_data))
     730                             self.tableWidget.setItem(i, j, data1)
     731                 else:
     732                     self.tableWidget.setRowCount(0)
     733                     self.tableWidget.setColumnCount(0)
     734             else:
     735                 count = cur.execute(
     736                     "SELECT * FROM 赔偿信息 where Reader_id = '%s' and book_id='%s' and Reason='%s' and Pay_id='%s' and Money='%f';" % (
     737                         dzid, bookid, pcreason, pcxxid, float(money)))
     738                 if count != 0:
     739                     data = cur.fetchall()
     740                     row = len(data)
     741                     vol = len(data[0])
     742                     self.tableWidget.setRowCount(row)
     743                     self.tableWidget.setColumnCount(vol)
     744                     self.tableWidget.setHorizontalHeaderLabels(
     745                         ['赔偿信息编号', '读者姓名', '读者编号', '书名', '索书号', '赔偿原因', '赔偿金额', '赔偿时间', '是否已支付'])
     746                     for i in range(row):
     747                         for j in range(vol):
     748                             temp_data = data[i][j]
     749                             data1 = QTableWidgetItem(str(temp_data))
     750                             self.tableWidget.setItem(i, j, data1)
     751                 else:
     752                     self.tableWidget.setRowCount(0)
     753                     self.tableWidget.setColumnCount(0)
     754         else:
     755             self.tableWidget.setRowCount(0)
     756             self.tableWidget.setColumnCount(0)
     757             self.tableWidget.setHorizontalHeaderLabels(
     758                 ['赔偿信息编号', '读者姓名', '读者编号', '书名', '索书号', '赔偿原因', '赔偿金额', '赔偿时间', '是否已支付'])
     759 
     760     def pay(self):
     761         pcxxid = self.lineEdit.text()
     762         pcreason = self.lineEdit_2.text()
     763         money = self.lineEdit_3.text()
     764         bookid = self.lineEdit_4.text()
     765         pcxxid =pcxxid
     766         pcreason =pcreason
     767         money =money
     768         bookid =bookid
     769         now = QDateTime.currentDateTime()
     770         if bookid != "" and pcreason != "" and pcxxid != "" and money!="":
     771             if bookid != "" and pcreason != "" and pcxxid != "":
     772                 if ok(money)==False:
     773                     global dzid
     774                     count = cur.execute(
     775                         "SELECT * FROM 赔偿信息 where Reader_id = '%s' and book_id='%s' and Reason='%s' and Pay_id='%s';" % (
     776                         dzid, bookid, pcreason, pcxxid))
     777                     if count == 1:
     778                         data = cur.fetchall()
     779                         if data[0][8]=="未支付":
     780                             wxzfhhh.show()
     781                             cur.execute("update 赔偿信息 set state=('已支付') where Reader_id = '%s' and book_id='%s' and Reason='%s' and Pay_id='%s';" % (dzid, bookid, pcreason, pcxxid))
     782                             conn.commit()
     783                             cur.execute("update 赔偿信息 set date=('%s') where Reader_id = '%s' and book_id='%s' and Reason='%s' and Pay_id='%s';" % (now.toString(Qt.ISODate),dzid, bookid, pcreason, pcxxid))
     784                             conn.commit()
     785                         else:
     786                             pcfail.show()
     787                     else:
     788                         pcfail.show()
     789                 else:
     790                     count = cur.execute("SELECT * FROM 赔偿信息 where Reader_id = '%s' and book_id='%s' and Reason='%s' and Pay_id='%s' and Money='%f';" % (dzid, bookid, pcreason, pcxxid, float(money)))
     791                     if count == 1:
     792                         data = cur.fetchall()
     793                         if data[0][8] == "未支付":
     794                             wxzfhhh.show()
     795                             cur.execute("update 赔偿信息 set state=('已支付') where Reader_id = '%s' and book_id='%s' and Reason='%s' and Pay_id='%s' and Money='%f';" % (dzid, bookid, pcreason, pcxxid,float(money)))
     796                             conn.commit()
     797                             cur.execute(
     798                                 "update 赔偿信息 set date=('%s') where Reader_id = '%s' and book_id='%s' and Reason='%s' and Pay_id='%s' and Money='%f';" % (
     799                                 now.toString(Qt.ISODate), dzid, bookid, pcreason, pcxxid,float(money)))
     800                             conn.commit()
     801                         else:
     802                             pcfail.show()
     803                     else:
     804                         pcfail.show()
     805             else:
     806                 pcfail.show()
     807 
     808 class Ui_wxzfhhh(QtWidgets.QDialog, Ui_26):
     809     def __init__(self):
     810         super(Ui_wxzfhhh, self).__init__()
     811         self.setupUi(self)
     812 
     813 class Ui_glydzxxcz(QtWidgets.QDialog, Ui_27):
     814     def __init__(self):
     815         super(Ui_glydzxxcz, self).__init__()
     816         self.setupUi(self)
     817     def Clean(self):
     818         self.lineEdit.setText("")
     819         self.lineEdit_2.setText("")
     820         self.tableWidget.setRowCount(0)
     821         self.tableWidget.setColumnCount(0)
     822         self.tableWidget.setHorizontalHeaderLabels(['姓名', '读者编号', '密码', '性别', '借书数量', '借书日期', '还书日期'])
     823     def dimquery(self):
     824         readername = self.lineEdit.text()
     825         readerid = self.lineEdit_2.text()
     826         dzcount=cur.execute("select * from 读者信息 where reader_id = '%s' or reader_name = '%s'" % (readerid,readername))
     827         if readername=="" and readerid=="":
     828             dzcount = cur.execute("select * from 读者信息")
     829         if dzcount!=0:
     830             data = cur.fetchall()
     831             row = len(data)
     832             vol = len(data[0])
     833             self.tableWidget.setRowCount(row)
     834             self.tableWidget.setColumnCount(vol)
     835             self.tableWidget.setHorizontalHeaderLabels(['姓名', '读者编号', '密码', '性别', '借书数量','借书日期','还书日期'])
     836             for i in range(row):
     837                 for j in range(vol):
     838                     temp_data = data[i][j]
     839                     data1 = QTableWidgetItem(str(temp_data))
     840                     self.tableWidget.setItem(i, j, data1)
     841         else:
     842             self.tableWidget.setRowCount(0)
     843             self.tableWidget.setColumnCount(0)
     844 
     845 
     846     def exactquery(self):
     847         readername = self.lineEdit.text()
     848         readerid = self.lineEdit_2.text()
     849         dzcount = cur.execute(
     850             "select * from 读者信息 where reader_id = '%s' and reader_name = '%s'" % (readerid, readername))
     851         if dzcount != 0:
     852             data = cur.fetchall()
     853             row = len(data)
     854             vol = len(data[0])
     855             self.tableWidget.setRowCount(row)
     856             self.tableWidget.setColumnCount(vol)
     857             self.tableWidget.setHorizontalHeaderLabels(['姓名', '读者编号', '密码', '性别', '借书数量', '借书日期', '还书日期'])
     858             for i in range(row):
     859                 for j in range(vol):
     860                     temp_data = data[i][j]
     861                     data1 = QTableWidgetItem(str(temp_data))
     862                     self.tableWidget.setItem(i, j, data1)
     863         else:
     864             self.tableWidget.setRowCount(0)
     865             self.tableWidget.setColumnCount(0)
     866 
     867     def Delete(self):
     868         readername = self.lineEdit.text()
     869         readerid = self.lineEdit_2.text()
     870         dzcount = cur.execute(
     871             "select * from 读者信息 where reader_id = '%s' or reader_name = '%s'" % (readerid, readername))
     872         if dzcount == 1:
     873             cur.execute(
     874                 "delete from 读者信息 where reader_id = '%s' or reader_name = '%s'" % (readerid, readername))
     875             conn.commit()
     876             dzxxscsuccess.show()
     877         else:
     878             dzxxscfail.show()
     879 
     880 class Ui_glyhsxxcz(QtWidgets.QDialog, Ui_28):
     881     def __init__(self):
     882         super(Ui_glyhsxxcz, self).__init__()
     883         self.setupUi(self)
     884     def Clean(self):
     885         self.lineEdit.setText("")
     886         self.lineEdit_2.setText("")
     887         self.lineEdit_3.setText("")
     888         self.tableWidget.setRowCount(0)
     889         self.tableWidget.setColumnCount(0)
     890         self.tableWidget.setHorizontalHeaderLabels(['书名', '索书号', '读者编号', '还书时间'])
     891     def dimquery(self):
     892         bookname = self.lineEdit.text()
     893         bookid = self.lineEdit_2.text()
     894         readerid =  self.lineEdit_3.text()
     895         sjcount=cur.execute("SELECT * FROM 还书信息 where book_name='%s' or reader_id='%s' or book_id = '%s'" % (bookname,readerid,bookid))
     896         if bookname=="" and bookid=="" and readerid=="":
     897             sjcount = cur.execute("SELECT * FROM 还书信息")
     898         if sjcount!=0:
     899             data = cur.fetchall()
     900             row = len(data)
     901             vol = len(data[0])
     902             self.tableWidget.setRowCount(row)
     903             self.tableWidget.setColumnCount(vol)
     904             self.tableWidget.setHorizontalHeaderLabels(['书名','索书号','读者编号','还书时间'])
     905             for i in range(row):
     906                 for j in range(vol):
     907                     temp_data = data[i][j]
     908                     data1 = QTableWidgetItem(str(temp_data))
     909                     self.tableWidget.setItem(i, j, data1)
     910         else:
     911             self.tableWidget.setRowCount(0)
     912             self.tableWidget.setColumnCount(0)
     913     def exactquery(self):
     914         bookname = self.lineEdit.text()
     915         bookid = self.lineEdit_2.text()
     916         readerid =  self.lineEdit_3.text()
     917         sjcount=cur.execute("SELECT * FROM 还书信息 where book_name='%s' and reader_id='%s' and book_id = '%s'" % (bookname,readerid,bookid))
     918         if sjcount !=0:
     919             data = cur.fetchall()
     920             row = len(data)
     921             vol = len(data[0])
     922             self.tableWidget.setRowCount(row)
     923             self.tableWidget.setColumnCount(vol)
     924             self.tableWidget.setHorizontalHeaderLabels(['书名','索书号','读者编号','还书时间'])
     925             for i in range(row):
     926                 for j in range(vol):
     927                     temp_data = data[i][j]
     928                     data1 = QTableWidgetItem(str(temp_data))
     929                     self.tableWidget.setItem(i, j, data1)
     930         else:
     931             self.tableWidget.setRowCount(0)
     932             self.tableWidget.setColumnCount(0)
     933 
     934 class Ui_glyjsxxcz(QtWidgets.QDialog, Ui_29):
     935     def __init__(self):
     936         super(Ui_glyjsxxcz, self).__init__()
     937         self.setupUi(self)
     938     def Clean(self):
     939         self.lineEdit.setText("")
     940         self.lineEdit_2.setText("")
     941         self.lineEdit_3.setText("")
     942         self.tableWidget.setRowCount(0)
     943         self.tableWidget.setColumnCount(0)
     944         self.tableWidget.setHorizontalHeaderLabels(['书名','索书号','读者编号','借书日期','借书时限'])
     945     def dimquery(self):
     946         bookname = self.lineEdit.text()
     947         bookid = self.lineEdit_2.text()
     948         readerid =  self.lineEdit_3.text()
     949         sjcount=cur.execute("SELECT * FROM 借书信息 where book_name='%s' or reader_id='%s' or book_id = '%s'" % (bookname,readerid,bookid))
     950         if bookname=="" and bookid=="" and readerid=="":
     951             sjcount = cur.execute("SELECT * FROM 借书信息")
     952         if sjcount!=0:
     953             data = cur.fetchall()
     954             row = len(data)
     955             vol = len(data[0])
     956             self.tableWidget.setRowCount(row)
     957             self.tableWidget.setColumnCount(vol)
     958             self.tableWidget.setHorizontalHeaderLabels(['书名','索书号','读者编号','借书日期','借书时限'])
     959             for i in range(row):
     960                 for j in range(vol):
     961                     temp_data = data[i][j]
     962                     data1 = QTableWidgetItem(str(temp_data))
     963                     self.tableWidget.setItem(i, j, data1)
     964         else:
     965             self.tableWidget.setRowCount(0)
     966             self.tableWidget.setColumnCount(0)
     967     def exactquery(self):
     968         bookname = self.lineEdit.text()
     969         bookid = self.lineEdit_2.text()
     970         readerid = self.lineEdit_3.text()
     971         sjcount = cur.execute(
     972             "SELECT * FROM 借书信息 where book_name='%s' and reader_id='%s' and book_id = '%s'" % (
     973             bookname, readerid, bookid))
     974         if sjcount != 0:
     975             data = cur.fetchall()
     976             row = len(data)
     977             vol = len(data[0])
     978             self.tableWidget.setRowCount(row)
     979             self.tableWidget.setColumnCount(vol)
     980             self.tableWidget.setHorizontalHeaderLabels(['书名', '索书号', '读者编号', '借书日期', '借书时限'])
     981             for i in range(row):
     982                 for j in range(vol):
     983                     temp_data = data[i][j]
     984                     data1 = QTableWidgetItem(str(temp_data))
     985                     self.tableWidget.setItem(i, j, data1)
     986         else:
     987             self.tableWidget.setRowCount(0)
     988             self.tableWidget.setColumnCount(0)
     989 
     990 class Ui_glypcxxcz(QtWidgets.QDialog, Ui_30):
     991     def __init__(self):
     992         super(Ui_glypcxxcz, self).__init__()
     993         self.setupUi(self)
     994     def Clean(self):
     995         self.lineEdit.setText("")
     996         self.lineEdit_2.setText("")
     997         self.lineEdit_3.setText("")
     998         self.lineEdit_4.setText("")
     999         self.tableWidget.setRowCount(0)
    1000         self.tableWidget.setColumnCount(0)
    1001         self.tableWidget.setHorizontalHeaderLabels(['读者姓名', '读者编号', '书名', '索书号', '赔偿原因', '赔偿金额', '赔偿时间'])
    1002 
    1003     def dimquery(self):
    1004         readername = self.lineEdit.text()
    1005         readerid = self.lineEdit_2.text()
    1006         bookid =  self.lineEdit_3.text()
    1007         reason= self.lineEdit_4.text()
    1008         sjcount=cur.execute("SELECT * FROM 赔偿信息 where reader_name='%s' or reader_id='%s' or book_id = '%s' or reason='%s'" % (readername,readerid,bookid,reason))
    1009         if readername=="" and readerid=="" and bookid=="" and reason=="":
    1010             sjcount = cur.execute("SELECT * FROM 赔偿信息")
    1011         if sjcount!=0:
    1012             data = cur.fetchall()
    1013             row = len(data)
    1014             vol = len(data[0])
    1015             self.tableWidget.setRowCount(row)
    1016             self.tableWidget.setColumnCount(vol)
    1017             self.tableWidget.setHorizontalHeaderLabels(['读者姓名', '读者编号', '书名', '索书号', '赔偿原因','赔偿金额','赔偿时间'])
    1018             for i in range(row):
    1019                 for j in range(vol):
    1020                     temp_data = data[i][j]
    1021                     data1 = QTableWidgetItem(str(temp_data))
    1022                     self.tableWidget.setItem(i, j, data1)
    1023         else:
    1024             self.tableWidget.setRowCount(0)
    1025             self.tableWidget.setColumnCount(0)
    1026 
    1027     def exactquery(self):
    1028         readername = self.lineEdit.text()
    1029         readerid = self.lineEdit_2.text()
    1030         bookid = self.lineEdit_3.text()
    1031         reason = self.lineEdit_4.text()
    1032         sjcount = cur.execute(
    1033             "SELECT * FROM 赔偿信息 where reader_name='%s' and reader_id='%s' and book_id = '%s' and reason='%s'" % (
    1034             readername, readerid, bookid, reason))
    1035         if sjcount == 1:
    1036             data = cur.fetchall()
    1037             row = len(data)
    1038             vol = len(data[0])
    1039             self.tableWidget.setRowCount(row)
    1040             self.tableWidget.setColumnCount(vol)
    1041             self.tableWidget.setHorizontalHeaderLabels(['读者姓名', '读者编号', '书名', '索书号', '赔偿原因', '赔偿金额', '赔偿时间'])
    1042             for i in range(row):
    1043                 for j in range(vol):
    1044                     temp_data = data[i][j]
    1045                     data1 = QTableWidgetItem(str(temp_data))
    1046                     self.tableWidget.setItem(i, j, data1)
    1047         else:
    1048             self.tableWidget.setRowCount(0)
    1049             self.tableWidget.setColumnCount(0)
    1050 
    1051 class Ui_glysjcz(QtWidgets.QDialog, Ui_31):
    1052     def __init__(self):
    1053         super(Ui_glysjcz, self).__init__()
    1054         self.setupUi(self)
    1055     def Clean(self):
    1056         self.lineEdit.setText("")
    1057         self.lineEdit_2.setText("")
    1058         self.lineEdit_3.setText("")
    1059         self.lineEdit_4.setText("")
    1060         self.tableWidget.setRowCount(0)
    1061         self.tableWidget.setColumnCount(0)
    1062         self.tableWidget.setHorizontalHeaderLabels(['书名', '索书号', '类型', '价格', '是否可借'])
    1063     def dimquery(self):
    1064         bookname = self.lineEdit.text()
    1065         bookid = self.lineEdit_2.text()
    1066         Type =  self.lineEdit_3.text()
    1067         money= self.lineEdit_4.text()
    1068         if ok(money)==False:
    1069             sjcount = cur.execute(
    1070                 "SELECT * FROM 书籍信息 where Book_id='%s' or book_name='%s' or Type = '%s'" % (
    1071                 bookid, bookname, Type))
    1072         else:
    1073             sjcount=cur.execute("SELECT * FROM 书籍信息 where Book_id='%s' or book_name='%s' or Type = '%s' or money='%f'" % (bookid,bookname,Type,float(money)))
    1074         if bookname=="" and bookid=="" and Type=="" and money=="":
    1075             sjcount = cur.execute("SELECT * FROM 书籍信息")
    1076         if sjcount!=0:
    1077             data = cur.fetchall()
    1078             row = len(data)
    1079             vol = len(data[0])
    1080             self.tableWidget.setRowCount(row)
    1081             self.tableWidget.setColumnCount(vol)
    1082             self.tableWidget.setHorizontalHeaderLabels(['书名', '索书号', '类型', '价格', '是否可借'])
    1083             for i in range(row):
    1084                 for j in range(vol):
    1085                     temp_data = data[i][j]
    1086                     data1 = QTableWidgetItem(str(temp_data))
    1087                     self.tableWidget.setItem(i, j, data1)
    1088         else:
    1089             self.tableWidget.setRowCount(0)
    1090             self.tableWidget.setColumnCount(0)
    1091     def exactquery(self):
    1092         bookname = self.lineEdit.text()
    1093         bookid = self.lineEdit_2.text()
    1094         Type =  self.lineEdit_3.text()
    1095         money= self.lineEdit_4.text()
    1096         if ok(money)==False:
    1097             sjcount = cur.execute(
    1098                 "SELECT * FROM 书籍信息 where Book_id='%s' and book_name='%s' and Type = '%s'" % (
    1099                 bookid, bookname, Type))
    1100         else:
    1101             sjcount=cur.execute("SELECT * FROM 书籍信息 where Book_id='%s' and book_name='%s' and Type = '%s' and money='%f'" % (bookid,bookname,Type,float(money)))
    1102         if sjcount!=0:
    1103             data = cur.fetchall()
    1104             row = len(data)
    1105             vol = len(data[0])
    1106             self.tableWidget.setRowCount(row)
    1107             self.tableWidget.setColumnCount(vol)
    1108             self.tableWidget.setHorizontalHeaderLabels(['书名', '索书号', '类型', '价格', '是否可借'])
    1109             for i in range(row):
    1110                 for j in range(vol):
    1111                     temp_data = data[i][j]
    1112                     data1 = QTableWidgetItem(str(temp_data))
    1113                     self.tableWidget.setItem(i, j, data1)
    1114         else:
    1115             self.tableWidget.setRowCount(0)
    1116             self.tableWidget.setColumnCount(0)
    1117     def add(self):
    1118         bookname = self.lineEdit.text()
    1119         bookid = self.lineEdit_2.text()
    1120         Type = self.lineEdit_3.text()
    1121         money = self.lineEdit_4.text()
    1122         count=cur.execute("SELECT * FROM 书籍信息 where book_id='%s';" % (bookid))
    1123         if bookname!="" and bookid !="" and Type !="" and ok(money)==True and float(money)>=0 and count==0:
    1124             cur.execute("insert into 书籍信息 values('%s','%s','%s','%s','可借')"%(bookname,bookid,Type,float(money)))
    1125             conn.commit()
    1126             tjsuccess.show()
    1127         else:
    1128             tjfail.show()
    1129 
    1130     def Delete(self):
    1131         bookname = self.lineEdit.text()
    1132         bookid = self.lineEdit_2.text()
    1133         Type = self.lineEdit_3.text()
    1134         money = self.lineEdit_4.text()
    1135         if ok(money)==True:
    1136             sjcount=cur.execute("SELECT * FROM 书籍信息 where Book_id='%s' or book_name='%s' or Type = '%s' or money='%f'" % (bookid,bookname,Type,float(money)))
    1137             if sjcount == 1:
    1138                 cur.execute("delete from 书籍信息 where Book_id='%s' or book_name='%s' or Type = '%s' or money='%f'" % (bookid,bookname,Type,float(money)))
    1139                 conn.commit()
    1140                 dzxxscsuccess.show()
    1141             else:
    1142                 dzxxscfail.show()
    1143         else:
    1144             dzxxscfail.show()
    1145 class Ui_glyxgmm(QtWidgets.QDialog, Ui_32):
    1146     def __init__(self):
    1147         super(Ui_glyxgmm, self).__init__()
    1148         self.setupUi(self)
    1149     def Clean(self):
    1150         self.lineEdit.setText("")
    1151         self.lineEdit_2.setText("")
    1152     def xgmm(self):
    1153         global glyid
    1154         firstpw = self.lineEdit.text()
    1155         secondpw = self.lineEdit_2.text()
    1156         if firstpw != "" and secondpw != "":
    1157             if firstpw == secondpw and firstpw!="":
    1158                 cur.execute("update 管理员 set password = ('%s') where admin_id='%s'" % (firstpw, glyid))
    1159                 conn.commit()
    1160                 self.lineEdit.setText("")
    1161                 self.lineEdit_2.setText("")
    1162                 xgmmsuccessful.show()
    1163             else:
    1164                 xgmmfail.show()
    1165 
    1166 class Ui_dzxxscsuccess(QtWidgets.QDialog, Ui_33):
    1167     def __init__(self):
    1168         super(Ui_dzxxscsuccess, self).__init__()
    1169         self.setupUi(self)
    1170 
    1171 class Ui_dzxxscfail(QtWidgets.QDialog, Ui_34):
    1172     def __init__(self):
    1173         super(Ui_dzxxscfail, self).__init__()
    1174         self.setupUi(self)
    1175 
    1176 class Ui_tjfail(QtWidgets.QDialog, Ui_35):
    1177     def __init__(self):
    1178         super(Ui_tjfail, self).__init__()
    1179         self.setupUi(self)
    1180 
    1181 class Ui_tjsuccess(QtWidgets.QDialog, Ui_36):
    1182     def __init__(self):
    1183         super(Ui_tjsuccess, self).__init__()
    1184         self.setupUi(self)
    1185 
    1186 class Ui_pcfail(QtWidgets.QDialog, Ui_37):
    1187     def __init__(self):
    1188         super(Ui_pcfail, self).__init__()
    1189         self.setupUi(self)
    1190 
    1191 class Ui_cqpc(QtWidgets.QDialog, Ui_38):
    1192     def __init__(self):
    1193         super(Ui_cqpc, self).__init__()
    1194         self.setupUi(self)
    1195 
    1196 class Ui_xjfail(QtWidgets.QDialog, Ui_39):
    1197     def __init__(self):
    1198         super(Ui_xjfail, self).__init__()
    1199         self.setupUi(self)
    1200 
    1201 class Ui_xjcg(QtWidgets.QDialog, Ui_40):
    1202     def __init__(self):
    1203         super(Ui_xjcg, self).__init__()
    1204         self.setupUi(self)
    1205 
    1206 class Ui_unexpected(QtWidgets.QDialog, Ui_41):
    1207     def __init__(self):
    1208         super(Ui_unexpected, self).__init__()
    1209         self.setupUi(self)
    1210     def Clean(self):
    1211         self.lineEdit.setText("")
    1212         self.lineEdit_2.setText("")
    1213         self.lineEdit_3.setText("")
    1214         self.lineEdit_4.setText("")
    1215     def add(self):
    1216         readername = self.lineEdit.text()
    1217         readerid = self.lineEdit_2.text()
    1218         bookid = self.lineEdit_3.text()
    1219         money = self.lineEdit_4.text()
    1220         reason = self.comboBox_2.currentText()
    1221         readername = readername
    1222         readerid = readerid
    1223         bookid = bookid
    1224         money = money
    1225         reason = reason
    1226         jscount = cur.execute(
    1227             "SELECT * FROM 借书信息 where Book_id='%s' and reader_id='%s' and state='未归还'" % (bookid, readerid))
    1228         now = QDateTime.currentDateTime()
    1229         if ok(money)==True and jscount==1 and float(money)>=0:
    1230             cur.execute(
    1231                 "update 借书信息 set state=('%s') where Book_id='%s' and reader_id='%s' and state='未归还'" % (reason,bookid,readerid))
    1232             conn.commit()
    1233             cur.execute("update 书籍信息 set state=('%s') where Book_id='%s'" % (reason, bookid))
    1234             conn.commit()
    1235 
    1236             cur.execute("select * from 赔偿信息")
    1237             data1 = cur.fetchall()
    1238             row1 = len(data1)
    1239             row1 = row1 + 1
    1240             cur.execute("select * from 书籍信息 where book_id='%s'"% (bookid))
    1241             data1 = cur.fetchall()
    1242 
    1243             cur.execute("insert into 赔偿信息 values('%s','%s','%s','%s','%s','%s','%f','%s','未支付')" % (str(row1), readername, readerid, data1[0][0], bookid, reason, float(money), now.toString(Qt.ISODate)))
    1244             conn.commit()
    1245             cur.execute("update 读者信息 set number=(number-1) where reader_id = '%s'" % (readerid))
    1246             conn.commit()
    1247 
    1248             tjsuccess.show()
    1249         else:
    1250             tjfail.show()
    1251 
    1252 if __name__ == "__main__":
    1253 
    1254     conn = pymysql.connect("localhost", "root", "1weiANRAN", "图书馆管理系统")
    1255     cur = conn.cursor()
    1256 
    1257     app = QtWidgets.QApplication(sys.argv)
    1258     lgin = First()
    1259     dial = Ui_Dialog()
    1260     dzd = Ui_dzdl()
    1261     glyd = Ui_glydl()
    1262     zc = Ui_zc()
    1263     dzzc = Ui_dzzc()
    1264     glyzc = Ui_glyzc()
    1265     dzdlcw = Ui_dzdlcw()
    1266     dzcz = Ui_dzcz()
    1267     dzxxcx = Ui_dzxxcx()
    1268     dzxgmm = Ui_dzxgmm()
    1269     xgmmsuccessful = Ui_xgmmsuccessful()
    1270     xgmmfail = Ui_xgmmfail()
    1271     dzjs = Ui_dzjs()
    1272     jsxxcx = Ui_jsxxcx()
    1273     hsxxcx = Ui_hsxxcx()
    1274     dzzcsuccess = Ui_dzzcsuccess()
    1275     dzzcfail = Ui_dzzcfail()
    1276     glycz = Ui_glycz()
    1277     jssuccess = Ui_jssuccess()
    1278     jsfail = Ui_jsfail()
    1279     hssuccess =Ui_hssuccess()
    1280     hsfail = Ui_hsfail()
    1281     pccz = Ui_pccz()
    1282     wxzfhhh = Ui_wxzfhhh()
    1283     glyxgmm = Ui_glyxgmm()
    1284     glydzxxcz = Ui_glydzxxcz()
    1285     glyhsxxcz = Ui_glyhsxxcz()
    1286     glyjsxxcz = Ui_glyjsxxcz()
    1287     glypcxxcz = Ui_glypcxxcz()
    1288     glysjcz = Ui_glysjcz()
    1289     dzxxscsuccess = Ui_dzxxscsuccess()
    1290     dzxxscfail = Ui_dzxxscfail()
    1291     tjfail = Ui_tjfail()
    1292     tjsuccess = Ui_tjsuccess()
    1293     pcfail = Ui_pcfail()
    1294     cqpc = Ui_cqpc()
    1295     xjfail = Ui_xjfail()
    1296     xjcg = Ui_xjcg()
    1297     unexpected = Ui_unexpected()
    1298 
    1299     lgin.show()
    1300     lgin.pushButton.clicked.connect(lgin.hide)
    1301     lgin.pushButton.clicked.connect(dial.show)#登录按钮
    1302 
    1303     lgin.pushButton_2.clicked.connect(lgin.hide)
    1304     lgin.pushButton_2.clicked.connect(zc.show)#注册按钮
    1305 
    1306     dial.pushButton_3.clicked.connect(dial.hide)
    1307     dial.pushButton_3.clicked.connect(lgin.show)#从登录选择界面返回登录首界面
    1308 
    1309     dial.pushButton.clicked.connect(dial.hide)
    1310     dial.pushButton.clicked.connect(dzd.show)#进入读者登陆界面
    1311 
    1312     dzd.pushButton_2.clicked.connect(dzd.Clean)
    1313     dzd.pushButton_2.clicked.connect(dzd.hide)
    1314     dzd.pushButton_2.clicked.connect(dial.show)#返回登录选择界面
    1315 
    1316     dzd.pushButton_3.clicked.connect(dzd.get_word)#调用get_word函数
    1317 
    1318     dial.pushButton_2.clicked.connect(dial.hide)
    1319     dial.pushButton_2.clicked.connect(glyd.show)#进入管理员登陆界面
    1320 
    1321     glyd.pushButton_2.clicked.connect(glyd.hide)
    1322     glyd.pushButton_2.clicked.connect(dial.show)#从管理员登陆界面返回登录选择界面
    1323 
    1324     zc.pushButton_3.clicked.connect(zc.hide)
    1325     zc.pushButton_3.clicked.connect(lgin.show)#从注册选择界面返回登录首界面
    1326 
    1327     zc.pushButton.clicked.connect(zc.hide)
    1328     zc.pushButton.clicked.connect(dzzc.show)#从注册选择界面进入读者注册界面
    1329 
    1330     dzzc.pushButton_3.clicked.connect(dzzc.get_word)  # 调用get_word函数
    1331 
    1332     dzzc.pushButton.clicked.connect(dzzc.Clean)  # 调用Clean函数
    1333 
    1334     glyzc.pushButton.clicked.connect(glyzc.get_word)  # 调用get_word函数
    1335 
    1336     glyzc.pushButton_2.clicked.connect(glyzc.Clean) # 调用Clean函数
    1337 
    1338     glyd.pushButton.clicked.connect(glyd.get_word)  # 调用get_word函数
    1339 
    1340     dzzc.pushButton.clicked.connect(dzzc.hide)
    1341     dzzc.pushButton.clicked.connect(zc.show)#从读者注册界面返回注册选择界面
    1342 
    1343     zc.pushButton_2.clicked.connect(zc.hide)
    1344     zc.pushButton_2.clicked.connect(glyzc.show)  # 从注册选择界面进入管理员注册界面
    1345 
    1346     glyzc.pushButton_2.clicked.connect(glyzc.hide)
    1347     glyzc.pushButton_2.clicked.connect(zc.show)  # 从管理员注册界面返回注册选择界面
    1348     sys.exit(app.exec_())
  • 相关阅读:
    Python 15 爬虫(一)
    Python 14 Mysql数据库(二)
    Python 13 JQuery&Bootstrp
    Python 12 CSS&JavaScript&DOOM
    Python 11 HTML
    Python 10 MySQL数据库(一)
    Python 9 Redis
    Python 8 协程
    Python 7 并发编程
    SNMP协议详解
  • 原文地址:https://www.cnblogs.com/war1111/p/12031230.html
Copyright © 2011-2022 走看看