#ifndef FILTERFORM_H #define FILTERFORM_H #include "SqlOpr.h" #include "statistic.h" #include "util.h" #include #include #include #include namespace Ui { class FilterForm; } class FilterForm : public QDialog { Q_OBJECT public: explicit FilterForm(QWidget* parent, std::unique_ptr& sqlOpr, std::unique_ptr& comSqlOpr, std::unique_ptr& repaySqlOpr); ~FilterForm(); int exec() override; public: static bool Filter(const AccountRecordList& list, AccountRecordList& result); static std::vector>> 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_; std::unique_ptr& sqlOpr_; std::unique_ptr& comSqlOpr_; std::unique_ptr& repaySqlOpr_; Ui::FilterForm* ui; }; #endif // FILTERFORM_H