|
|
发表于 2023-4-2 18:03:53
|
显示全部楼层
在HSJCQuery.py文件中,hsjc_query()函数应该是一个实例方法而不是全局函数,因此无法在槽函数中直接调用。您需要将它放入HSJCQueryWindow类中,并以self作为第一个参数。
同时,查询结果也需要在hsjc_query()函数内处理,然后再将结果设置给tab_outp_text和tab_inp_text。具体的代码修改如下:- class HSJCQueryWindow(HSJCQueryWindow.Ui_MainWindow, QMainWindow):
- def __init__(self):
- super(HSJCQueryWindow, self).__init__()
- self.setupUi(self)
-
- def hsjc_query(self):
- start_date = self.dateEdit.text()
- end_date = self.dateEdit_2.text()
- txt_query = self.lineEdit.text()
- # 查询门诊总金额
- sql_outp = "SELECT SUM(CHARGES) FROM OUTP_BILL_ITEMS WHERE VISIT_DATE >= '{startdate}' AND VISIT_DATE <= '{enddate}' AND PATTERN LIKE '%{txtquery}%'".format(startdate=start_date,enddate=end_date,txtquery=txt_query)
- Dbconnect.cursor.execute(sql_outp)
- results_outp = Dbconnect.cursor.fetchall()
- result_outp = str(results_outp[0][0] or 0)
- # 查询住院总金额
- sql_inp = "SELECT SUM(CHARGES) FROM INP_BILL_DETAIL WHERE BILLING_DATE_TIME >= '{startdate}' AND BILLING_DATE_TIME <= '{enddate}' AND ITEM_NAME LIKE '%{txtquery}}%'".format(startdate=start_date,enddate=end_date,txtquery=txt_query)
- Dbconnect.cursor.execute(sql_inp)
- results_inp = Dbconnect.cursor.fetchall()
- result_inp = str(results_inp[0][0] or 0)
- # 设置查询结果
- self.tab_outp_text.setText(result_outp)
- self.tab_inp_text.setText(result_inp)
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- hsjcquery_window = HSJCQueryWindow()
- hsjcquery_window.show()
- hsjcquery_window.queryButton.clicked.connect(hsjcquery_window.hsjc_query)
- app.exec_()
- sys.exit(app.exec_())
复制代码
这里还有一个修改:在SQL语句中,日期应该使用单引号括起来。 |
|