讲义与答题纸信息查询脚本编写完成
This commit is contained in:
parent
0c311dccd5
commit
be848bc7cc
|
|
@ -0,0 +1,82 @@
|
||||||
|
from PySide6.QtWidgets import QWidget, QTableWidgetItem, QApplication
|
||||||
|
from Ui_讲义与答题纸信息查询 import Ui_Form
|
||||||
|
from database_tools_2 import *
|
||||||
|
|
||||||
|
|
||||||
|
class MyWindow_jycx(QWidget,Ui_Form):
|
||||||
|
def __init__(self,database_name):
|
||||||
|
super().__init__()
|
||||||
|
self.setupUi(self)
|
||||||
|
self.database_name = database_name
|
||||||
|
self.bind()
|
||||||
|
def bind(self):
|
||||||
|
self.tableWidget.setColumnWidth(0,100)
|
||||||
|
self.tableWidget.setColumnWidth(1,350)
|
||||||
|
self.tableWidget.setColumnWidth(2,240)
|
||||||
|
self.pushButton_nid.clicked.connect(self.exec_nid)
|
||||||
|
self.pushButton_name.clicked.connect(self.exec_name)
|
||||||
|
self.pushButton_pid.clicked.connect(self.exec_pid)
|
||||||
|
|
||||||
|
def setdbname(self,string):
|
||||||
|
self.database_name = string
|
||||||
|
# print(self.database_name)
|
||||||
|
|
||||||
|
def select_data(self,method):
|
||||||
|
field = {"nid": "notes.nid", "pid": "answersheets.pid", "name": "notes.name"}
|
||||||
|
regex = {"nid": self.lineEdit_nid.text(), "pid": self.lineEdit_pid.text(), "name": self.lineEdit_name.text()}
|
||||||
|
mydb = connect(hostname = db_host, port = db_port, username=db_user, pwd=db_pwd, db = self.database_name)
|
||||||
|
mycursor = mydb.cursor()
|
||||||
|
sql = 'SELECT notes.nid,notes.name,answersheets.pid FROM notes LEFT JOIN answersheets ON notes.nid = answersheets.nid WHERE NOT notes.obsolete AND ' +field[method]+' REGEXP %s;'
|
||||||
|
val = (regex[method],)
|
||||||
|
mycursor.execute(sql,val)
|
||||||
|
ret_raw_info = mycursor.fetchall()
|
||||||
|
self.infos = []
|
||||||
|
for nid,name,pid in ret_raw_info:
|
||||||
|
if pid is None:
|
||||||
|
self.infos.append((nid,name,"无答题纸"))
|
||||||
|
else:
|
||||||
|
sql = 'SELECT obsolete FROM answersheets WHERE pid = %s;'
|
||||||
|
val = (pid,)
|
||||||
|
mycursor.execute(sql,val)
|
||||||
|
ret = mycursor.fetchall()
|
||||||
|
if ret[0][0] == False:
|
||||||
|
self.infos.append((nid,name,pid))
|
||||||
|
else:
|
||||||
|
self.infos.append((nid,name,"作废"))
|
||||||
|
mydb.close()
|
||||||
|
|
||||||
|
def show_infos(self):
|
||||||
|
self.tableWidget.clearContents()
|
||||||
|
self.tableWidget.setRowCount(len(self.infos))
|
||||||
|
sorted_infos = sorted(self.infos, key=lambda x: x[0][1:5]+x[0][0]+x[0][5:])
|
||||||
|
for i in range(len(self.infos)):
|
||||||
|
nid,name,pid = sorted_infos[i]
|
||||||
|
self.tableWidget.setItem(i,0,QTableWidgetItem(nid))
|
||||||
|
self.tableWidget.setItem(i,1,QTableWidgetItem(name))
|
||||||
|
self.tableWidget.setItem(i,2,QTableWidgetItem(pid))
|
||||||
|
|
||||||
|
|
||||||
|
def exec_nid(self):
|
||||||
|
self.select_data("nid")
|
||||||
|
self.show_infos()
|
||||||
|
|
||||||
|
def exec_name(self):
|
||||||
|
self.select_data("name")
|
||||||
|
self.show_infos()
|
||||||
|
|
||||||
|
def exec_pid(self):
|
||||||
|
self.select_data("pid")
|
||||||
|
self.show_infos()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
app = QApplication([])
|
||||||
|
windows = MyWindow_jycx("tikutest")
|
||||||
|
windows.show()
|
||||||
|
app.exec()
|
||||||
|
|
||||||
Reference in New Issue