|
|
发表于 2023-4-1 17:17:30
|
显示全部楼层
你好,根据你的代码和描述,我发现有一些问题和建议。请参考以下修改建议:
1、首先,你的 HSJCQuery.py 文件里的 if __name__ == '__HSJCQuery__': 应该改为 if __name__ == '__main__':。
2、将 HSJCQueryWindow.py 和 HSJCQuery.py 文件合并,然后将 HSJCQuery.py 里的 hsjc_query 函数定义在 HSJCQueryWindow 类中,
并将该函数重命名为 hsjc_query_slot。同时,hsjc_query_slot 函数内部不能有多个 return 语句,请将两个查询的返回值合并到一个变量中。
修改后的 HSJCQuery.py 文件示例:
- # ...
- # 定义HSJCQueryWindow类
- class HSJCQueryWindow(HSJCQueryWindow.Ui_MainWindow, QMainWindow):
- def __init__(self): #定义HSJCQueryWindow窗口
- super(HSJCQueryWindow, self).__init__()
- self.setupUi(self)
- def hsjc_query_slot(self): #定义查询功能
- start_date = self.dateTimeEdit.text()
- end_date = self.dateTimeEdit_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()
- 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()
-
- return results_outp, results_inp
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- # 实例化HSJCQueryWindow类
- hsjcquery_window = HSJCQueryWindow()
- hsjcquery_window.show()
- # 将hsjc_query_slot函数与查询按钮绑定
- hsjcquery_window.queryButton.clicked.connect(hsjcquery_window.hsjc_query_slot)
- result_outp, result_inp = hsjcquery_window.hsjc_query_slot()
- hsjcquery_window.tab_outp_text.setText(str(result_outp))
- hsjcquery_window.tab_inp_text.setText(str(result_inp))
- app.exec()
- sys.exit(app.exec())
复制代码
3、最后,请确保在点击查询按钮时,hsjc_query_slot 函数被正确执行。你可以通过添加 print() 语句在函数内部来检查是否有正确执行。 |
|