Files
SimpleAccount/filterform.h
2026-02-27 12:29:27 +08:00

53 lines
1.3 KiB
C++

#ifndef FILTERFORM_H
#define FILTERFORM_H
#include "SqlOpr.h"
#include "statistic.h"
#include "util.h"
#include <QDialog>
#include <QMenu>
#include <QTableWidget>
#include <vector>
namespace Ui {
class FilterForm;
}
class FilterForm : public QDialog
{
Q_OBJECT
public:
explicit FilterForm(QWidget* parent, std::unique_ptr<ACTSqlOpr>& sqlOpr, std::unique_ptr<ComSqlOpr>& comSqlOpr,
std::unique_ptr<RepaySqlOpr>& repaySqlOpr);
~FilterForm();
int exec() override;
public:
static bool Filter(const AccountRecordList& list, AccountRecordList& result);
static std::vector<std::pair<std::string, std::pair<uint32_t, uint32_t>>> GetClassifyCash(const AccountRecordList& list,
bool isCash);
private:
void Init();
private:
void ShowResult();
void ShowContextMenu(const QPoint& pos);
void TransMenu(int id, QMenu& menu, QTableWidgetItem* item);
void CalcShow();
int32_t rePayValue(int accID);
private:
bool over_{};
QTableWidget* tw_{};
AccountRecordList result_;
std::shared_ptr<Statistic> statistic_;
std::unique_ptr<ACTSqlOpr>& sqlOpr_;
std::unique_ptr<ComSqlOpr>& comSqlOpr_;
std::unique_ptr<RepaySqlOpr>& repaySqlOpr_;
Ui::FilterForm* ui;
};
#endif // FILTERFORM_H