From 48bf45d4fe1dd57b6c3b65465247332a26216ea5 Mon Sep 17 00:00:00 2001 From: zky2020 <3439415903@qq.comm> Date: Sun, 4 Jun 2023 18:44:40 +0800 Subject: [PATCH] second version --- src/budget/_account.py | 26 +++++++++++++++++++++----- src/budget/_category.py | 24 ++++++++++++++++++++---- src/budget/_trans.py | 11 ----------- 3 files changed, 41 insertions(+), 20 deletions(-) diff --git a/src/budget/_account.py b/src/budget/_account.py index 7cce6a4..581fcc2 100644 --- a/src/budget/_account.py +++ b/src/budget/_account.py @@ -110,6 +110,7 @@ class AccountTab(TabPage): descriptionLabel = QLabel("Description:") descriptionLine = QLineEdit() descriptionLine.setText(data[0][2]) + # descriptionLine.setText(self.transData[self.rows[0].row()][6]) button1 = QPushButton("Confirm") button3 = QPushButton("Delete") @@ -251,15 +252,30 @@ class AccountTab(TabPage): print(e) QMessageBox.critical(self, 'Error', str(e)) - self.pg.execute("SELECT c_id, meta ->> 'name' FROM category ORDER BY c_id") + self.pg.execute("SELECT t_id, a_id, c_id, s_id, time, translate(amount::varchar,'$','¥'), meta->>'description' FROM transaction ORDER BY time DESC") + self.transData = self.pg.fetchall() + self.pg.execute("SELECT a_id, meta ->> 'name' FROM account ORDER BY a_id") self.accountData = self.pg.fetchall() + self.pg.execute("SELECT c_id, meta ->> 'name' FROM category ORDER BY c_id") + self.categoryData = self.pg.fetchall() print(self.accountData) # 初始化表格 self.accountTable.clear() - self.accountTable.setRowCount(len(self.accountData)) - self.accountTable.setColumnCount(5) # 时间 账户 类别 金额 描述 - self.accountTable.setHorizontalHeaderLabels(['Time', 'Account', 'Category', 'Amount', 'Description']) + self.accountTable.setRowCount(len(self.transData)) + self.accountTable.setColumnCount(3) # 账户名 账户平衡 备注 + self.accountTable.setHorizontalHeaderLabels(['Account Name', 'Account Balance', 'Description']) # 设置自动调整列宽 - self.accountTable.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch) \ No newline at end of file + self.accountTable.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch) + + # 填充表格 + for i in range(len(self.transData)): + #self.accountTable.setItem(i, 0, QTableWidgetItem(self.transData[i][4].strftime("%Y-%m-%d %H:%M:%S"))) + self.accountTable.setItem(i, 0, QTableWidgetItem(self.accountData[self.transData[i][1]-1][1])) + # if self.transData[i][2] is None: + # self.accountTable.setItem(i, 1, QTableWidgetItem("None")) + # else: + # self.accountTable.setItem(i, 1, QTableWidgetItem(self.categoryData[self.transData[i][2]-1][1])) + self.accountTable.setItem(i, 1, QTableWidgetItem(str(self.transData[i][5]))) + self.accountTable.setItem(i, 2, QTableWidgetItem(self.transData[i][6])) diff --git a/src/budget/_category.py b/src/budget/_category.py index 7df28c5..6c093cd 100644 --- a/src/budget/_category.py +++ b/src/budget/_category.py @@ -215,6 +215,12 @@ class CategoryTab(TabPage): print(e) QMessageBox.critical(self, 'Error', str(e)) + # self.pg.execute("SELECT c_id, meta ->> 'name' FROM category ORDER BY c_id") + # self.categoryData = self.pg.fetchall() + self.pg.execute("SELECT t_id, a_id, c_id, s_id, time, translate(amount::varchar,'$','¥'), meta->>'description' FROM transaction ORDER BY time DESC") + self.transData = self.pg.fetchall() + self.pg.execute("SELECT a_id, meta ->> 'name' FROM account ORDER BY a_id") + self.accountData = self.pg.fetchall() self.pg.execute("SELECT c_id, meta ->> 'name' FROM category ORDER BY c_id") self.categoryData = self.pg.fetchall() @@ -222,8 +228,18 @@ class CategoryTab(TabPage): # 初始化表格 self.categoryTable.clear() - self.categoryTable.setRowCount(len(self.categoryData)) - self.categoryTable.setColumnCount(5) # 时间 账户 类别 金额 描述 - self.categoryTable.setHorizontalHeaderLabels(['Time', 'Account', 'Category', 'Amount', 'Description']) + self.categoryTable.setRowCount(len(self.transData)) + self.categoryTable.setColumnCount(3) # 类别名称 类别 描述 + self.categoryTable.setHorizontalHeaderLabels(['Category Name', 'Category Type','Description']) # 设置自动调整列宽 - self.categoryTable.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch) \ No newline at end of file + self.categoryTable.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch) + + # 填充表格 + for i in range(len(self.categoryData)): + # self.categoryTable.setItem(i, 2, QTableWidgetItem(self.accountData[self.transData[i][1]-1][1])) + if self.transData[i][2] is None: + self.categoryTable.setItem(i, 0, QTableWidgetItem("None")) + else: + self.categoryTable.setItem(i, 0, QTableWidgetItem(self.categoryData[self.transData[i][2]-1][1])) + self.categoryTable.setItem(i, 1, QTableWidgetItem(str(self.transData[i][5]))) + self.categoryTable.setItem(i, 2, QTableWidgetItem(self.transData[i][6])) diff --git a/src/budget/_trans.py b/src/budget/_trans.py index a4b2453..f699a4e 100644 --- a/src/budget/_trans.py +++ b/src/budget/_trans.py @@ -213,17 +213,6 @@ class TransTab(TabPage): else: return - - - - - - - - - - - def onDialogTypeChanged(self, index): # 获取当前选择的类型 type = self.dialogLayout.itemAt(1).widget().currentText()