def __init__(self): # 搜索关键列的列表 一般大小为3 self.select_conditions = [] # 在setupUi中进行重写 self.queryModel = MySearchTableModelPIM( "T_Product_BatchDetail", ["BatchNO"], "ProductName,ProductCode,ProductNOS,Counts") self.totalPageLabel = QtWidgets.QLabel() self.totalPageLabel.setObjectName("totalPageLabel") self.jumpEdit = QtWidgets.QLineEdit() self.jumpEdit.setMaximumSize(QtCore.QSize(50, 50))
def setupUi(self, Form): Form.setObjectName("Form") Form.resize(958, 696) font = QtGui.QFont() font.setFamily("微软雅黑 Light") font.setPointSize(10) Form.setFont(font) self.verticalLayout = QtWidgets.QVBoxLayout(Form) self.verticalLayout.setObjectName("verticalLayout") self.label = QtWidgets.QLabel(Form) font = QtGui.QFont() font.setFamily("Agency FB") font.setPointSize(16) self.label.setFont(font) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.label_3 = QtWidgets.QLabel(Form) self.label_3.setObjectName("label_3") self.horizontalLayout.addWidget(self.label_3) self.dateEdit = QtWidgets.QDateEdit(Form) self.dateEdit.setDisplayFormat("yyyy-MM-dd") self.dateEdit.setMinimumWidth(120) self.dateEdit.setMinimumDate(QDate(2015, 1, 1)) self.dateEdit.setDate( QDate.fromString(time.strftime("%Y-%m-%d", time.localtime()), 'yyyy-MM-dd')) self.dateEdit.setMaximumDate(QDate(2199, 1, 1)) self.dateEdit.setCalendarPopup(True) self.dateEdit.setObjectName("dateEdit") self.horizontalLayout.addWidget(self.dateEdit) self.label_4 = QtWidgets.QLabel(Form) self.label_4.setObjectName("label_4") self.horizontalLayout.addWidget(self.label_4) self.dateEdit_2 = QtWidgets.QDateEdit(Form) self.dateEdit_2.setDisplayFormat("yyyy-MM-dd") self.dateEdit_2.setMinimumWidth(120) self.dateEdit_2.setMinimumDate(QDate(2015, 1, 1)) self.dateEdit_2.setDate( QDate.fromString(time.strftime("%Y-%m-%d", time.localtime()), 'yyyy-MM-dd')) self.dateEdit_2.setMaximumDate(QDate(2199, 1, 1)) self.dateEdit_2.setCalendarPopup(True) self.dateEdit_2.setObjectName("dateEdit_2") self.horizontalLayout.addWidget(self.dateEdit_2) spacerItem = QtWidgets.QSpacerItem(68, 29, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.label_5 = QtWidgets.QLabel(Form) self.label_5.setObjectName("label_5") self.horizontalLayout.addWidget(self.label_5) self.searchEdit = QtWidgets.QLineEdit(Form) self.searchEdit.setMaximumSize(QtCore.QSize(400, 16777215)) self.searchEdit.setObjectName("lineEdit_2") self.horizontalLayout.addWidget(self.searchEdit) self.pushButton_2 = QtWidgets.QPushButton(Form) self.pushButton_2.setObjectName("pushButton_2") self.horizontalLayout.addWidget(self.pushButton_2) self.verticalLayout.addLayout(self.horizontalLayout) # 中间手动代码部分 表格UI构建 self.db = openDB() self.tableView = QTableView() slt = "ProductID,ProductNO,ProductName,InitCount" headerRow = ["产品编号", "产品代号", "产品名称", "交付数量", "合计(同一产品代号)"] self.queryModel = MySearchTableModelPIM("T_Product_New", headerRow, slt) self.tableView.setModel(self.queryModel) self.header = CheckBoxHeader() self.tableView.setHorizontalHeader(self.header) self.header.clicked.connect(self.queryModel.headerClick) self.tableView.horizontalHeader().setStretchLastSection(True) self.tableView.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) self.tableView.setModel(self.queryModel) self.verticalLayout.addWidget(self.tableView) self.verticalLayout.addWidget(self.tableView) self.horizontalLayout_4 = QtWidgets.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem1) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.label_2 = QtWidgets.QLabel(Form) self.label_2.setObjectName("label_2") self.horizontalLayout_2.addWidget(self.label_2) self.jumpEdit = QtWidgets.QLineEdit(Form) self.jumpEdit.setMaximumSize(QtCore.QSize(50, 50)) self.jumpEdit.setMaxLength(9999) self.jumpEdit.setAlignment(QtCore.Qt.AlignCenter) self.jumpEdit.setObjectName("jumpEdit") self.horizontalLayout_2.addWidget(self.jumpEdit) self.totalPageLabel = QtWidgets.QLabel(Form) self.totalPageLabel.setObjectName("totalPageLabel") self.horizontalLayout_2.addWidget(self.totalPageLabel) self.jumpButton = QtWidgets.QPushButton(Form) self.jumpButton.setObjectName("jumpButton") self.horizontalLayout_2.addWidget(self.jumpButton) self.previousButton = QtWidgets.QPushButton(Form) self.previousButton.setObjectName("previousButton") self.horizontalLayout_2.addWidget(self.previousButton) self.nextButton = QtWidgets.QPushButton(Form) self.nextButton.setObjectName("nextButton") self.horizontalLayout_2.addWidget(self.nextButton) self.horizontalLayout_4.addLayout(self.horizontalLayout_2) spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem2) self.verticalLayout.addLayout(self.horizontalLayout_4) self.retranslateUi(Form) self.bindButton() QtCore.QMetaObject.connectSlotsByName(Form)
class ProductDeliveryRegistration(MySearchWidget): def __init__(self): super(ProductDeliveryRegistration, self).__init__() self.select_conditions = ["ReceiverDate", "ProductNO"] def setupUi(self, Form): Form.setObjectName("Form") Form.resize(958, 696) font = QtGui.QFont() font.setFamily("微软雅黑 Light") font.setPointSize(10) Form.setFont(font) self.verticalLayout = QtWidgets.QVBoxLayout(Form) self.verticalLayout.setObjectName("verticalLayout") self.label = QtWidgets.QLabel(Form) font = QtGui.QFont() font.setFamily("Agency FB") font.setPointSize(16) self.label.setFont(font) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.label_3 = QtWidgets.QLabel(Form) self.label_3.setObjectName("label_3") self.horizontalLayout.addWidget(self.label_3) self.dateEdit = QtWidgets.QDateEdit(Form) self.dateEdit.setDisplayFormat("yyyy-MM-dd") self.dateEdit.setMinimumWidth(120) self.dateEdit.setMinimumDate(QDate(2015, 1, 1)) self.dateEdit.setDate( QDate.fromString(time.strftime("%Y-%m-%d", time.localtime()), 'yyyy-MM-dd')) self.dateEdit.setMaximumDate(QDate(2199, 1, 1)) self.dateEdit.setCalendarPopup(True) self.dateEdit.setObjectName("dateEdit") self.horizontalLayout.addWidget(self.dateEdit) self.label_4 = QtWidgets.QLabel(Form) self.label_4.setObjectName("label_4") self.horizontalLayout.addWidget(self.label_4) self.dateEdit_2 = QtWidgets.QDateEdit(Form) self.dateEdit_2.setDisplayFormat("yyyy-MM-dd") self.dateEdit_2.setMinimumWidth(120) self.dateEdit_2.setMinimumDate(QDate(2015, 1, 1)) self.dateEdit_2.setDate( QDate.fromString(time.strftime("%Y-%m-%d", time.localtime()), 'yyyy-MM-dd')) self.dateEdit_2.setMaximumDate(QDate(2199, 1, 1)) self.dateEdit_2.setCalendarPopup(True) self.dateEdit_2.setObjectName("dateEdit_2") self.horizontalLayout.addWidget(self.dateEdit_2) spacerItem = QtWidgets.QSpacerItem(68, 29, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.label_5 = QtWidgets.QLabel(Form) self.label_5.setObjectName("label_5") self.horizontalLayout.addWidget(self.label_5) self.searchEdit = QtWidgets.QLineEdit(Form) self.searchEdit.setMaximumSize(QtCore.QSize(400, 16777215)) self.searchEdit.setObjectName("lineEdit_2") self.horizontalLayout.addWidget(self.searchEdit) self.pushButton_2 = QtWidgets.QPushButton(Form) self.pushButton_2.setObjectName("pushButton_2") self.horizontalLayout.addWidget(self.pushButton_2) self.verticalLayout.addLayout(self.horizontalLayout) # 中间手动代码部分 表格UI构建 self.db = openDB() self.tableView = QTableView() slt = "ProductID,ProductNO,ProductName,InitCount" headerRow = ["产品编号", "产品代号", "产品名称", "交付数量", "合计(同一产品代号)"] self.queryModel = MySearchTableModelPIM("T_Product_New", headerRow, slt) self.tableView.setModel(self.queryModel) self.header = CheckBoxHeader() self.tableView.setHorizontalHeader(self.header) self.header.clicked.connect(self.queryModel.headerClick) self.tableView.horizontalHeader().setStretchLastSection(True) self.tableView.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) self.tableView.setModel(self.queryModel) self.verticalLayout.addWidget(self.tableView) self.verticalLayout.addWidget(self.tableView) self.horizontalLayout_4 = QtWidgets.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem1) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.label_2 = QtWidgets.QLabel(Form) self.label_2.setObjectName("label_2") self.horizontalLayout_2.addWidget(self.label_2) self.jumpEdit = QtWidgets.QLineEdit(Form) self.jumpEdit.setMaximumSize(QtCore.QSize(50, 50)) self.jumpEdit.setMaxLength(9999) self.jumpEdit.setAlignment(QtCore.Qt.AlignCenter) self.jumpEdit.setObjectName("jumpEdit") self.horizontalLayout_2.addWidget(self.jumpEdit) self.totalPageLabel = QtWidgets.QLabel(Form) self.totalPageLabel.setObjectName("totalPageLabel") self.horizontalLayout_2.addWidget(self.totalPageLabel) self.jumpButton = QtWidgets.QPushButton(Form) self.jumpButton.setObjectName("jumpButton") self.horizontalLayout_2.addWidget(self.jumpButton) self.previousButton = QtWidgets.QPushButton(Form) self.previousButton.setObjectName("previousButton") self.horizontalLayout_2.addWidget(self.previousButton) self.nextButton = QtWidgets.QPushButton(Form) self.nextButton.setObjectName("nextButton") self.horizontalLayout_2.addWidget(self.nextButton) self.horizontalLayout_4.addLayout(self.horizontalLayout_2) spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem2) self.verticalLayout.addLayout(self.horizontalLayout_4) self.retranslateUi(Form) self.bindButton() QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "Form")) self.label.setText(_translate("Form", "产品交付登记")) self.label_3.setText(_translate("Form", "登记起始日期")) self.label_4.setText(_translate("Form", "登记终止日期")) self.label_5.setText(_translate("Form", "产品代号")) self.pushButton_2.setText(_translate("Form", "查询")) self.label_2.setText(_translate("Form", "跳转至第")) self.jumpEdit.setText(_translate("Form", "1")) # 更新页码总页数 复制进去 self.totalPageLabel.setText( _translate("Form", "/ " + str(self.queryModel.totalPage) + " 页")) self.jumpButton.setText(_translate("Form", "跳转")) self.previousButton.setText(_translate("Form", "上一页")) self.nextButton.setText(_translate("Form", "下一页")) def bindButton(self): """ hsj 绑定按钮 待处理:重置按钮 :return: """ # 把需要使用的窗体传进去 # 上一页 self.previousButton.clicked.connect(self.preButtonEvent) # 下一页 self.nextButton.clicked.connect(self.nextButtonEvent) # 跳转按钮 self.jumpButton.clicked.connect(self.jumpButtonEvent) # 添加查询 self.pushButton_2.clicked.connect(self.searchButtonEventD) def searchButtonEventD(self): """ hsj 输入查询条件查询按钮事件 :return: """ content = [] if self.dateEdit.text() != "": content.append(self.dateEdit.text()) if self.dateEdit_2.text() != "": content.append(self.dateEdit_2.text()) if self.searchEdit.text() != "": content.append(self.searchEdit.text()) if content == "": self.queryModel.refreshPage() self.queryModel.update() else: if len(content) == 2: if content[0] == content[1]: sql = "WHERE" else: sql = "WHERE %s >= '%s' and %s <= '%s' and" % ( self.select_conditions[0], content[0], self.select_conditions[0], content[1]) elif len(content) == 3: if content[0] == content[1]: sql = "WHERE %s = '%s' and" % (self.select_conditions[1], content[2]) else: sql = "WHERE %s >= '%s' and %s <= '%s' and %s = '%s' and" % ( self.select_conditions[0], content[0], self.select_conditions[0], content[1], self.select_conditions[1], content[2]) self.queryModel.searchTableD(sql) self.updateUI()
def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(1009, 696) font = QtGui.QFont() font.setFamily("微软雅黑 Light") font.setPointSize(10) Dialog.setFont(font) self.verticalLayout = QtWidgets.QVBoxLayout(Dialog) self.verticalLayout.setObjectName("verticalLayout") self.label = QtWidgets.QLabel(Dialog) font = QtGui.QFont() font.setFamily("Agency FB") font.setPointSize(16) self.label.setFont(font) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") spacerItem = QtWidgets.QSpacerItem(188, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.label_4 = QtWidgets.QLabel(Dialog) self.label_4.setObjectName("label_4") self.horizontalLayout.addWidget(self.label_4) self.searchEdit = QtWidgets.QLineEdit(Dialog) self.searchEdit.setMaximumSize(QtCore.QSize(400, 16777215)) self.searchEdit.setObjectName("lineEdit_2") self.horizontalLayout.addWidget(self.searchEdit) self.pushButton_2 = QtWidgets.QPushButton(Dialog) self.pushButton_2.setObjectName("pushButton_2") self.horizontalLayout.addWidget(self.pushButton_2) self.verticalLayout.addLayout(self.horizontalLayout) # 中间手动代码部分 表格UI构建 self.db = openDB() self.tableView = QTableView() # hsj 自动义的tableModel slt = "ProductNO,ProductName,T_Out_Detail.ProductID,OutDate,UsedID" headerRow = ["产品代号", "产品名称", "产品编号", "出库时间", "使用人"] self.queryModel = MySearchTableModelPIM( "T_Out_Base,T_Out_Detail,T_Product_New", headerRow, slt) self.tableView.setModel(self.queryModel) self.header = CheckBoxHeader() self.tableView.setHorizontalHeader(self.header) self.header.clicked.connect(self.queryModel.headerClick) self.tableView.horizontalHeader().setStretchLastSection(True) self.tableView.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) self.tableView.setModel(self.queryModel) self.verticalLayout.addWidget(self.tableView) self.verticalLayout.addWidget(self.tableView) self.horizontalLayout_4 = QtWidgets.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem1) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.label_2 = QtWidgets.QLabel(Dialog) self.label_2.setObjectName("label_2") self.horizontalLayout_2.addWidget(self.label_2) self.jumpEdit = QtWidgets.QLineEdit(Dialog) self.jumpEdit.setMaximumSize(QtCore.QSize(50, 50)) self.jumpEdit.setMaxLength(9999) self.jumpEdit.setAlignment(QtCore.Qt.AlignCenter) self.jumpEdit.setObjectName("jumpEdit") self.horizontalLayout_2.addWidget(self.jumpEdit) self.totalPageLabel = QtWidgets.QLabel(Dialog) self.totalPageLabel.setObjectName("totalPageLabel") self.horizontalLayout_2.addWidget(self.totalPageLabel) self.jumpButton = QtWidgets.QPushButton(Dialog) self.jumpButton.setObjectName("jumpButton") self.horizontalLayout_2.addWidget(self.jumpButton) self.previousButton = QtWidgets.QPushButton(Dialog) self.previousButton.setObjectName("previousButton") self.horizontalLayout_2.addWidget(self.previousButton) self.nextButton = QtWidgets.QPushButton(Dialog) self.nextButton.setObjectName("nextButton") self.horizontalLayout_2.addWidget(self.nextButton) self.horizontalLayout_4.addLayout(self.horizontalLayout_2) spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem2) self.verticalLayout.addLayout(self.horizontalLayout_4) self.retranslateUi(Dialog) self.bindButton() QtCore.QMetaObject.connectSlotsByName(Dialog)
class OutNotInput(MySearchWidget): def __init__(self): super(OutNotInput, self).__init__() self.select_conditions = "ProductName" def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(1009, 696) font = QtGui.QFont() font.setFamily("微软雅黑 Light") font.setPointSize(10) Dialog.setFont(font) self.verticalLayout = QtWidgets.QVBoxLayout(Dialog) self.verticalLayout.setObjectName("verticalLayout") self.label = QtWidgets.QLabel(Dialog) font = QtGui.QFont() font.setFamily("Agency FB") font.setPointSize(16) self.label.setFont(font) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") spacerItem = QtWidgets.QSpacerItem(188, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.label_4 = QtWidgets.QLabel(Dialog) self.label_4.setObjectName("label_4") self.horizontalLayout.addWidget(self.label_4) self.searchEdit = QtWidgets.QLineEdit(Dialog) self.searchEdit.setMaximumSize(QtCore.QSize(400, 16777215)) self.searchEdit.setObjectName("lineEdit_2") self.horizontalLayout.addWidget(self.searchEdit) self.pushButton_2 = QtWidgets.QPushButton(Dialog) self.pushButton_2.setObjectName("pushButton_2") self.horizontalLayout.addWidget(self.pushButton_2) self.verticalLayout.addLayout(self.horizontalLayout) # 中间手动代码部分 表格UI构建 self.db = openDB() self.tableView = QTableView() # hsj 自动义的tableModel slt = "ProductNO,ProductName,T_Out_Detail.ProductID,OutDate,UsedID" headerRow = ["产品代号", "产品名称", "产品编号", "出库时间", "使用人"] self.queryModel = MySearchTableModelPIM( "T_Out_Base,T_Out_Detail,T_Product_New", headerRow, slt) self.tableView.setModel(self.queryModel) self.header = CheckBoxHeader() self.tableView.setHorizontalHeader(self.header) self.header.clicked.connect(self.queryModel.headerClick) self.tableView.horizontalHeader().setStretchLastSection(True) self.tableView.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) self.tableView.setModel(self.queryModel) self.verticalLayout.addWidget(self.tableView) self.verticalLayout.addWidget(self.tableView) self.horizontalLayout_4 = QtWidgets.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem1) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.label_2 = QtWidgets.QLabel(Dialog) self.label_2.setObjectName("label_2") self.horizontalLayout_2.addWidget(self.label_2) self.jumpEdit = QtWidgets.QLineEdit(Dialog) self.jumpEdit.setMaximumSize(QtCore.QSize(50, 50)) self.jumpEdit.setMaxLength(9999) self.jumpEdit.setAlignment(QtCore.Qt.AlignCenter) self.jumpEdit.setObjectName("jumpEdit") self.horizontalLayout_2.addWidget(self.jumpEdit) self.totalPageLabel = QtWidgets.QLabel(Dialog) self.totalPageLabel.setObjectName("totalPageLabel") self.horizontalLayout_2.addWidget(self.totalPageLabel) self.jumpButton = QtWidgets.QPushButton(Dialog) self.jumpButton.setObjectName("jumpButton") self.horizontalLayout_2.addWidget(self.jumpButton) self.previousButton = QtWidgets.QPushButton(Dialog) self.previousButton.setObjectName("previousButton") self.horizontalLayout_2.addWidget(self.previousButton) self.nextButton = QtWidgets.QPushButton(Dialog) self.nextButton.setObjectName("nextButton") self.horizontalLayout_2.addWidget(self.nextButton) self.horizontalLayout_4.addLayout(self.horizontalLayout_2) spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem2) self.verticalLayout.addLayout(self.horizontalLayout_4) self.retranslateUi(Dialog) self.bindButton() QtCore.QMetaObject.connectSlotsByName(Dialog) def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Dialog", "Dialog")) self.label.setText(_translate("Dialog", "出库未入库产品")) self.label_4.setText(_translate("Dialog", "产品名称")) self.pushButton_2.setText(_translate("Dialog", "查询")) self.label_2.setText(_translate("Dialog", "跳转至第")) self.jumpEdit.setText(_translate("Dialog", "1")) # 更新页码总页数 复制进去 self.totalPageLabel.setText( _translate("Dialog", "/ " + str(self.queryModel.totalPage) + " 页")) self.jumpButton.setText(_translate("Dialog", "跳转")) self.previousButton.setText(_translate("Dialog", "上一页")) self.nextButton.setText(_translate("Dialog", "下一页")) def bindButton(self): """ hsj 绑定按钮 :return: """ # 把需要使用的窗体传进去 # 上一页 self.previousButton.clicked.connect(self.preButtonEvent) # 下一页 self.nextButton.clicked.connect(self.nextButtonEvent) # 跳转按钮 self.jumpButton.clicked.connect(self.jumpButtonEvent) # 添加查询 self.pushButton_2.clicked.connect(self.searchButtonEventI) def searchButtonEventI(self): """ hsj 输入查询条件查询按钮事件 没有日期的查询 :return: """ content = self.searchEdit.text() if content == "": self.queryModel.refreshPage() self.queryModel.update() else: sql = "WHERE T_Out_Base.ID = T_Out_Detail.ID and T_Out_Detail.ProductID = T_Product_New.ProductID and IsReturn ='否' and %s = '%s'" % ( self.select_conditions, content) self.queryModel.searchTable(sql) self.updateUI()
class LifeReminder(MySearchWidget): def __init__(self): super(LifeReminder, self).__init__() self.select_conditions = "ProductName" def setupUi(self, Form): Form.setObjectName("Form") Form.resize(1009, 696) font = QtGui.QFont() font.setFamily("微软雅黑 Light") font.setPointSize(10) Form.setFont(font) self.verticalLayout = QtWidgets.QVBoxLayout(Form) self.verticalLayout.setObjectName("verticalLayout") self.label = QtWidgets.QLabel(Form) font = QtGui.QFont() font.setFamily("Agency FB") font.setPointSize(16) self.label.setFont(font) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.label_4 = QtWidgets.QLabel(Form) self.label_4.setObjectName("label_4") self.pushButton_2 = QtWidgets.QPushButton(Form) self.pushButton_2.setObjectName("pushButton_2") self.horizontalLayout.addWidget(self.pushButton_2) self.label_6 = QtWidgets.QLabel(Form) self.label_6.setObjectName("label_6") self.horizontalLayout.addWidget(self.label_6) spacerItem = QtWidgets.QSpacerItem(188, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.label_4 = QtWidgets.QLabel(Form) self.label_4.setObjectName("label_4") self.horizontalLayout.addWidget(self.label_4) self.searchEdit = QtWidgets.QLineEdit(Form) self.searchEdit.setMaximumSize(QtCore.QSize(400, 16777215)) self.searchEdit.setObjectName("lineEdit_2") self.horizontalLayout.addWidget(self.searchEdit) self.pushButton_4 = QtWidgets.QPushButton(Form) self.pushButton_4.setObjectName("pushButton_4") self.horizontalLayout.addWidget(self.pushButton_4) self.verticalLayout.addLayout(self.horizontalLayout) # 中间手动代码部分 表格UI构建 self.db = openDB() self.tableView = QTableView() # hsj 自动义的tableModel slt = "ProductID,ProductName,ProductNO,ReceiverDate,LifeTime,ToLifeDays" headerRow = ["产品编号", "产品名称", "产品代号", "寿命到期时间", "寿命", "据到期提醒"] self.queryModel = MySearchTableModelPIM("T_Product_New", headerRow, slt) self.tableView.setModel(self.queryModel) self.header = CheckBoxHeader() self.tableView.setHorizontalHeader(self.header) self.header.clicked.connect(self.queryModel.headerClick) self.tableView.horizontalHeader().setStretchLastSection(True) self.tableView.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) self.tableView.setModel(self.queryModel) self.verticalLayout.addWidget(self.tableView) self.verticalLayout.addWidget(self.tableView) self.horizontalLayout_4 = QtWidgets.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem1) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.label_2 = QtWidgets.QLabel(Form) self.label_2.setObjectName("label_2") self.horizontalLayout_2.addWidget(self.label_2) self.jumpEdit = QtWidgets.QLineEdit(Form) self.jumpEdit.setMaximumSize(QtCore.QSize(50, 50)) self.jumpEdit.setMaxLength(9999) self.jumpEdit.setAlignment(QtCore.Qt.AlignCenter) self.jumpEdit.setObjectName("jumpEdit") self.horizontalLayout_2.addWidget(self.jumpEdit) self.totalPageLabel = QtWidgets.QLabel(Form) self.totalPageLabel.setObjectName("totalPageLabel") self.horizontalLayout_2.addWidget(self.totalPageLabel) self.jumpButton = QtWidgets.QPushButton(Form) self.jumpButton.setObjectName("jumpButton") self.horizontalLayout_2.addWidget(self.jumpButton) self.previousButton = QtWidgets.QPushButton(Form) self.previousButton.setObjectName("previousButton") self.horizontalLayout_2.addWidget(self.previousButton) self.nextButton = QtWidgets.QPushButton(Form) self.nextButton.setObjectName("nextButton") self.horizontalLayout_2.addWidget(self.nextButton) self.horizontalLayout_4.addLayout(self.horizontalLayout_2) spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem2) self.verticalLayout.addLayout(self.horizontalLayout_4) self.retranslateUi(Form) self.bindButton() QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "Form")) self.label_6.setText(_translate("Form", "寿命类型默认为时间")) #self.comboBox.setItemText(0, _translate("Form", "时间")) #self.comboBox.setItemText(1, _translate("Form", "次数")) self.label.setText(_translate("Form", "进入寿命提醒期的产品")) self.pushButton_2.setText(_translate("Form", "按寿命类型为次数查询")) self.label_4.setText(_translate("Form", "产品名称")) self.pushButton_4.setText(_translate("Form", "查询")) self.label_2.setText(_translate("Form", "跳转至第")) self.jumpEdit.setText(_translate("Form", "1")) self.totalPageLabel.setText( _translate("Form", "/ " + str(self.queryModel.totalPage) + " 页")) self.jumpButton.setText(_translate("Form", "跳转")) self.previousButton.setText(_translate("Form", "上一页")) self.nextButton.setText(_translate("Form", "下一页")) def bindButton(self): """ hsj 绑定按钮 :return: """ # 把需要使用的窗体传进去 # 上一页 self.previousButton.clicked.connect(self.preButtonEvent) # 下一页 self.nextButton.clicked.connect(self.nextButtonEvent) # 跳转按钮 self.jumpButton.clicked.connect(self.jumpButtonEvent) # 添加查询 self.pushButton_4.clicked.connect(self.searchButtonEventF) self.pushButton_2.clicked.connect(self.ButtonEventF) def ButtonEventF(self): widget = LifeReminder2() dialog = QDialog() widget.setupUi(dialog) dialog.show() dialog.exec_() def searchButtonEventF(self): """ hsj 输入查询条件查询按钮事件 没有日期的查询 :return: """ content = self.searchEdit.text() if content == "": sql = "WHERE T_Product_New.ProductID = T_Out_Detail.ProductID and LifeType = '时间'" self.queryModel.searchTableF(sql) self.updateUI() else: sql = "WHERE T_Product_New.ProductID = T_Out_Detail.ProductID and LifeType = '时间' and %s = '%s'" % ( self.select_conditions, content) self.queryModel.searchTableF(sql) self.updateUI()
class MySearchWidgetPIM(object): # 俞欣 def __init__(self): # 搜索关键列的列表 一般大小为3 self.select_conditions = [] # 在setupUi中进行重写 self.queryModel = MySearchTableModelPIM( "T_Product_BatchDetail", ["BatchNO"], "ProductName,ProductCode,ProductNOS,Counts") self.totalPageLabel = QtWidgets.QLabel() self.totalPageLabel.setObjectName("totalPageLabel") self.jumpEdit = QtWidgets.QLineEdit() self.jumpEdit.setMaximumSize(QtCore.QSize(50, 50)) def setupUi(self, Form): pass def retranslateUi(self, Form): pass def updateUI(self): """ hsj 跳转的后更新 :return: """ self.totalPageLabel.setText("/ " + str(self.queryModel.totalPage) + " 页") self.jumpEdit.setText(str(self.queryModel.currentPage + 1)) def bindButton(self): """ hsj 绑定按钮 :return: """ pass '''def deleteButtonEvent(self): """ hsj 删除批次按钮绑定事件 :return: """ # print(self.queryModel.checkList.count("Checked")) # 如果没有选中数据,则提示无数据 if self.queryModel.checkList.count("Checked") == 0: QMessageBox.warning(QDialog(), "警告", "没有数据被选中,请选中后重试!", QMessageBox.Yes, QMessageBox.Yes) return a = QMessageBox.information(QDialog(), "提示", "是否确认删除?", QMessageBox.Yes, QMessageBox.No) if a == QMessageBox.No: return self.queryModel.delete() self.queryModel.update()''' '''def addButtonEvent(self, Widget): """ hsj 新建产品批次 :param Widget: 要显示的窗体 :return: """ form = QDialog() w = Widget w.setupUi(form) form.show() a = form.exec_() # 如果对话框关闭,则对查询数据进行更行 if a == 0: self.queryModel.refreshPage() self.queryModel.update() self.updateUI()''' def selectButtonEvent(self, Widget): """ hsj 根据批次中的产品Id查询产品详细信息 :param Widget: 要显示的窗体 :return: """ # 判断复选框是否只选中一个 a = self.isCorrect() if a == 0: return result = self.queryModel.selectSingleTableForeign() productDiglog = Widget form = QDialog() productDiglog.setupUi(form) productDiglog.setData(result) form.show() form.exec() '''def updateButtonEvent(self, Widget): """ hsj 修改产品批次信息 :param Widget: 要显示的窗体 :return: """ # 判断复选框是否只选中一个 a = self.isCorrect() if a == 0: return result = self.queryModel.selectSingleTable() batchDialog = Widget form = QDialog() batchDialog.setupUi(form) batchDialog.updateData(result, self.queryModel) form.show() a = form.exec() # 如果对话框关闭,则对查询数据进行更行 if a == 0: self.queryModel.refreshPage() self.queryModel.update() ''' def preButtonEvent(self): """ hsj 上一页按钮事件 :return: """ if self.queryModel.currentPage == 0: QMessageBox.information(QDialog(), "提示", "已经是第一页!", QMessageBox.Yes, QMessageBox.Yes) return else: self.queryModel.prePage() self.queryModel.update() self.updateUI() def nextButtonEvent(self): """ hsj 下一页按钮事件 :return: """ if (self.queryModel.currentPage + 1) == self.queryModel.totalPage: QMessageBox.information(QDialog(), "提示", "已经是最后一页!", QMessageBox.Yes, QMessageBox.Yes) return else: self.queryModel.nextPage() self.queryModel.update() self.updateUI() def jumpButtonEvent(self): """ hsj 跳转按钮事件 :return: """ objectPage = self.jumpEdit.text() if not objectPage.isdigit(): QMessageBox.information(QDialog(), "提示", "跳转输入的不是数字,请正确填写后重试!", QMessageBox.Yes, QMessageBox.Yes) return else: objectPage = int(objectPage) if objectPage <= 0 or objectPage > self.queryModel.totalPage: QMessageBox.information(QDialog(), "提示", "跳转输入超出范围,请正确填写后重试!", QMessageBox.Yes, QMessageBox.Yes) return else: self.queryModel.currentPage = objectPage - 1 self.queryModel.setCurrentData() self.queryModel.update() self.updateUI() '''def searchButtonEvent2(self): """ hsj 输入查询条件查询按钮事件 加一个日期修正函数 :return: """ content = [] if self.dateEdit.text() != "": content.append(self.dateEdit.text()) if self.dateEdit_2.text() != "": content.append(self.dateEdit_2.text()) if self.searchEdit.text() != "": content.append(self.searchEdit.text()) if content == "": print(111) self.queryModel.refreshPage() self.queryModel.update() else: # n = self.comboBox.currentIndex() if len(content) == 1 and self.searchEdit.text() == "": if self.dateEdit.text() != "": sql = "WHERE %s >= '%s'" % ( self.select_conditions[0], content[0]) else: sql = "WHERE %s <= '%s'" % ( self.select_conditions[0], content[0]) elif len(content) == 2: if self.searchEdit.text() == "": sql = "WHERE %s >= '%s' and %s <= '%s'" % ( self.select_conditions[0], content[0], self.select_conditions[0], content[1]) elif self.dateEdit_2.text() == "": sql = "WHERE %s >= '%s' and %s == '%s'" % ( self.select_conditions[0], content[0], self.select_conditions[1], content[1]) else: sql = "WHERE %s <= '%s' and %s == '%s'" % ( self.select_conditions[0], content[0], self.select_conditions[1], content[1]) elif len(content) == 3: sql = "WHERE %s >= '%s' and %s <= '%s' and %s = '%s'" % ( self.select_conditions[0], content[0], self.select_conditions[0], content[1], self.select_conditions[1], content[2]) #if self.comboBox = true: # n = self.comboBox.currentIndex() #self.queryModel.searchTable(sql) # self.queryModel.searchTable(self.select_conditions[0], content[0]) # if len(content) # self.queryModel.searchTable(self.select_conditions[0], self.select_conditions[1],content[0],content[1],content[2]) # self.queryModel.searchTable(self.select_conditions,content) # sql = "SELECT * FROM %s WHERE %s = '%s' ORDER BY %s" % ( # self.table, select_condition, content, self.tableKey) self.updateUI()''' """ def searchButtonEvent3(self): hsj 输入查询条件查询按钮事件 加一个日期修正函数 加一个是否选择条件 :return: """ #self.updateUI() '''def searchButtonEvent(self): """ hsj 输入查询条件查询按钮事件 没有日期的查询 :return: """ content =self.searchEdit.text() n = self.comboBox.currentIndex() if content == "": if n==0: print(111) self.queryModel.refreshPage() self.queryModel.update() elif n==1: else: if n==0: sql = "WHERE %s = '%s'" % (self.select_conditions,content) self.updateUI() elif n==1: sql = "WHERE %s = '%s'" % (self.select_conditions, content) self.updateUI() self.queryModel.searchTable(sql)''' def isCorrect(self): """ hsj 判断复选框是否选中一个数据 :return: """ if self.queryModel.checkList.count("Checked") == 0: QMessageBox.warning(QDialog(), "警告", "没有数据被选中,请选中后重试!", QMessageBox.Yes, QMessageBox.Yes) return 0 elif self.queryModel.checkList.count("Checked") > 1: QMessageBox.warning(QDialog(), "警告", "数据过多,请选中一条后重试!", QMessageBox.Yes, QMessageBox.Yes) return 0 else: return 1
def setupUi(self, Form): Form.setObjectName("Form") Form.resize(1009, 696) font = QtGui.QFont() font.setFamily("微软雅黑 Light") font.setPointSize(10) Form.setFont(font) self.verticalLayout = QtWidgets.QVBoxLayout(Form) self.verticalLayout.setObjectName("verticalLayout") self.label = QtWidgets.QLabel(Form) font = QtGui.QFont() font.setFamily("Agency FB") font.setPointSize(16) self.label.setFont(font) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.label_4 = QtWidgets.QLabel(Form) self.label_4.setObjectName("label_4") spacerItem = QtWidgets.QSpacerItem(188, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.label_4 = QtWidgets.QLabel(Form) self.label_4.setObjectName("label_4") self.horizontalLayout.addWidget(self.label_4) self.searchEdit = QtWidgets.QLineEdit(Form) self.searchEdit.setMaximumSize(QtCore.QSize(400, 16777215)) self.searchEdit.setObjectName("lineEdit_2") self.horizontalLayout.addWidget(self.searchEdit) self.pushButton_4 = QtWidgets.QPushButton(Form) self.pushButton_4.setObjectName("pushButton_4") self.horizontalLayout.addWidget(self.pushButton_4) self.verticalLayout.addLayout(self.horizontalLayout) # 中间手动代码部分 表格UI构建 self.db = openDB() self.tableView = QTableView() # hsj 自动义的tableModel slt = "ProductNO,ProductName,ProductID,RecentTime,Interva,AlterRule,MaintenanceWayID,MaintenanceWayName" headerRow = [ "产品代号", "产品名称", "产品编号", "维保到期时间", "维保周期", "据到期提醒", "维保方式ID", "维保方式名称" ] self.queryModel = MySearchTableModelPIM("MaintenanceWay", headerRow, slt) self.tableView.setModel(self.queryModel) self.header = CheckBoxHeader() self.tableView.setHorizontalHeader(self.header) self.header.clicked.connect(self.queryModel.headerClick) self.tableView.horizontalHeader().setStretchLastSection(True) self.tableView.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) self.tableView.setModel(self.queryModel) self.verticalLayout.addWidget(self.tableView) self.verticalLayout.addWidget(self.tableView) self.horizontalLayout_4 = QtWidgets.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem1) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.label_2 = QtWidgets.QLabel(Form) self.label_2.setObjectName("label_2") self.horizontalLayout_2.addWidget(self.label_2) self.jumpEdit = QtWidgets.QLineEdit(Form) self.jumpEdit.setMaximumSize(QtCore.QSize(50, 50)) self.jumpEdit.setMaxLength(9999) self.jumpEdit.setAlignment(QtCore.Qt.AlignCenter) self.jumpEdit.setObjectName("jumpEdit") self.horizontalLayout_2.addWidget(self.jumpEdit) self.totalPageLabel = QtWidgets.QLabel(Form) self.totalPageLabel.setObjectName("totalPageLabel") self.horizontalLayout_2.addWidget(self.totalPageLabel) self.jumpButton = QtWidgets.QPushButton(Form) self.jumpButton.setObjectName("jumpButton") self.horizontalLayout_2.addWidget(self.jumpButton) self.previousButton = QtWidgets.QPushButton(Form) self.previousButton.setObjectName("previousButton") self.horizontalLayout_2.addWidget(self.previousButton) self.nextButton = QtWidgets.QPushButton(Form) self.nextButton.setObjectName("nextButton") self.horizontalLayout_2.addWidget(self.nextButton) self.horizontalLayout_4.addLayout(self.horizontalLayout_2) spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem2) self.verticalLayout.addLayout(self.horizontalLayout_4) self.retranslateUi(Form) self.bindButton() QtCore.QMetaObject.connectSlotsByName(Form)
class MaintenanceReminder(MySearchWidget): def __init__(self): super(MaintenanceReminder, self).__init__() self.select_conditions = "ProductID" def setupUi(self, Form): Form.setObjectName("Form") Form.resize(1009, 696) font = QtGui.QFont() font.setFamily("微软雅黑 Light") font.setPointSize(10) Form.setFont(font) self.verticalLayout = QtWidgets.QVBoxLayout(Form) self.verticalLayout.setObjectName("verticalLayout") self.label = QtWidgets.QLabel(Form) font = QtGui.QFont() font.setFamily("Agency FB") font.setPointSize(16) self.label.setFont(font) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.label_4 = QtWidgets.QLabel(Form) self.label_4.setObjectName("label_4") spacerItem = QtWidgets.QSpacerItem(188, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.label_4 = QtWidgets.QLabel(Form) self.label_4.setObjectName("label_4") self.horizontalLayout.addWidget(self.label_4) self.searchEdit = QtWidgets.QLineEdit(Form) self.searchEdit.setMaximumSize(QtCore.QSize(400, 16777215)) self.searchEdit.setObjectName("lineEdit_2") self.horizontalLayout.addWidget(self.searchEdit) self.pushButton_4 = QtWidgets.QPushButton(Form) self.pushButton_4.setObjectName("pushButton_4") self.horizontalLayout.addWidget(self.pushButton_4) self.verticalLayout.addLayout(self.horizontalLayout) # 中间手动代码部分 表格UI构建 self.db = openDB() self.tableView = QTableView() # hsj 自动义的tableModel slt = "ProductNO,ProductName,ProductID,RecentTime,Interva,AlterRule,MaintenanceWayID,MaintenanceWayName" headerRow = [ "产品代号", "产品名称", "产品编号", "维保到期时间", "维保周期", "据到期提醒", "维保方式ID", "维保方式名称" ] self.queryModel = MySearchTableModelPIM("MaintenanceWay", headerRow, slt) self.tableView.setModel(self.queryModel) self.header = CheckBoxHeader() self.tableView.setHorizontalHeader(self.header) self.header.clicked.connect(self.queryModel.headerClick) self.tableView.horizontalHeader().setStretchLastSection(True) self.tableView.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) self.tableView.setModel(self.queryModel) self.verticalLayout.addWidget(self.tableView) self.verticalLayout.addWidget(self.tableView) self.horizontalLayout_4 = QtWidgets.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem1) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.label_2 = QtWidgets.QLabel(Form) self.label_2.setObjectName("label_2") self.horizontalLayout_2.addWidget(self.label_2) self.jumpEdit = QtWidgets.QLineEdit(Form) self.jumpEdit.setMaximumSize(QtCore.QSize(50, 50)) self.jumpEdit.setMaxLength(9999) self.jumpEdit.setAlignment(QtCore.Qt.AlignCenter) self.jumpEdit.setObjectName("jumpEdit") self.horizontalLayout_2.addWidget(self.jumpEdit) self.totalPageLabel = QtWidgets.QLabel(Form) self.totalPageLabel.setObjectName("totalPageLabel") self.horizontalLayout_2.addWidget(self.totalPageLabel) self.jumpButton = QtWidgets.QPushButton(Form) self.jumpButton.setObjectName("jumpButton") self.horizontalLayout_2.addWidget(self.jumpButton) self.previousButton = QtWidgets.QPushButton(Form) self.previousButton.setObjectName("previousButton") self.horizontalLayout_2.addWidget(self.previousButton) self.nextButton = QtWidgets.QPushButton(Form) self.nextButton.setObjectName("nextButton") self.horizontalLayout_2.addWidget(self.nextButton) self.horizontalLayout_4.addLayout(self.horizontalLayout_2) spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem2) self.verticalLayout.addLayout(self.horizontalLayout_4) self.retranslateUi(Form) self.bindButton() QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "Form")) self.label.setText(_translate("Form", "进入维修保养提醒期的产品")) self.label_4.setText(_translate("Form", "产品编号")) self.pushButton_4.setText(_translate("Form", "查询")) self.label_2.setText(_translate("Form", "跳转至第")) self.jumpEdit.setText(_translate("Form", "1")) self.totalPageLabel.setText( _translate("Form", "/ " + str(self.queryModel.totalPage) + " 页")) self.jumpButton.setText(_translate("Form", "跳转")) self.previousButton.setText(_translate("Form", "上一页")) self.nextButton.setText(_translate("Form", "下一页")) def bindButton(self): """ hsj 绑定按钮 :return: """ # 把需要使用的窗体传进去 # 上一页 self.previousButton.clicked.connect(self.preButtonEvent) # 下一页 self.nextButton.clicked.connect(self.nextButtonEvent) # 跳转按钮 self.jumpButton.clicked.connect(self.jumpButtonEvent) # 添加查询 self.pushButton_4.clicked.connect(self.searchButtonEventL) def searchButtonEventL(self): """ hsj 输入查询条件查询按钮事件 没有日期的查询 :return: """ content = self.searchEdit.text() if content == "": sql = "" self.queryModel.searchTableF(sql) self.updateUI() else: sql = "WHERE %s = '%s'" % (self.select_conditions, content) self.queryModel.searchTableF(sql) self.updateUI()
class OutInputDBTimes(MySearchWidget): def __init__(self): super(OutInputDBTimes, self).__init__() self.select_conditions = ["InDate", "ProductID"] def setupUi(self, Form): Form.setObjectName("Form") Form.resize(958, 696) font = QtGui.QFont() font.setFamily("微软雅黑 Light") font.setPointSize(10) Form.setFont(font) self.verticalLayout = QtWidgets.QVBoxLayout(Form) self.verticalLayout.setObjectName("verticalLayout") self.label = QtWidgets.QLabel(Form) font = QtGui.QFont() font.setFamily("Agency FB") font.setPointSize(16) self.label.setFont(font) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.label_3 = QtWidgets.QLabel(Form) self.label_3.setObjectName("label_3") self.horizontalLayout.addWidget(self.label_3) self.dateEdit = QtWidgets.QDateEdit(Form) self.dateEdit.setDisplayFormat("yyyy-MM-dd") self.dateEdit.setMinimumWidth(120) self.dateEdit.setMinimumDate(QDate(2015, 1, 1)) self.dateEdit.setDate( QDate.fromString(time.strftime("%Y-%m-%d", time.localtime()), 'yyyy-MM-dd')) self.dateEdit.setMaximumDate(QDate(2199, 1, 1)) self.dateEdit.setCalendarPopup(True) self.dateEdit.setObjectName("dateEdit") self.horizontalLayout.addWidget(self.dateEdit) self.label_4 = QtWidgets.QLabel(Form) self.label_4.setObjectName("label_4") self.horizontalLayout.addWidget(self.label_4) self.dateEdit_2 = QtWidgets.QDateEdit(Form) self.dateEdit_2.setDisplayFormat("yyyy-MM-dd") self.dateEdit_2.setMinimumWidth(120) self.dateEdit_2.setMinimumDate(QDate(2015, 1, 1)) self.dateEdit_2.setDate( QDate.fromString(time.strftime("%Y-%m-%d", time.localtime()), 'yyyy-MM-dd')) self.dateEdit_2.setMaximumDate(QDate(2199, 1, 1)) self.dateEdit_2.setCalendarPopup(True) self.dateEdit_2.setObjectName("dateEdit_2") self.horizontalLayout.addWidget(self.dateEdit_2) spacerItem = QtWidgets.QSpacerItem(68, 29, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.label_5 = QtWidgets.QLabel(Form) self.label_5.setObjectName("label_5") self.horizontalLayout.addWidget(self.label_5) self.searchEdit = QtWidgets.QLineEdit(Form) self.searchEdit.setMaximumSize(QtCore.QSize(400, 16777215)) self.searchEdit.setObjectName("searchEdit") self.horizontalLayout.addWidget(self.searchEdit) self.pushButton_2 = QtWidgets.QPushButton(Form) self.pushButton_2.setObjectName("pushButton_2") self.horizontalLayout.addWidget(self.pushButton_2) self.pushButton_4 = QtWidgets.QPushButton(Form) self.pushButton_4.setObjectName("pushButton_2") self.horizontalLayout.addWidget(self.pushButton_4) self.verticalLayout.addLayout(self.horizontalLayout) # 中间手动代码部分 表格UI构建 self.db = openDB() self.tableView = QTableView() # hsj 自动义的tableModel slt = "ProductID,OutDate,InDate,T_In_Base.CreateID,InTechState" headerRow = ["产品编号", "出库时间", "入库时间", "归还人", "入库技术状态"] self.queryModel = MySearchTableModelPIM( "T_Out_Base,T_In_Detail,T_In_Base", headerRow, slt) self.tableView.setModel(self.queryModel) self.header = CheckBoxHeader() self.tableView.setHorizontalHeader(self.header) self.header.clicked.connect(self.queryModel.headerClick) self.tableView.horizontalHeader().setStretchLastSection(True) self.tableView.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) self.tableView.setModel(self.queryModel) self.verticalLayout.addWidget(self.tableView) self.verticalLayout.addWidget(self.tableView) self.horizontalLayout_4 = QtWidgets.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem1) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.label_2 = QtWidgets.QLabel(Form) self.label_2.setObjectName("label_2") self.horizontalLayout_2.addWidget(self.label_2) self.jumpEdit = QtWidgets.QLineEdit(Form) self.jumpEdit.setMaximumSize(QtCore.QSize(50, 50)) self.jumpEdit.setMaxLength(9999) self.jumpEdit.setAlignment(QtCore.Qt.AlignCenter) self.jumpEdit.setObjectName("jumpEdit") self.horizontalLayout_2.addWidget(self.jumpEdit) self.totalPageLabel = QtWidgets.QLabel(Form) self.totalPageLabel.setObjectName("totalPageLabel") self.horizontalLayout_2.addWidget(self.totalPageLabel) self.jumpButton = QtWidgets.QPushButton(Form) self.jumpButton.setObjectName("jumpButton") self.horizontalLayout_2.addWidget(self.jumpButton) self.previousButton = QtWidgets.QPushButton(Form) self.previousButton.setObjectName("previousButton") self.horizontalLayout_2.addWidget(self.previousButton) self.nextButton = QtWidgets.QPushButton(Form) self.nextButton.setObjectName("nextButton") self.horizontalLayout_2.addWidget(self.nextButton) self.horizontalLayout_4.addLayout(self.horizontalLayout_2) spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem2) self.verticalLayout.addLayout(self.horizontalLayout_4) self.retranslateUi(Form) self.bindButton() QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "Form")) self.label.setText(_translate("Form", "产品出入库")) self.label_3.setText(_translate("Form", "时间段")) self.label_4.setText(_translate("Form", "——")) self.label_5.setText(_translate("Form", "产品编号")) self.pushButton_2.setText(_translate("Form", "查询")) self.pushButton_4.setText(_translate("Form", "出库未入库产品")) self.label_2.setText(_translate("Form", "跳转至第")) self.jumpEdit.setText(_translate("Form", "1")) # 更新页码总页数 复制进去 self.totalPageLabel.setText( _translate("Form", "/ " + str(self.queryModel.totalPage) + " 页")) self.jumpButton.setText(_translate("Form", "跳转")) self.previousButton.setText(_translate("Form", "上一页")) self.nextButton.setText(_translate("Form", "下一页")) def bindButton(self): """ hsj 绑定按钮 :return: """ # 把需要使用的窗体传进去 # 上一页 self.previousButton.clicked.connect(self.preButtonEvent) # 下一页 self.nextButton.clicked.connect(self.nextButtonEvent) # 跳转按钮 self.jumpButton.clicked.connect(self.jumpButtonEvent) # 添加查询 self.pushButton_2.clicked.connect(self.searchButtonEventO) self.pushButton_4.clicked.connect(self.ButtonEventD) def ButtonEventD(self): widget = OutNotInput() dialog = QDialog() widget.setupUi(dialog) dialog.show() dialog.exec_() def searchButtonEventO(self): """ hsj 输入查询条件查询按钮事件 :return: """ self.select_conditions = ["InDate", "ProductID"] content = [] if self.dateEdit.text() != "": content.append(self.dateEdit.text()) if self.dateEdit_2.text() != "": content.append(self.dateEdit_2.text()) if self.searchEdit.text() != "": content.append(self.searchEdit.text()) if content == "": self.queryModel.refreshPage() self.queryModel.update() else: if len(content) == 2: if content[0] == content[1]: sql = "WHERE T_Out_Base.OutNO=T_In_Base.OutNO AND T_In_Detail.ID=T_In_Base.ID" else: sql = "WHERE T_Out_Base.OutNO=T_In_Base.OutNO AND T_In_Detail.ID=T_In_Base.ID and %s >= '%s' and %s <= '%s'" % ( self.select_conditions[0], content[0], self.select_conditions[0], content[1]) elif len(content) == 3: if content[0] == content[1]: sql = "WHERE T_Out_Base.OutNO=T_In_Base.OutNO AND T_In_Detail.ID=T_In_Base.ID and %s = '%s'" % ( self.select_conditions[1], content[2]) else: sql = "WHERE T_Out_Base.OutNO=T_In_Base.OutNO AND T_In_Detail.ID=T_In_Base.ID and %s >= '%s' and %s <= '%s' and %s = '%s'" % ( self.select_conditions[0], content[0], self.select_conditions[0], content[1], self.select_conditions[1], content[2]) self.queryModel.searchTable(sql) self.updateUI()