Had to step back from a change that was breaking regular reports.
This commit is contained in:
parent
90bba2a808
commit
391300aea2
3 changed files with 15 additions and 3 deletions
|
|
@ -61,7 +61,9 @@ xact_handler_ptr chain_xact_handlers(report_t& report,
|
||||||
// determine, for example, whether filtered xacts are included or excluded
|
// determine, for example, whether filtered xacts are included or excluded
|
||||||
// from the running total.
|
// from the running total.
|
||||||
assert(report.HANDLED(amount_));
|
assert(report.HANDLED(amount_));
|
||||||
handler.reset(new calc_xacts(handler, report.HANDLER(amount_).expr));
|
expr_t& expr(report.HANDLER(amount_).expr);
|
||||||
|
expr.set_context(&report);
|
||||||
|
handler.reset(new calc_xacts(handler, expr));
|
||||||
|
|
||||||
// filter_xacts will only pass through xacts matching the
|
// filter_xacts will only pass through xacts matching the
|
||||||
// `secondary_predicate'.
|
// `secondary_predicate'.
|
||||||
|
|
|
||||||
|
|
@ -191,8 +191,15 @@ void calc_xacts::operator()(xact_t& xact)
|
||||||
add_or_set_value(xdata.total, last_xact->xdata().total);
|
add_or_set_value(xdata.total, last_xact->xdata().total);
|
||||||
|
|
||||||
if (! xdata.has_flags(XACT_EXT_NO_TOTAL)) {
|
if (! xdata.has_flags(XACT_EXT_NO_TOTAL)) {
|
||||||
|
#if 0
|
||||||
bind_scope_t bound_scope(*amount_expr.get_context(), xact);
|
bind_scope_t bound_scope(*amount_expr.get_context(), xact);
|
||||||
xdata.total += amount_expr.calc();
|
if (xdata.total.is_null())
|
||||||
|
xdata.total = amount_expr.calc();
|
||||||
|
else
|
||||||
|
xdata.total += amount_expr.calc();
|
||||||
|
#else
|
||||||
|
xact.add_to_value(xdata.total);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
item_handler<xact_t>::operator()(xact);
|
item_handler<xact_t>::operator()(xact);
|
||||||
|
|
|
||||||
|
|
@ -186,10 +186,10 @@ public:
|
||||||
expr_t expr;
|
expr_t expr;
|
||||||
CTOR(report_t, amount_) {
|
CTOR(report_t, amount_) {
|
||||||
expr = "amount";
|
expr = "amount";
|
||||||
|
on("amount");
|
||||||
}
|
}
|
||||||
DO_(args) {
|
DO_(args) {
|
||||||
expr = args[0].to_string();
|
expr = args[0].to_string();
|
||||||
expr.set_context(parent);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
OPTION(report_t, amount_data); // -j
|
OPTION(report_t, amount_data); // -j
|
||||||
|
|
@ -246,6 +246,7 @@ public:
|
||||||
expr_t expr;
|
expr_t expr;
|
||||||
CTOR(report_t, display_amount_) {
|
CTOR(report_t, display_amount_) {
|
||||||
expr = "amount_expr";
|
expr = "amount_expr";
|
||||||
|
on("amount_expr");
|
||||||
}
|
}
|
||||||
DO_(args) {
|
DO_(args) {
|
||||||
expr = args[0].to_string();
|
expr = args[0].to_string();
|
||||||
|
|
@ -256,6 +257,7 @@ public:
|
||||||
expr_t expr;
|
expr_t expr;
|
||||||
CTOR(report_t, display_total_) {
|
CTOR(report_t, display_total_) {
|
||||||
expr = "total_expr";
|
expr = "total_expr";
|
||||||
|
on("total_expr");
|
||||||
}
|
}
|
||||||
DO_(args) {
|
DO_(args) {
|
||||||
expr = args[0].to_string();
|
expr = args[0].to_string();
|
||||||
|
|
@ -367,6 +369,7 @@ public:
|
||||||
expr_t expr;
|
expr_t expr;
|
||||||
CTOR(report_t, total_) {
|
CTOR(report_t, total_) {
|
||||||
expr = "total";
|
expr = "total";
|
||||||
|
on("total");
|
||||||
}
|
}
|
||||||
DO_(args) {
|
DO_(args) {
|
||||||
expr = args[0].to_string();
|
expr = args[0].to_string();
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue