diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-07-04 22:38:03 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-07-04 22:38:03 +0000 |
commit | dadc34655c3ab961b0b0b94a10eaaba710f0b5e8 (patch) | |
tree | 99e72842fe687baea16376a147619b6048d7e441 /kmymoney2/reports/listtable.h | |
download | kmymoney-dadc34655c3ab961b0b0b94a10eaaba710f0b5e8.tar.gz kmymoney-dadc34655c3ab961b0b0b94a10eaaba710f0b5e8.zip |
Added kmymoney
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kmymoney@1239792 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kmymoney2/reports/listtable.h')
-rw-r--r-- | kmymoney2/reports/listtable.h | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/kmymoney2/reports/listtable.h b/kmymoney2/reports/listtable.h new file mode 100644 index 0000000..5ffa64d --- /dev/null +++ b/kmymoney2/reports/listtable.h @@ -0,0 +1,121 @@ +/*************************************************************************** + listtable.h + ------------------- + begin : Sat 28 jun 2008 + copyright : (C) 2004-2005 by Ace Jones + 2008 by Alvaro Soliverez + email : acejones@users.sourceforge.net + asoliverez@gmail.com + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#ifndef LISTTABLE_H +#define LISTTABLE_H + +// ---------------------------------------------------------------------------- +// QT Includes + +#include <qstringlist.h> + +// ---------------------------------------------------------------------------- +// KDE Includes + +// ---------------------------------------------------------------------------- +// Project Includes + +#include "../mymoney/mymoneyreport.h" +#include "reporttable.h" + +namespace reports { + + class ReportAccount; + + /** + * Calculates a query of information about the transaction database. + * + * This is a middle-layer class, between the implementing classes and the engine. The + * MyMoneyReport class holds only the CONFIGURATION parameters. This + * class has some common methods used by querytable and objectinfo classes + * + * @author Alvaro Soliverez + * + * @short + **/ + + class ListTable : public ReportTable + { + public: + ListTable ( const MyMoneyReport& ); + QString renderHTML ( void ) const; + QString renderCSV ( void ) const; + void drawChart ( KReportChartView& ) const {} + void dump ( const QString& file, const QString& context = QString() ) const; + void init ( void ); + + public: + /** + * Contains a single row in the table. + * + * Each column is a key/value pair, both strings. This class is just + * a QMap with the added ability to specify which columns you'd like to + * use as a sort key when you qHeapSort a list of these TableRows + */ + class TableRow: public QMap<QString, QString> + { + public: + bool operator< ( const TableRow& ) const; + bool operator<= ( const TableRow& ) const; + bool operator> ( const TableRow& ) const; + bool operator== ( const TableRow& ) const; + + static void setSortCriteria ( const QString& _criteria ) { m_sortCriteria = QStringList::split ( ",", _criteria ); } + private: + static QStringList m_sortCriteria; + }; + + QValueList<TableRow> rows() {return m_rows;}; + + protected: + void render ( QString&, QString& ) const; + + /** + * If not in expert mode, include all subaccounts for each selected + * investment account + */ + void includeInvestmentSubAccounts(void); + + QValueList<TableRow> m_rows; + + QString m_group; + /** + * Comma-separated list of columns to place BEFORE the subtotal column + */ + QString m_columns; + /** + * Name of the subtotal column + */ + QString m_subtotal; + /** + * Comma-separated list of columns to place AFTER the subtotal column + */ + QString m_postcolumns; + QString m_summarize; + QString m_propagate; + + MyMoneyReport m_config; + + + }; + +} + +#endif + |