From 5e10e0c94aa764e3933e19bd40b7cd35ff6d37f0 Mon Sep 17 00:00:00 2001 From: "johannes@debussy" Date: Tue, 5 Nov 2013 11:57:00 +0100 Subject: first try for implementing --depth for register --- src/filters.h | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src/filters.h') diff --git a/src/filters.h b/src/filters.h index 5c517c95..40e25ac0 100644 --- a/src/filters.h +++ b/src/filters.h @@ -426,6 +426,9 @@ public: class collapse_posts : public item_handler { + + typedef std::map totals_map; + expr_t& amount_expr; predicate_t display_predicate; predicate_t only_predicate; @@ -434,7 +437,7 @@ class collapse_posts : public item_handler xact_t * last_xact; post_t * last_post; temporaries_t temps; - account_t * totals_account; + totals_map totals; bool only_collapse_if_zero; std::list component_posts; report_t& report; @@ -453,17 +456,13 @@ public: only_predicate(_only_predicate), count(0), last_xact(NULL), last_post(NULL), only_collapse_if_zero(_only_collapse_if_zero), report(_report) { - create_accounts(); TRACE_CTOR(collapse_posts, "post_handler_ptr, ..."); } virtual ~collapse_posts() { TRACE_DTOR(collapse_posts); handler.reset(); } - - void create_accounts() { - totals_account = &temps.create_account(_("")); - } + value_t& find_totals(account_t* account); virtual void flush() { report_subtotal(); @@ -485,7 +484,7 @@ public: last_post = NULL; temps.clear(); - create_accounts(); + totals.clear(); component_posts.clear(); item_handler::clear(); -- cgit v1.2.3