mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-26 03:42:25 +03:00
balance: tweak flags a bit; we now use -N and -T
-N doesn't seem to be used by Ledger currently; we'll use it as shortcut for --no-total. -T is used by Ledger to set a custom value expression for the final total. I'm going to take it as a shortcut for --row-total instead.
This commit is contained in:
parent
ba0623165f
commit
6da4942633
@ -1003,7 +1003,7 @@ more compact output. Use `--no-elide` to prevent this.
|
|||||||
Accounts which have zero balance (and no non-zero subaccounts) are
|
Accounts which have zero balance (and no non-zero subaccounts) are
|
||||||
omitted. Use `-E/--empty` to show them.
|
omitted. Use `-E/--empty` to show them.
|
||||||
|
|
||||||
A final total is displayed by default; use `--no-total` to suppress it.
|
A final total is displayed by default; use `-N/--no-total` to suppress it.
|
||||||
|
|
||||||
##### Flat mode
|
##### Flat mode
|
||||||
|
|
||||||
@ -1066,10 +1066,10 @@ considered, not just the ones with activity during the report period
|
|||||||
(use -E to include low-activity accounts which would otherwise would
|
(use -E to include low-activity accounts which would otherwise would
|
||||||
be omitted).
|
be omitted).
|
||||||
|
|
||||||
The `--row-totals` flag adds an additional column showing the total
|
The `-T/--row-total` flag adds an additional column showing the total
|
||||||
for each row. The `-A/--average` flag adds one more column showing
|
for each row. The `-A/--average` flag adds a column showing the
|
||||||
the average value in each row. Note in `--H/--historical` mode only
|
average value in each row. Note in `--H/--historical` mode only the
|
||||||
the average is useful, and in `--cumulative` mode neither is useful.
|
average is useful, and in `--cumulative` mode neither is useful.
|
||||||
|
|
||||||
##### Custom output formats
|
##### Custom output formats
|
||||||
|
|
||||||
|
@ -85,8 +85,8 @@ data ReportOpts = ReportOpts {
|
|||||||
,balancetype_ :: BalanceType
|
,balancetype_ :: BalanceType
|
||||||
,accountlistmode_ :: AccountListMode
|
,accountlistmode_ :: AccountListMode
|
||||||
,drop_ :: Int
|
,drop_ :: Int
|
||||||
|
,row_total_ :: Bool
|
||||||
,no_total_ :: Bool
|
,no_total_ :: Bool
|
||||||
,row_totals_ :: Bool
|
|
||||||
} deriving (Show, Data, Typeable)
|
} deriving (Show, Data, Typeable)
|
||||||
|
|
||||||
instance Default ReportOpts where def = defreportopts
|
instance Default ReportOpts where def = defreportopts
|
||||||
@ -148,8 +148,8 @@ rawOptsToReportOpts rawopts = do
|
|||||||
,balancetype_ = balancetypeopt rawopts
|
,balancetype_ = balancetypeopt rawopts
|
||||||
,accountlistmode_ = accountlistmodeopt rawopts
|
,accountlistmode_ = accountlistmodeopt rawopts
|
||||||
,drop_ = intopt "drop" rawopts
|
,drop_ = intopt "drop" rawopts
|
||||||
|
,row_total_ = boolopt "row-total" rawopts
|
||||||
,no_total_ = boolopt "no-total" rawopts
|
,no_total_ = boolopt "no-total" rawopts
|
||||||
,row_totals_ = boolopt "row-totals" rawopts
|
|
||||||
}
|
}
|
||||||
|
|
||||||
accountlistmodeopt :: RawOpts -> AccountListMode
|
accountlistmodeopt :: RawOpts -> AccountListMode
|
||||||
|
@ -261,15 +261,15 @@ balancemode = (defCommandMode $ ["balance"] ++ aliases) { -- also accept but don
|
|||||||
,modeGroupFlags = C.Group {
|
,modeGroupFlags = C.Group {
|
||||||
groupUnnamed = [
|
groupUnnamed = [
|
||||||
flagNone ["tree"] (\opts -> setboolopt "tree" opts) "show accounts as a tree (default in simple reports)"
|
flagNone ["tree"] (\opts -> setboolopt "tree" opts) "show accounts as a tree (default in simple reports)"
|
||||||
,flagNone ["flat"] (\opts -> setboolopt "flat" opts) "show accounts as a list (default in multicolumn)"
|
,flagNone ["flat"] (\opts -> setboolopt "flat" opts) "show accounts as a list (default in multicolumn mode)"
|
||||||
,flagReq ["drop"] (\s opts -> Right $ setopt "drop" s opts) "N" "flat mode: omit N leading account name parts"
|
,flagReq ["drop"] (\s opts -> Right $ setopt "drop" s opts) "N" "flat mode: omit N leading account name parts"
|
||||||
,flagReq ["format"] (\s opts -> Right $ setopt "format" s opts) "FORMATSTR" "tree mode: use this custom line format"
|
,flagReq ["format"] (\s opts -> Right $ setopt "format" s opts) "FORMATSTR" "tree mode: use this custom line format"
|
||||||
,flagNone ["no-elide"] (\opts -> setboolopt "no-elide" opts) "tree mode: don't squash boring parent accounts"
|
,flagNone ["no-elide"] (\opts -> setboolopt "no-elide" opts) "tree mode: don't squash boring parent accounts"
|
||||||
,flagNone ["no-total"] (\opts -> setboolopt "no-total" opts) "don't show the final total(s) row"
|
|
||||||
,flagNone ["row-totals"] (\opts -> setboolopt "row-totals" opts) "multicolumn mode: show a row totals column"
|
|
||||||
,flagNone ["average","A"] (\opts -> setboolopt "average" opts) "multicolumn mode: show a row averages column"
|
|
||||||
,flagNone ["cumulative"] (\opts -> setboolopt "cumulative" opts) "multicolumn mode: show accumulated ending balances"
|
|
||||||
,flagNone ["historical","H"] (\opts -> setboolopt "historical" opts) "multicolumn mode: show historical ending balances"
|
,flagNone ["historical","H"] (\opts -> setboolopt "historical" opts) "multicolumn mode: show historical ending balances"
|
||||||
|
,flagNone ["cumulative"] (\opts -> setboolopt "cumulative" opts) "multicolumn mode: show accumulated ending balances"
|
||||||
|
,flagNone ["average","A"] (\opts -> setboolopt "average" opts) "multicolumn mode: show a row average column"
|
||||||
|
,flagNone ["row-total","T"] (\opts -> setboolopt "row-total" opts) "multicolumn mode: show a row total column"
|
||||||
|
,flagNone ["no-total","N"] (\opts -> setboolopt "no-total" opts) "don't show the final total row"
|
||||||
]
|
]
|
||||||
++ outputflags
|
++ outputflags
|
||||||
,groupHidden = []
|
,groupHidden = []
|
||||||
@ -397,13 +397,13 @@ formatField opts accountName depth total ljust min max field = case field of
|
|||||||
multiBalanceReportAsCsv :: ReportOpts -> MultiBalanceReport -> CSV
|
multiBalanceReportAsCsv :: ReportOpts -> MultiBalanceReport -> CSV
|
||||||
multiBalanceReportAsCsv opts (MultiBalanceReport (colspans, items, (coltotals,tot,avg))) =
|
multiBalanceReportAsCsv opts (MultiBalanceReport (colspans, items, (coltotals,tot,avg))) =
|
||||||
("account" : "short account" : "indent" : map showDateSpan colspans
|
("account" : "short account" : "indent" : map showDateSpan colspans
|
||||||
++ (if row_totals_ opts then ["total"] else [])
|
++ (if row_total_ opts then ["total"] else [])
|
||||||
++ (if average_ opts then ["average"] else [])
|
++ (if average_ opts then ["average"] else [])
|
||||||
) :
|
) :
|
||||||
[a : a' : show i :
|
[a : a' : show i :
|
||||||
map showMixedAmountOneLineWithoutPrice
|
map showMixedAmountOneLineWithoutPrice
|
||||||
(amts
|
(amts
|
||||||
++ (if row_totals_ opts then [rowtot] else [])
|
++ (if row_total_ opts then [rowtot] else [])
|
||||||
++ (if average_ opts then [rowavg] else []))
|
++ (if average_ opts then [rowavg] else []))
|
||||||
| ((a,a',i), amts, rowtot, rowavg) <- items]
|
| ((a,a',i), amts, rowtot, rowavg) <- items]
|
||||||
++
|
++
|
||||||
@ -412,7 +412,7 @@ multiBalanceReportAsCsv opts (MultiBalanceReport (colspans, items, (coltotals,to
|
|||||||
else [["totals", "", ""]
|
else [["totals", "", ""]
|
||||||
++ map showMixedAmountOneLineWithoutPrice (
|
++ map showMixedAmountOneLineWithoutPrice (
|
||||||
coltotals
|
coltotals
|
||||||
++ (if row_totals_ opts then [tot] else [])
|
++ (if row_total_ opts then [tot] else [])
|
||||||
++ (if average_ opts then [avg] else [])
|
++ (if average_ opts then [avg] else [])
|
||||||
)]
|
)]
|
||||||
|
|
||||||
@ -435,7 +435,7 @@ periodBalanceReportAsText opts r@(MultiBalanceReport (colspans, items, (coltotal
|
|||||||
where
|
where
|
||||||
trimborder = ("":) . (++[""]) . drop 1 . init . map (drop 1 . init)
|
trimborder = ("":) . (++[""]) . drop 1 . init . map (drop 1 . init)
|
||||||
colheadings = map showDateSpan colspans
|
colheadings = map showDateSpan colspans
|
||||||
++ (if row_totals_ opts then [" Total"] else [])
|
++ (if row_total_ opts then [" Total"] else [])
|
||||||
++ (if average_ opts then ["Average"] else [])
|
++ (if average_ opts then ["Average"] else [])
|
||||||
items' | empty_ opts = items
|
items' | empty_ opts = items
|
||||||
| otherwise = items -- dbg "2" $ filter (any (not . isZeroMixedAmount) . snd) $ dbg "1" items
|
| otherwise = items -- dbg "2" $ filter (any (not . isZeroMixedAmount) . snd) $ dbg "1" items
|
||||||
@ -445,12 +445,12 @@ periodBalanceReportAsText opts r@(MultiBalanceReport (colspans, items, (coltotal
|
|||||||
| otherwise = maybeAccountNameDrop opts a
|
| otherwise = maybeAccountNameDrop opts a
|
||||||
acctswidth = maximum $ map length $ accts
|
acctswidth = maximum $ map length $ accts
|
||||||
rowvals (_,as,rowtot,rowavg) = as
|
rowvals (_,as,rowtot,rowavg) = as
|
||||||
++ (if row_totals_ opts then [rowtot] else [])
|
++ (if row_total_ opts then [rowtot] else [])
|
||||||
++ (if average_ opts then [rowavg] else [])
|
++ (if average_ opts then [rowavg] else [])
|
||||||
totalrow | no_total_ opts = row "" []
|
totalrow | no_total_ opts = row "" []
|
||||||
| otherwise = row "" $
|
| otherwise = row "" $
|
||||||
coltotals
|
coltotals
|
||||||
++ (if row_totals_ opts then [tot] else [])
|
++ (if row_total_ opts then [tot] else [])
|
||||||
++ (if average_ opts then [avg] else [])
|
++ (if average_ opts then [avg] else [])
|
||||||
|
|
||||||
-- | Render a multi-column cumulative balance report as plain text suitable for console output.
|
-- | Render a multi-column cumulative balance report as plain text suitable for console output.
|
||||||
@ -468,7 +468,7 @@ cumulativeBalanceReportAsText opts r@(MultiBalanceReport (colspans, items, (colt
|
|||||||
where
|
where
|
||||||
trimborder = ("":) . (++[""]) . drop 1 . init . map (drop 1 . init)
|
trimborder = ("":) . (++[""]) . drop 1 . init . map (drop 1 . init)
|
||||||
colheadings = map (maybe "" (showDate . prevday) . spanEnd) colspans
|
colheadings = map (maybe "" (showDate . prevday) . spanEnd) colspans
|
||||||
++ (if row_totals_ opts then [" Total"] else [])
|
++ (if row_total_ opts then [" Total"] else [])
|
||||||
++ (if average_ opts then ["Average"] else [])
|
++ (if average_ opts then ["Average"] else [])
|
||||||
accts = map renderacct items
|
accts = map renderacct items
|
||||||
renderacct ((a,a',i),_,_,_)
|
renderacct ((a,a',i),_,_,_)
|
||||||
@ -476,12 +476,12 @@ cumulativeBalanceReportAsText opts r@(MultiBalanceReport (colspans, items, (colt
|
|||||||
| otherwise = maybeAccountNameDrop opts a
|
| otherwise = maybeAccountNameDrop opts a
|
||||||
acctswidth = maximum $ map length $ accts
|
acctswidth = maximum $ map length $ accts
|
||||||
rowvals (_,as,rowtot,rowavg) = as
|
rowvals (_,as,rowtot,rowavg) = as
|
||||||
++ (if row_totals_ opts then [rowtot] else [])
|
++ (if row_total_ opts then [rowtot] else [])
|
||||||
++ (if average_ opts then [rowavg] else [])
|
++ (if average_ opts then [rowavg] else [])
|
||||||
addtotalrow | no_total_ opts = id
|
addtotalrow | no_total_ opts = id
|
||||||
| otherwise = (+----+ (row "" $
|
| otherwise = (+----+ (row "" $
|
||||||
coltotals
|
coltotals
|
||||||
++ (if row_totals_ opts then [tot] else [])
|
++ (if row_total_ opts then [tot] else [])
|
||||||
++ (if average_ opts then [avg] else [])
|
++ (if average_ opts then [avg] else [])
|
||||||
))
|
))
|
||||||
|
|
||||||
@ -500,7 +500,7 @@ historicalBalanceReportAsText opts r@(MultiBalanceReport (colspans, items, (colt
|
|||||||
where
|
where
|
||||||
trimborder = ("":) . (++[""]) . drop 1 . init . map (drop 1 . init)
|
trimborder = ("":) . (++[""]) . drop 1 . init . map (drop 1 . init)
|
||||||
colheadings = map (maybe "" (showDate . prevday) . spanEnd) colspans
|
colheadings = map (maybe "" (showDate . prevday) . spanEnd) colspans
|
||||||
++ (if row_totals_ opts then [" Total"] else [])
|
++ (if row_total_ opts then [" Total"] else [])
|
||||||
++ (if average_ opts then ["Average"] else [])
|
++ (if average_ opts then ["Average"] else [])
|
||||||
accts = map renderacct items
|
accts = map renderacct items
|
||||||
renderacct ((a,a',i),_,_,_)
|
renderacct ((a,a',i),_,_,_)
|
||||||
@ -508,12 +508,12 @@ historicalBalanceReportAsText opts r@(MultiBalanceReport (colspans, items, (colt
|
|||||||
| otherwise = maybeAccountNameDrop opts a
|
| otherwise = maybeAccountNameDrop opts a
|
||||||
acctswidth = maximum $ map length $ accts
|
acctswidth = maximum $ map length $ accts
|
||||||
rowvals (_,as,rowtot,rowavg) = as
|
rowvals (_,as,rowtot,rowavg) = as
|
||||||
++ (if row_totals_ opts then [rowtot] else [])
|
++ (if row_total_ opts then [rowtot] else [])
|
||||||
++ (if average_ opts then [rowavg] else [])
|
++ (if average_ opts then [rowavg] else [])
|
||||||
addtotalrow | no_total_ opts = id
|
addtotalrow | no_total_ opts = id
|
||||||
| otherwise = (+----+ (row "" $
|
| otherwise = (+----+ (row "" $
|
||||||
coltotals
|
coltotals
|
||||||
++ (if row_totals_ opts then [tot] else [])
|
++ (if row_total_ opts then [tot] else [])
|
||||||
++ (if average_ opts then [avg] else [])
|
++ (if average_ opts then [avg] else [])
|
||||||
))
|
))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user