From 6da49426339d5088cae3ce336cada635b6c3e9b7 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sat, 27 Dec 2014 15:16:36 -0800 Subject: [PATCH] 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. --- doc/manual.md | 10 +++--- hledger-lib/Hledger/Reports/ReportOptions.hs | 4 +-- hledger/Hledger/Cli/Balance.hs | 34 ++++++++++---------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/doc/manual.md b/doc/manual.md index 795de34d0..3365d8983 100644 --- a/doc/manual.md +++ b/doc/manual.md @@ -1003,7 +1003,7 @@ more compact output. Use `--no-elide` to prevent this. Accounts which have zero balance (and no non-zero subaccounts) are 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 @@ -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 be omitted). -The `--row-totals` flag adds an additional column showing the total -for each row. The `-A/--average` flag adds one more column showing -the average value in each row. Note in `--H/--historical` mode only -the average is useful, and in `--cumulative` mode neither is useful. +The `-T/--row-total` flag adds an additional column showing the total +for each row. The `-A/--average` flag adds a column showing the +average value in each row. Note in `--H/--historical` mode only the +average is useful, and in `--cumulative` mode neither is useful. ##### Custom output formats diff --git a/hledger-lib/Hledger/Reports/ReportOptions.hs b/hledger-lib/Hledger/Reports/ReportOptions.hs index ebe32fdb9..99b894d75 100644 --- a/hledger-lib/Hledger/Reports/ReportOptions.hs +++ b/hledger-lib/Hledger/Reports/ReportOptions.hs @@ -85,8 +85,8 @@ data ReportOpts = ReportOpts { ,balancetype_ :: BalanceType ,accountlistmode_ :: AccountListMode ,drop_ :: Int + ,row_total_ :: Bool ,no_total_ :: Bool - ,row_totals_ :: Bool } deriving (Show, Data, Typeable) instance Default ReportOpts where def = defreportopts @@ -148,8 +148,8 @@ rawOptsToReportOpts rawopts = do ,balancetype_ = balancetypeopt rawopts ,accountlistmode_ = accountlistmodeopt rawopts ,drop_ = intopt "drop" rawopts + ,row_total_ = boolopt "row-total" rawopts ,no_total_ = boolopt "no-total" rawopts - ,row_totals_ = boolopt "row-totals" rawopts } accountlistmodeopt :: RawOpts -> AccountListMode diff --git a/hledger/Hledger/Cli/Balance.hs b/hledger/Hledger/Cli/Balance.hs index 3d4512237..1bae22d46 100644 --- a/hledger/Hledger/Cli/Balance.hs +++ b/hledger/Hledger/Cli/Balance.hs @@ -261,15 +261,15 @@ balancemode = (defCommandMode $ ["balance"] ++ aliases) { -- also accept but don ,modeGroupFlags = C.Group { groupUnnamed = [ 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 ["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-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 ["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 ,groupHidden = [] @@ -397,13 +397,13 @@ formatField opts accountName depth total ljust min max field = case field of multiBalanceReportAsCsv :: ReportOpts -> MultiBalanceReport -> CSV multiBalanceReportAsCsv opts (MultiBalanceReport (colspans, items, (coltotals,tot,avg))) = ("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 []) ) : [a : a' : show i : map showMixedAmountOneLineWithoutPrice (amts - ++ (if row_totals_ opts then [rowtot] else []) + ++ (if row_total_ opts then [rowtot] else []) ++ (if average_ opts then [rowavg] else [])) | ((a,a',i), amts, rowtot, rowavg) <- items] ++ @@ -412,7 +412,7 @@ multiBalanceReportAsCsv opts (MultiBalanceReport (colspans, items, (coltotals,to else [["totals", "", ""] ++ map showMixedAmountOneLineWithoutPrice ( coltotals - ++ (if row_totals_ opts then [tot] else []) + ++ (if row_total_ opts then [tot] else []) ++ (if average_ opts then [avg] else []) )] @@ -435,7 +435,7 @@ periodBalanceReportAsText opts r@(MultiBalanceReport (colspans, items, (coltotal where trimborder = ("":) . (++[""]) . drop 1 . init . map (drop 1 . init) colheadings = map showDateSpan colspans - ++ (if row_totals_ opts then [" Total"] else []) + ++ (if row_total_ opts then [" Total"] else []) ++ (if average_ opts then ["Average"] else []) items' | empty_ opts = 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 acctswidth = maximum $ map length $ accts 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 []) totalrow | no_total_ opts = row "" [] | otherwise = row "" $ coltotals - ++ (if row_totals_ opts then [tot] else []) + ++ (if row_total_ opts then [tot] else []) ++ (if average_ opts then [avg] else []) -- | 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 trimborder = ("":) . (++[""]) . drop 1 . init . map (drop 1 . init) 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 []) accts = map renderacct items renderacct ((a,a',i),_,_,_) @@ -476,12 +476,12 @@ cumulativeBalanceReportAsText opts r@(MultiBalanceReport (colspans, items, (colt | otherwise = maybeAccountNameDrop opts a acctswidth = maximum $ map length $ accts 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 []) addtotalrow | no_total_ opts = id | otherwise = (+----+ (row "" $ coltotals - ++ (if row_totals_ opts then [tot] else []) + ++ (if row_total_ opts then [tot] else []) ++ (if average_ opts then [avg] else []) )) @@ -500,7 +500,7 @@ historicalBalanceReportAsText opts r@(MultiBalanceReport (colspans, items, (colt where trimborder = ("":) . (++[""]) . drop 1 . init . map (drop 1 . init) 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 []) accts = map renderacct items renderacct ((a,a',i),_,_,_) @@ -508,12 +508,12 @@ historicalBalanceReportAsText opts r@(MultiBalanceReport (colspans, items, (colt | otherwise = maybeAccountNameDrop opts a acctswidth = maximum $ map length $ accts 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 []) addtotalrow | no_total_ opts = id | otherwise = (+----+ (row "" $ coltotals - ++ (if row_totals_ opts then [tot] else []) + ++ (if row_total_ opts then [tot] else []) ++ (if average_ opts then [avg] else []) ))