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_())
  • 相关阅读:
    NYOJ 10 skiing DFS+DP
    51nod 1270 数组的最大代价
    HDU 4635 Strongly connected
    HDU 4612 Warm up
    POJ 3177 Redundant Paths
    HDU 1629 迷宫城堡
    uva 796
    uva 315
    POJ 3180 The Cow Prom
    POJ 1236 Network of Schools
  • 原文地址:https://www.cnblogs.com/war1111/p/12031230.html
Copyright © 2011-2022 走看看