print: always right-align amounts
print now always right-aligns the amounts in an entry, even when they are wider than 12 characters. If there is a price, it's considered part of the amount for right-alignment. Maybe it would be nicer to put amounts and prices in separate columns ? That will get a little complicated, needs more discussion/design. Also some cleanup of postingAsLines.
This commit is contained in:
parent
155722d7ee
commit
eb75946e64
@ -175,19 +175,25 @@ postingAsLines elideamount ps p =
|
||||
postinglines
|
||||
++ newlinecomments
|
||||
where
|
||||
postinglines = map rstrip $ lines $ concatTopPadded [showacct p, " ", amount, samelinecomment]
|
||||
amount = if elideamount then "" else showamt (pamount p)
|
||||
postinglines = map rstrip $ lines $ concatTopPadded [account, " ", amount, samelinecomment]
|
||||
|
||||
account =
|
||||
indent $
|
||||
showstatus p ++ fitString (Just acctwidth) Nothing False True (showAccountName Nothing (ptype p) (paccount p))
|
||||
where
|
||||
showstatus p = if pstatus p == Cleared then "* " else ""
|
||||
acctwidth = maximum $ map (strWidth . paccount) ps
|
||||
|
||||
-- currently prices are considered part of the amount string when right-aligning amounts
|
||||
amount
|
||||
| elideamount = ""
|
||||
| otherwise = fitStringMulti (Just amtwidth) Nothing False False $ showMixedAmount $ pamount p
|
||||
where
|
||||
amtwidth = maximum $ 12 : map (strWidth . showMixedAmount . pamount) ps -- min. 12 for backwards compatibility
|
||||
|
||||
(samelinecomment, newlinecomments) =
|
||||
case renderCommentLines (pcomment p) of [] -> ("",[])
|
||||
c:cs -> (c,cs)
|
||||
showacct p =
|
||||
indent $
|
||||
showstatus p ++ fitString (Just w) Nothing False True (showAccountName Nothing (ptype p) (paccount p))
|
||||
where
|
||||
showstatus p = if pstatus p == Cleared then "* " else ""
|
||||
w = maximum $ map (strWidth . paccount) ps
|
||||
showamt =
|
||||
padLeftWide 12 . showMixedAmount
|
||||
|
||||
tests_postingAsLines = [
|
||||
"postingAsLines" ~: do
|
||||
|
||||
@ -1,17 +1,46 @@
|
||||
# ALl output should preserve alignment etc. when showing wide characters.
|
||||
# XXX For a better test, the sample journals should have commodity symbols.
|
||||
# XXX How to test hledger-ui ?
|
||||
# ALl output should preserve alignment etc. when showing wide characters
|
||||
# (in apps and fonts which render wide chars as exactly double width).
|
||||
#
|
||||
# XXX add commodity symbols and prices to the sample journals
|
||||
# XXX how to test hledger-ui ?
|
||||
|
||||
# 1.
|
||||
hledger -f chinese.journal print
|
||||
# hledger -f chinese.journal print
|
||||
# >>>
|
||||
# 2014/01/01 transaction 1
|
||||
# 㐀 1
|
||||
# 㐀:㐁 -1
|
||||
#
|
||||
# 2014/01/02 transaction 2
|
||||
# 㐀:㐁:㐂 1
|
||||
# 㐀:㐁:㐂:㐃 -1
|
||||
#
|
||||
# 2014/01/03 transaction 3
|
||||
# 㐀:㐁:㐂:㐃:㐄 1
|
||||
# 㐀 -1
|
||||
#
|
||||
# >>>=0
|
||||
hledger -f - print
|
||||
<<<
|
||||
2014-01-01 transaction 1
|
||||
㐀 㐃㐃1 @ 2 㐂㐂㐂㐂㐂㐂㐂㐂㐂㐂㐂
|
||||
㐀:㐁 ;㐃㐃-1
|
||||
|
||||
2014-01-02 transaction 2
|
||||
㐀:㐁:㐂 USD 1
|
||||
㐀:㐁:㐂:㐃 EUR -1
|
||||
|
||||
2014-01-03 transaction 3
|
||||
㐀:㐁:㐂:㐃:㐄 1
|
||||
㐀 -1
|
||||
>>>
|
||||
2014/01/01 transaction 1
|
||||
㐀 1
|
||||
㐀:㐁 -1
|
||||
㐀 㐃㐃1 @ 2 㐂㐂㐂㐂㐂㐂㐂㐂㐂㐂㐂
|
||||
㐀:㐁 -2 㐂㐂㐂㐂㐂㐂㐂㐂㐂㐂㐂 ; 㐃㐃-1
|
||||
|
||||
2014/01/02 transaction 2
|
||||
㐀:㐁:㐂 1
|
||||
㐀:㐁:㐂:㐃 -1
|
||||
㐀:㐁:㐂 USD 1 @@ EUR 1
|
||||
㐀:㐁:㐂:㐃 EUR -1
|
||||
|
||||
2014/01/03 transaction 3
|
||||
㐀:㐁:㐂:㐃:㐄 1
|
||||
|
||||
@ -15,7 +15,7 @@ hledger -f- print
|
||||
b
|
||||
>>>
|
||||
2010/04/05 x
|
||||
a 10 "DE 0002 635307"
|
||||
a 10 "DE 0002 635307"
|
||||
b -10 "DE 0002 635307"
|
||||
|
||||
>>>=0
|
||||
|
||||
@ -10,7 +10,7 @@ hledger -f - print
|
||||
>>>
|
||||
2010/01/01 x
|
||||
A 55.3653 C @ 30.92189512 D
|
||||
A -1712 D
|
||||
A -1712 D
|
||||
|
||||
>>>=0
|
||||
|
||||
@ -140,7 +140,7 @@ hledger -f- print
|
||||
2015/01/01
|
||||
c C 10.00 @ D 15.2381
|
||||
c C 11.00 @ D 15.2381
|
||||
d D -320.00
|
||||
d D -320.00
|
||||
|
||||
>>>=0
|
||||
|
||||
@ -157,6 +157,6 @@ hledger -f- print
|
||||
2015/01/01
|
||||
e E 10.0000 @ F 15.2380952
|
||||
e E 11.0000 @ F 15.2380952
|
||||
f F -320.000
|
||||
f F -320.000
|
||||
|
||||
>>>=0
|
||||
|
||||
@ -85,7 +85,7 @@ hledger -f - print
|
||||
>>>
|
||||
2002/09/30 * 1a1a6305d06ce4b284dba0d267c23f69d70c20be
|
||||
c56a21d23a6535184e7152ee138c28974f14280c 866.231000 GGGGG @@ $17,783.72
|
||||
a35e82730cf91569c302b313780e5895f75a62b9 $-17,783.72
|
||||
a35e82730cf91569c302b313780e5895f75a62b9 $-17,783.72
|
||||
|
||||
>>>=0
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user