register: --average implies --empty
The -A flag now enables -E, so that with a report interval the averages are always per-period and not per-report-line. (Without a report interval, -E is already the default).
This commit is contained in:
parent
d0ad571321
commit
f631e8e063
@ -751,17 +751,9 @@ The `--depth` option limits the amount of sub-account detail displayed:
|
||||
|
||||
$ hledger register assets:bank:checking --depth 2
|
||||
|
||||
With a [reporting interval](#reporting-interval) it shows aggregated
|
||||
summary postings within each interval:
|
||||
|
||||
$ hledger register --monthly rent
|
||||
$ hledger register --monthly -E food --depth 4
|
||||
|
||||
Note that the report start/end dates will be "enlarged" in this case
|
||||
so that they encompass the displayed intervals. This is so that the
|
||||
first and last intervals will be "full" and comparable to the others.
|
||||
|
||||
The `--average`/`-A` flag shows the running average posting amount instead of the running total.
|
||||
The `--average`/`-A` flag shows the running average posting amount
|
||||
instead of the running total (so, the final number displayed is the
|
||||
average for the whole report period). This flag implies `--empty` (see below).
|
||||
|
||||
The `--related`/`-r` flag shows the *other* postings in the transactions
|
||||
of the postings which would normally be shown.
|
||||
@ -772,6 +764,22 @@ names, use `-w` to increase the width to 120 characters, or `-wN` to set
|
||||
any desired width (at least 50 recommended).
|
||||
Note, currently -w/--width can not have a space between flag and value ([#149](https://github.com/simonmichael/hledger/issues/149)).
|
||||
|
||||
With a [reporting interval](#reporting-interval) register shows
|
||||
aggregated summary postings, within each interval:
|
||||
|
||||
$ hledger register --monthly rent
|
||||
$ hledger register --monthly -E food --depth 4
|
||||
|
||||
One summary posting will be shown for each account in each interval.
|
||||
Summary postings with a zero amount are not shown; use the `--empty`/`-E` flag to show them.
|
||||
|
||||
If necessary, use the `--depth` option to summarise the accounts.
|
||||
It's often most useful to see just one line per interval.
|
||||
|
||||
When using report intervals, the report's normal start/end dates are
|
||||
"enlarged" to contain a whole number of intervals, so that the first
|
||||
and last intervals will be "full" and comparable to the others.
|
||||
|
||||
#### balance
|
||||
|
||||
The balance command displays accounts and their balances.
|
||||
|
||||
@ -71,13 +71,13 @@ postingsReport opts q j = (totallabel, items)
|
||||
journalPostings $ journalSelectingAmountFromOpts opts j
|
||||
(precedingps, reportps) = dbg "precedingps, reportps" $ span (beforestartq `matchesPosting`) pstoend
|
||||
|
||||
empty = queryEmpty q
|
||||
showempty = queryEmpty q || average_ opts
|
||||
-- displayexpr = display_ opts -- XXX
|
||||
interval = intervalFromOpts opts -- XXX
|
||||
|
||||
whichdate = whichDateFromOpts opts
|
||||
itemps | interval == NoInterval = reportps
|
||||
| otherwise = summarisePostingsByInterval interval whichdate depth empty reportspan reportps
|
||||
| otherwise = summarisePostingsByInterval interval whichdate depth showempty reportspan reportps
|
||||
items = postingsReportItems itemps nullposting whichdate depth startbal runningcalc 1
|
||||
where
|
||||
startbal = if balancetype_ opts == HistoricalBalance then sumPostings precedingps else 0
|
||||
@ -117,9 +117,9 @@ mkpostingsReportItem showdate showdesc wd p b = (if showdate then Just date else
|
||||
-- are one per account per interval and aggregated to the specified depth
|
||||
-- if any.
|
||||
summarisePostingsByInterval :: Interval -> WhichDate -> Int -> Bool -> DateSpan -> [Posting] -> [Posting]
|
||||
summarisePostingsByInterval interval wd depth empty reportspan ps = concatMap summarisespan $ splitSpan interval reportspan
|
||||
summarisePostingsByInterval interval wd depth showempty reportspan ps = concatMap summarisespan $ splitSpan interval reportspan
|
||||
where
|
||||
summarisespan s = summarisePostingsInDateSpan s wd depth empty (postingsinspan s)
|
||||
summarisespan s = summarisePostingsInDateSpan s wd depth showempty (postingsinspan s)
|
||||
postingsinspan s = filter (isPostingInDateSpan' wd s) ps
|
||||
|
||||
tests_summarisePostingsByInterval = [
|
||||
|
||||
@ -29,7 +29,7 @@ registermode = (defCommandMode $ ["register"] ++ aliases) {
|
||||
,modeGroupFlags = Group {
|
||||
groupUnnamed = [
|
||||
flagNone ["historical","H"] (\opts -> setboolopt "historical" opts) "include prior postings in the running total"
|
||||
,flagNone ["average","A"] (\opts -> setboolopt "average" opts) "show a running average instead of the running total"
|
||||
,flagNone ["average","A"] (\opts -> setboolopt "average" opts) "show a running average instead of the running total (implies --empty)"
|
||||
,flagNone ["related","r"] (\opts -> setboolopt "related" opts) "show postings' siblings instead"
|
||||
,flagReq ["width","w"] (\s opts -> Right $ setopt "width" s opts) "N" "set output width (default: 80)"
|
||||
]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user