summaryrefslogtreecommitdiff
path: root/report.h
diff options
context:
space:
mode:
Diffstat (limited to 'report.h')
-rw-r--r--report.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/report.h b/report.h
new file mode 100644
index 00000000..14923ab5
--- /dev/null
+++ b/report.h
@@ -0,0 +1,80 @@
+#ifndef _REPORT_H
+#define _REPORT_H
+
+#include "ledger.h"
+#include "timing.h"
+
+#include <iostream>
+#include <memory>
+#include <list>
+
+namespace ledger {
+
+class report_t
+{
+ public:
+ std::string output_file;
+ std::string predicate;
+ std::string secondary_predicate;
+ std::string display_predicate;
+ std::string report_period;
+ std::string report_period_sort;
+ std::string format_string;
+ std::string sort_string;
+ std::string amount_expr;
+ std::string total_expr;
+ std::string descend_expr;
+ std::string forecast_limit;
+ std::string reconcile_balance;
+ std::string reconcile_date;
+ std::string date_format;
+
+ unsigned long budget_flags;
+ unsigned long pricing_leeway;
+
+ int head_entries;
+ int tail_entries;
+
+ bool show_collapsed;
+ bool show_subtotal;
+ bool show_totals;
+ bool show_related;
+ bool show_all_related;
+ bool show_inverted;
+ bool show_empty;
+ bool days_of_the_week;
+ bool by_payee;
+ bool comm_as_payee;
+ bool code_as_payee;
+ bool show_revalued;
+ bool show_revalued_only;
+ bool keep_price;
+ bool keep_date;
+ bool keep_tag;
+ bool entry_sort;
+ bool sort_all;
+
+ report_t();
+
+ void regexps_to_predicate(const std::string& command,
+ std::list<std::string>::const_iterator begin,
+ std::list<std::string>::const_iterator end,
+ const bool account_regexp = false,
+ const bool add_account_short_masks = false,
+ const bool logical_and = true);
+
+ void process_options(const std::string& command,
+ strings_list::iterator arg,
+ strings_list::iterator args_end);
+
+ item_handler<transaction_t> *
+ chain_xact_handlers(const std::string& command,
+ item_handler<transaction_t> * base_formatter,
+ journal_t * journal,
+ account_t * master,
+ std::list<item_handler<transaction_t> *>& ptrs);
+};
+
+} // namespace ledger
+
+#endif // _REPORT_H