doc: document new --pivot
[ci skip]
This commit is contained in:
parent
e51bb6944a
commit
91dbeedee4
@ -147,12 +147,8 @@ m4_define({{_reportingoptions_}}, {{
|
|||||||
: convert amounts to their cost at transaction time
|
: convert amounts to their cost at transaction time
|
||||||
(using the [transaction price](journal.html#transaction-prices), if any)
|
(using the [transaction price](journal.html#transaction-prices), if any)
|
||||||
|
|
||||||
`--pivot TAG`
|
`--pivot TAGNAME`
|
||||||
: will transform the journal before any other processing by replacing
|
: organize reports by some tag's value instead of by account
|
||||||
the account name of every posting having the tag TAG with content VALUE
|
|
||||||
by the account name "TAG:VALUE". The TAG will only match if it is a full-length match.
|
|
||||||
The pivot will only happen if the TAG is on a posting, not if it is on the transaction.
|
|
||||||
If the tag value is a multi:level:account:name the new account name will be "TAG:multi:level:account:name".
|
|
||||||
|
|
||||||
`--anon`
|
`--anon`
|
||||||
: show anonymized accounts and payees
|
: show anonymized accounts and payees
|
||||||
|
|||||||
@ -617,7 +617,11 @@ A \f[I]tag\f[] is a word followed by a full colon inside a transaction
|
|||||||
or posting comment.
|
or posting comment.
|
||||||
You can write multiple tags, comma separated.
|
You can write multiple tags, comma separated.
|
||||||
Eg: \f[C];\ a\ comment\ containing\ sometag:,\ anothertag:\f[].
|
Eg: \f[C];\ a\ comment\ containing\ sometag:,\ anothertag:\f[].
|
||||||
You can search for tags with the \f[C]tag:\f[] query.
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
You can search for tags with the \f[C]tag:\f[] query, or pivot on them
|
||||||
|
with \f[C]\-\-pivot\ TAG\f[].
|
||||||
.PP
|
.PP
|
||||||
A tag can also have a value, which is any text between the colon and the
|
A tag can also have a value, which is any text between the colon and the
|
||||||
next comma or newline, excluding leading/trailing whitespace.
|
next comma or newline, excluding leading/trailing whitespace.
|
||||||
@ -639,6 +643,24 @@ posting\-tag):
|
|||||||
.PP
|
.PP
|
||||||
Tags are like Ledger\[aq]s metadata feature, except hledger\[aq]s tag
|
Tags are like Ledger\[aq]s metadata feature, except hledger\[aq]s tag
|
||||||
values are simple strings.
|
values are simple strings.
|
||||||
|
.SS Implicit tags
|
||||||
|
.PP
|
||||||
|
Some predefined "implicit" tags are also provided:
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]code\f[] \- the transaction\[aq]s code field
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]description\f[] \- the transaction\[aq]s description
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]payee\f[] \- the part of description before \f[C]|\f[], or all of
|
||||||
|
it
|
||||||
|
.IP \[bu] 2
|
||||||
|
\f[C]note\f[] \- the part of description after \f[C]|\f[], or all of it
|
||||||
|
.PP
|
||||||
|
\f[C]payee\f[] and \f[C]note\f[] support descriptions written in a
|
||||||
|
special \f[C]PAYEE\ |\ NOTE\f[] format, accessing the parts before and
|
||||||
|
after the pipe character respectively.
|
||||||
|
For descriptions not containing a pipe character they are the same as
|
||||||
|
\f[C]description\f[].
|
||||||
.SS Directives
|
.SS Directives
|
||||||
.SS Account aliases
|
.SS Account aliases
|
||||||
.PP
|
.PP
|
||||||
|
|||||||
@ -640,8 +640,9 @@ File: hledger_journal.5.info, Node: Tags, Next: Directives, Prev: Comments,
|
|||||||
|
|
||||||
A _tag_ is a word followed by a full colon inside a transaction or
|
A _tag_ is a word followed by a full colon inside a transaction or
|
||||||
posting comment. You can write multiple tags, comma separated. Eg: `; a
|
posting comment. You can write multiple tags, comma separated. Eg: `; a
|
||||||
comment containing sometag:, anothertag:'. You can search for tags with
|
comment containing sometag:, anothertag:'.
|
||||||
the `tag:' query.
|
You can search for tags with the `tag:' query, or pivot on them with
|
||||||
|
`--pivot TAG'.
|
||||||
|
|
||||||
A tag can also have a value, which is any text between the colon and
|
A tag can also have a value, which is any text between the colon and
|
||||||
the next comma or newline, excluding leading/trailing whitespace. (So
|
the next comma or newline, excluding leading/trailing whitespace. (So
|
||||||
@ -660,6 +661,31 @@ and the posting has four (A, TAG2, third-tag, posting-tag):
|
|||||||
Tags are like Ledger's metadata feature, except hledger's tag values
|
Tags are like Ledger's metadata feature, except hledger's tag values
|
||||||
are simple strings.
|
are simple strings.
|
||||||
|
|
||||||
|
* Menu:
|
||||||
|
|
||||||
|
* Implicit tags::
|
||||||
|
|
||||||
|
|
||||||
|
File: hledger_journal.5.info, Node: Implicit tags, Up: Tags
|
||||||
|
|
||||||
|
1.10.1 Implicit tags
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Some predefined "implicit" tags are also provided:
|
||||||
|
|
||||||
|
* `code' - the transaction's code field
|
||||||
|
|
||||||
|
* `description' - the transaction's description
|
||||||
|
|
||||||
|
* `payee' - the part of description before `|', or all of it
|
||||||
|
|
||||||
|
* `note' - the part of description after `|', or all of it
|
||||||
|
|
||||||
|
`payee' and `note' support descriptions written in a special `PAYEE
|
||||||
|
| NOTE' format, accessing the parts before and after the pipe character
|
||||||
|
respectively. For descriptions not containing a pipe character they are
|
||||||
|
the same as `description'.
|
||||||
|
|
||||||
|
|
||||||
File: hledger_journal.5.info, Node: Directives, Prev: Tags, Up: FILE FORMAT
|
File: hledger_journal.5.info, Node: Directives, Prev: Tags, Up: FILE FORMAT
|
||||||
|
|
||||||
@ -1025,33 +1051,35 @@ Node: Comments21085
|
|||||||
Ref: #comments21207
|
Ref: #comments21207
|
||||||
Node: Tags22319
|
Node: Tags22319
|
||||||
Ref: #tags22439
|
Ref: #tags22439
|
||||||
Node: Directives23362
|
Node: Implicit tags23427
|
||||||
Ref: #directives23477
|
Ref: #implicit-tags23535
|
||||||
Node: Account aliases23670
|
Node: Directives24054
|
||||||
Ref: #account-aliases23816
|
Ref: #directives24169
|
||||||
Node: Basic aliases24418
|
Node: Account aliases24362
|
||||||
Ref: #basic-aliases24563
|
Ref: #account-aliases24508
|
||||||
Node: Regex aliases25251
|
Node: Basic aliases25110
|
||||||
Ref: #regex-aliases25421
|
Ref: #basic-aliases25255
|
||||||
Node: Multiple aliases26191
|
Node: Regex aliases25943
|
||||||
Ref: #multiple-aliases26365
|
Ref: #regex-aliases26113
|
||||||
Node: end aliases26861
|
Node: Multiple aliases26883
|
||||||
Ref: #end-aliases27003
|
Ref: #multiple-aliases27057
|
||||||
Node: account directive27105
|
Node: end aliases27553
|
||||||
Ref: #account-directive27287
|
Ref: #end-aliases27695
|
||||||
Node: apply account directive27583
|
Node: account directive27797
|
||||||
Ref: #apply-account-directive27781
|
Ref: #account-directive27979
|
||||||
Node: Multi-line comments28441
|
Node: apply account directive28275
|
||||||
Ref: #multi-line-comments28633
|
Ref: #apply-account-directive28473
|
||||||
Node: commodity directive28760
|
Node: Multi-line comments29133
|
||||||
Ref: #commodity-directive28946
|
Ref: #multi-line-comments29325
|
||||||
Node: Default commodity29819
|
Node: commodity directive29452
|
||||||
Ref: #default-commodity29994
|
Ref: #commodity-directive29638
|
||||||
Node: Default year30530
|
Node: Default commodity30511
|
||||||
Ref: #default-year30697
|
Ref: #default-commodity30686
|
||||||
Node: Including other files31120
|
Node: Default year31222
|
||||||
Ref: #including-other-files31279
|
Ref: #default-year31389
|
||||||
Node: EDITOR SUPPORT31675
|
Node: Including other files31812
|
||||||
Ref: #editor-support31795
|
Ref: #including-other-files31971
|
||||||
|
Node: EDITOR SUPPORT32367
|
||||||
|
Ref: #editor-support32487
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
@ -504,8 +504,9 @@ end comment
|
|||||||
|
|
||||||
A *tag* is a word followed by a full colon inside a transaction or
|
A *tag* is a word followed by a full colon inside a transaction or
|
||||||
posting [comment](#comments). You can write multiple tags, comma
|
posting [comment](#comments). You can write multiple tags, comma
|
||||||
separated. Eg: `; a comment containing sometag:, anothertag:`. You can search for tags
|
separated. Eg: `; a comment containing sometag:, anothertag:`.
|
||||||
with the [`tag:` query](manual#queries).
|
You can search for tags with the [`tag:` query](/hledger.html#queries),
|
||||||
|
or pivot on them with [`--pivot TAG`](/hledger.html#pivoting).
|
||||||
|
|
||||||
A tag can also have a value, which is any text between the colon and
|
A tag can also have a value, which is any text between the colon and
|
||||||
the next comma or newline, excluding leading/trailing whitespace.
|
the next comma or newline, excluding leading/trailing whitespace.
|
||||||
@ -526,6 +527,19 @@ Tags are like Ledger's
|
|||||||
[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata)
|
[metadata](http://ledger-cli.org/3.0/doc/ledger3.html#Metadata)
|
||||||
feature, except hledger's tag values are simple strings.
|
feature, except hledger's tag values are simple strings.
|
||||||
|
|
||||||
|
### Implicit tags
|
||||||
|
|
||||||
|
Some predefined "implicit" tags are also provided:
|
||||||
|
|
||||||
|
- `code` - the transaction's code field
|
||||||
|
- `description` - the transaction's description
|
||||||
|
- `payee` - the part of description before `|`, or all of it
|
||||||
|
- `note` - the part of description after `|`, or all of it
|
||||||
|
|
||||||
|
`payee` and `note` support descriptions written in a special `PAYEE | NOTE` format,
|
||||||
|
accessing the parts before and after the pipe character respectively.
|
||||||
|
For descriptions not containing a pipe character they are the same as `description`.
|
||||||
|
|
||||||
## Directives
|
## Directives
|
||||||
|
|
||||||
### Account aliases
|
### Account aliases
|
||||||
|
|||||||
@ -470,8 +470,9 @@ FILE FORMAT
|
|||||||
Tags
|
Tags
|
||||||
A tag is a word followed by a full colon inside a transaction or post-
|
A tag is a word followed by a full colon inside a transaction or post-
|
||||||
ing comment. You can write multiple tags, comma separated. Eg:
|
ing comment. You can write multiple tags, comma separated. Eg:
|
||||||
; a comment containing sometag:, anothertag:. You can search for tags
|
; a comment containing sometag:, anothertag:.
|
||||||
with the tag: query.
|
You can search for tags with the tag: query, or pivot on them with
|
||||||
|
--pivot TAG.
|
||||||
|
|
||||||
A tag can also have a value, which is any text between the colon and
|
A tag can also have a value, which is any text between the colon and
|
||||||
the next comma or newline, excluding leading/trailing whitespace. (So
|
the next comma or newline, excluding leading/trailing whitespace. (So
|
||||||
@ -489,9 +490,25 @@ FILE FORMAT
|
|||||||
Tags are like Ledger's metadata feature, except hledger's tag values
|
Tags are like Ledger's metadata feature, except hledger's tag values
|
||||||
are simple strings.
|
are simple strings.
|
||||||
|
|
||||||
|
Implicit tags
|
||||||
|
Some predefined "implicit" tags are also provided:
|
||||||
|
|
||||||
|
o code - the transaction's code field
|
||||||
|
|
||||||
|
o description - the transaction's description
|
||||||
|
|
||||||
|
o payee - the part of description before |, or all of it
|
||||||
|
|
||||||
|
o note - the part of description after |, or all of it
|
||||||
|
|
||||||
|
payee and note support descriptions written in a special PAYEE | NOTE
|
||||||
|
format, accessing the parts before and after the pipe character respec-
|
||||||
|
tively. For descriptions not containing a pipe character they are the
|
||||||
|
same as description.
|
||||||
|
|
||||||
Directives
|
Directives
|
||||||
Account aliases
|
Account aliases
|
||||||
You can define aliases which rewrite your account names (after reading
|
You can define aliases which rewrite your account names (after reading
|
||||||
the journal, before generating reports). hledger's account aliases can
|
the journal, before generating reports). hledger's account aliases can
|
||||||
be useful for:
|
be useful for:
|
||||||
|
|
||||||
@ -508,8 +525,8 @@ FILE FORMAT
|
|||||||
See also How to use account aliases.
|
See also How to use account aliases.
|
||||||
|
|
||||||
Basic aliases
|
Basic aliases
|
||||||
To set an account alias, use the alias directive in your journal file.
|
To set an account alias, use the alias directive in your journal file.
|
||||||
This affects all subsequent journal entries in the current file or its
|
This affects all subsequent journal entries in the current file or its
|
||||||
included files. The spaces around the = are optional:
|
included files. The spaces around the = are optional:
|
||||||
|
|
||||||
alias OLD = NEW
|
alias OLD = NEW
|
||||||
@ -517,53 +534,53 @@ FILE FORMAT
|
|||||||
Or, you can use the --alias 'OLD=NEW' option on the command line. This
|
Or, you can use the --alias 'OLD=NEW' option on the command line. This
|
||||||
affects all entries. It's useful for trying out aliases interactively.
|
affects all entries. It's useful for trying out aliases interactively.
|
||||||
|
|
||||||
OLD and NEW are full account names. hledger will replace any occur-
|
OLD and NEW are full account names. hledger will replace any occur-
|
||||||
rence of the old account name with the new one. Subaccounts are also
|
rence of the old account name with the new one. Subaccounts are also
|
||||||
affected. Eg:
|
affected. Eg:
|
||||||
|
|
||||||
alias checking = assets:bank:wells fargo:checking
|
alias checking = assets:bank:wells fargo:checking
|
||||||
# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
|
# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
|
||||||
|
|
||||||
Regex aliases
|
Regex aliases
|
||||||
There is also a more powerful variant that uses a regular expression,
|
There is also a more powerful variant that uses a regular expression,
|
||||||
indicated by the forward slashes. (This was the default behaviour in
|
indicated by the forward slashes. (This was the default behaviour in
|
||||||
hledger 0.24-0.25):
|
hledger 0.24-0.25):
|
||||||
|
|
||||||
alias /REGEX/ = REPLACEMENT
|
alias /REGEX/ = REPLACEMENT
|
||||||
|
|
||||||
or --alias '/REGEX/=REPLACEMENT'.
|
or --alias '/REGEX/=REPLACEMENT'.
|
||||||
|
|
||||||
REGEX is a case-insensitive regular expression. Anywhere it matches
|
REGEX is a case-insensitive regular expression. Anywhere it matches
|
||||||
inside an account name, the matched part will be replaced by REPLACE-
|
inside an account name, the matched part will be replaced by REPLACE-
|
||||||
MENT. If REGEX contains parenthesised match groups, these can be ref-
|
MENT. If REGEX contains parenthesised match groups, these can be ref-
|
||||||
erenced by the usual numeric backreferences in REPLACEMENT. Note, cur-
|
erenced by the usual numeric backreferences in REPLACEMENT. Note, cur-
|
||||||
rently regular expression aliases may cause noticeable slow-downs.
|
rently regular expression aliases may cause noticeable slow-downs.
|
||||||
(And if you use Ledger on your hledger file, they will be ignored.) Eg:
|
(And if you use Ledger on your hledger file, they will be ignored.) Eg:
|
||||||
|
|
||||||
alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
|
alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
|
||||||
# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
|
# rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
|
||||||
|
|
||||||
Multiple aliases
|
Multiple aliases
|
||||||
You can define as many aliases as you like using directives or com-
|
You can define as many aliases as you like using directives or com-
|
||||||
mand-line options. Aliases are recursive - each alias sees the result
|
mand-line options. Aliases are recursive - each alias sees the result
|
||||||
of applying previous ones. (This is different from Ledger, where
|
of applying previous ones. (This is different from Ledger, where
|
||||||
aliases are non-recursive by default). Aliases are applied in the fol-
|
aliases are non-recursive by default). Aliases are applied in the fol-
|
||||||
lowing order:
|
lowing order:
|
||||||
|
|
||||||
1. alias directives, most recently seen first (recent directives take
|
1. alias directives, most recently seen first (recent directives take
|
||||||
precedence over earlier ones; directives not yet seen are ignored)
|
precedence over earlier ones; directives not yet seen are ignored)
|
||||||
|
|
||||||
2. alias options, in the order they appear on the command line
|
2. alias options, in the order they appear on the command line
|
||||||
|
|
||||||
end aliases
|
end aliases
|
||||||
You can clear (forget) all currently defined aliases with the
|
You can clear (forget) all currently defined aliases with the
|
||||||
end aliases directive:
|
end aliases directive:
|
||||||
|
|
||||||
end aliases
|
end aliases
|
||||||
|
|
||||||
account directive
|
account directive
|
||||||
The account directive predefines account names, as in Ledger and Bean-
|
The account directive predefines account names, as in Ledger and Bean-
|
||||||
count. This may be useful for your own documentation; hledger doesn't
|
count. This may be useful for your own documentation; hledger doesn't
|
||||||
make use of it yet.
|
make use of it yet.
|
||||||
|
|
||||||
; account ACCT
|
; account ACCT
|
||||||
@ -578,8 +595,8 @@ FILE FORMAT
|
|||||||
; etc.
|
; etc.
|
||||||
|
|
||||||
apply account directive
|
apply account directive
|
||||||
You can specify a parent account which will be prepended to all
|
You can specify a parent account which will be prepended to all
|
||||||
accounts within a section of the journal. Use the apply account and
|
accounts within a section of the journal. Use the apply account and
|
||||||
end apply account directives like so:
|
end apply account directives like so:
|
||||||
|
|
||||||
apply account home
|
apply account home
|
||||||
@ -596,7 +613,7 @@ FILE FORMAT
|
|||||||
home:food $10
|
home:food $10
|
||||||
home:cash $-10
|
home:cash $-10
|
||||||
|
|
||||||
If end apply account is omitted, the effect lasts to the end of the
|
If end apply account is omitted, the effect lasts to the end of the
|
||||||
file. Included files are also affected, eg:
|
file. Included files are also affected, eg:
|
||||||
|
|
||||||
apply account business
|
apply account business
|
||||||
@ -605,16 +622,16 @@ FILE FORMAT
|
|||||||
apply account personal
|
apply account personal
|
||||||
include personal.journal
|
include personal.journal
|
||||||
|
|
||||||
Prior to hledger 1.0, legacy account and end spellings were also sup-
|
Prior to hledger 1.0, legacy account and end spellings were also sup-
|
||||||
ported.
|
ported.
|
||||||
|
|
||||||
Multi-line comments
|
Multi-line comments
|
||||||
A line containing just comment starts a multi-line comment, and a line
|
A line containing just comment starts a multi-line comment, and a line
|
||||||
containing just end comment ends it. See comments.
|
containing just end comment ends it. See comments.
|
||||||
|
|
||||||
commodity directive
|
commodity directive
|
||||||
The commodity directive predefines commodities (currently this is just
|
The commodity directive predefines commodities (currently this is just
|
||||||
informational), and also it may define the display format for amounts
|
informational), and also it may define the display format for amounts
|
||||||
in this commodity (overriding the automatically inferred format).
|
in this commodity (overriding the automatically inferred format).
|
||||||
|
|
||||||
It may be written on a single line, like this:
|
It may be written on a single line, like this:
|
||||||
@ -626,8 +643,8 @@ FILE FORMAT
|
|||||||
; separating thousands with comma.
|
; separating thousands with comma.
|
||||||
commodity 1,000.0000 AAAA
|
commodity 1,000.0000 AAAA
|
||||||
|
|
||||||
or on multiple lines, using the "format" subdirective. In this case
|
or on multiple lines, using the "format" subdirective. In this case
|
||||||
the commodity symbol appears twice and should be the same in both
|
the commodity symbol appears twice and should be the same in both
|
||||||
places:
|
places:
|
||||||
|
|
||||||
; commodity SYMBOL
|
; commodity SYMBOL
|
||||||
@ -640,10 +657,10 @@ FILE FORMAT
|
|||||||
format INR 9,99,99,999.00
|
format INR 9,99,99,999.00
|
||||||
|
|
||||||
Default commodity
|
Default commodity
|
||||||
The D directive sets a default commodity (and display format), to be
|
The D directive sets a default commodity (and display format), to be
|
||||||
used for amounts without a commodity symbol (ie, plain numbers). (Note
|
used for amounts without a commodity symbol (ie, plain numbers). (Note
|
||||||
this differs from Ledger's default commodity directive.) The commodity
|
this differs from Ledger's default commodity directive.) The commodity
|
||||||
and display format will be applied to all subsequent commodity-less
|
and display format will be applied to all subsequent commodity-less
|
||||||
amounts, or until the next D directive.
|
amounts, or until the next D directive.
|
||||||
|
|
||||||
# commodity-less amounts should be treated as dollars
|
# commodity-less amounts should be treated as dollars
|
||||||
@ -655,8 +672,8 @@ FILE FORMAT
|
|||||||
b
|
b
|
||||||
|
|
||||||
Default year
|
Default year
|
||||||
You can set a default year to be used for subsequent dates which don't
|
You can set a default year to be used for subsequent dates which don't
|
||||||
specify a year. This is a line beginning with Y followed by the year.
|
specify a year. This is a line beginning with Y followed by the year.
|
||||||
Eg:
|
Eg:
|
||||||
|
|
||||||
Y2009 ; set default year to 2009
|
Y2009 ; set default year to 2009
|
||||||
@ -676,24 +693,24 @@ FILE FORMAT
|
|||||||
assets
|
assets
|
||||||
|
|
||||||
Including other files
|
Including other files
|
||||||
You can pull in the content of additional journal files by writing an
|
You can pull in the content of additional journal files by writing an
|
||||||
include directive, like this:
|
include directive, like this:
|
||||||
|
|
||||||
include path/to/file.journal
|
include path/to/file.journal
|
||||||
|
|
||||||
If the path does not begin with a slash, it is relative to the current
|
If the path does not begin with a slash, it is relative to the current
|
||||||
file. Glob patterns (*) are not currently supported.
|
file. Glob patterns (*) are not currently supported.
|
||||||
|
|
||||||
The include directive can only be used in journal files. It can
|
The include directive can only be used in journal files. It can
|
||||||
include journal, timeclock or timedot files, but not CSV files.
|
include journal, timeclock or timedot files, but not CSV files.
|
||||||
|
|
||||||
EDITOR SUPPORT
|
EDITOR SUPPORT
|
||||||
Add-on modes exist for various text editors, to make working with jour-
|
Add-on modes exist for various text editors, to make working with jour-
|
||||||
nal files easier. They add colour, navigation aids and helpful com-
|
nal files easier. They add colour, navigation aids and helpful com-
|
||||||
mands. For hledger users who edit the journal file directly (the
|
mands. For hledger users who edit the journal file directly (the
|
||||||
majority), using one of these modes is quite recommended.
|
majority), using one of these modes is quite recommended.
|
||||||
|
|
||||||
These were written with Ledger in mind, but also work with hledger
|
These were written with Ledger in mind, but also work with hledger
|
||||||
files:
|
files:
|
||||||
|
|
||||||
|
|
||||||
@ -710,7 +727,7 @@ EDITOR SUPPORT
|
|||||||
|
|
||||||
|
|
||||||
REPORTING BUGS
|
REPORTING BUGS
|
||||||
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
|
||||||
or hledger mail list)
|
or hledger mail list)
|
||||||
|
|
||||||
|
|
||||||
@ -724,7 +741,7 @@ COPYRIGHT
|
|||||||
|
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
|
||||||
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
|
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
|
||||||
dot(5), ledger(1)
|
dot(5), ledger(1)
|
||||||
|
|
||||||
|
|||||||
@ -208,15 +208,8 @@ price, if any)
|
|||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-pivot\ TAG\f[]
|
.B \f[C]\-\-pivot\ TAGNAME\f[]
|
||||||
will transform the journal before any other processing by replacing the
|
organize reports by some tag\[aq]s value instead of by account
|
||||||
account name of every posting having the tag TAG with content VALUE by
|
|
||||||
the account name "TAG:VALUE".
|
|
||||||
The TAG will only match if it is a full\-length match.
|
|
||||||
The pivot will only happen if the TAG is on a posting, not if it is on
|
|
||||||
the transaction.
|
|
||||||
If the tag value is a multi:level:account:name the new account name will
|
|
||||||
be "TAG:multi:level:account:name".
|
|
||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
|
|||||||
@ -142,14 +142,8 @@ the data.
|
|||||||
convert amounts to their cost at transaction time (using the
|
convert amounts to their cost at transaction time (using the
|
||||||
transaction price, if any)
|
transaction price, if any)
|
||||||
|
|
||||||
`--pivot TAG'
|
`--pivot TAGNAME'
|
||||||
will transform the journal before any other processing by
|
organize reports by some tag's value instead of by account
|
||||||
replacing the account name of every posting having the tag TAG
|
|
||||||
with content VALUE by the account name "TAG:VALUE". The TAG will
|
|
||||||
only match if it is a full-length match. The pivot will only
|
|
||||||
happen if the TAG is on a posting, not if it is on the
|
|
||||||
transaction. If the tag value is a multi:level:account:name the
|
|
||||||
new account name will be "TAG:multi:level:account:name".
|
|
||||||
|
|
||||||
`--anon'
|
`--anon'
|
||||||
show anonymized accounts and payees
|
show anonymized accounts and payees
|
||||||
@ -361,17 +355,17 @@ Tag Table:
|
|||||||
Node: Top88
|
Node: Top88
|
||||||
Node: OPTIONS823
|
Node: OPTIONS823
|
||||||
Ref: #options922
|
Ref: #options922
|
||||||
Node: KEYS4001
|
Node: KEYS3611
|
||||||
Ref: #keys4098
|
Ref: #keys3708
|
||||||
Node: SCREENS6668
|
Node: SCREENS6278
|
||||||
Ref: #screens6755
|
Ref: #screens6365
|
||||||
Node: Accounts screen6845
|
Node: Accounts screen6455
|
||||||
Ref: #accounts-screen6975
|
Ref: #accounts-screen6585
|
||||||
Node: Register screen9013
|
Node: Register screen8623
|
||||||
Ref: #register-screen9170
|
Ref: #register-screen8780
|
||||||
Node: Transaction screen11058
|
Node: Transaction screen10668
|
||||||
Ref: #transaction-screen11218
|
Ref: #transaction-screen10828
|
||||||
Node: Error screen12085
|
Node: Error screen11695
|
||||||
Ref: #error-screen12209
|
Ref: #error-screen11819
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
@ -136,14 +136,8 @@ OPTIONS
|
|||||||
convert amounts to their cost at transaction time (using the
|
convert amounts to their cost at transaction time (using the
|
||||||
transaction price, if any)
|
transaction price, if any)
|
||||||
|
|
||||||
--pivot TAG
|
--pivot TAGNAME
|
||||||
will transform the journal before any other processing by
|
organize reports by some tag's value instead of by account
|
||||||
replacing the account name of every posting having the tag TAG
|
|
||||||
with content VALUE by the account name "TAG:VALUE". The TAG
|
|
||||||
will only match if it is a full-length match. The pivot will
|
|
||||||
only happen if the TAG is on a posting, not if it is on the
|
|
||||||
transaction. If the tag value is a multi:level:account:name the
|
|
||||||
new account name will be "TAG:multi:level:account:name".
|
|
||||||
|
|
||||||
--anon show anonymized accounts and payees
|
--anon show anonymized accounts and payees
|
||||||
|
|
||||||
|
|||||||
@ -270,15 +270,8 @@ price, if any)
|
|||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-pivot\ TAG\f[]
|
.B \f[C]\-\-pivot\ TAGNAME\f[]
|
||||||
will transform the journal before any other processing by replacing the
|
organize reports by some tag\[aq]s value instead of by account
|
||||||
account name of every posting having the tag TAG with content VALUE by
|
|
||||||
the account name "TAG:VALUE".
|
|
||||||
The TAG will only match if it is a full\-length match.
|
|
||||||
The pivot will only happen if the TAG is on a posting, not if it is on
|
|
||||||
the transaction.
|
|
||||||
If the tag value is a multi:level:account:name the new account name will
|
|
||||||
be "TAG:multi:level:account:name".
|
|
||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
|
|||||||
@ -190,14 +190,8 @@ before options as shown above.
|
|||||||
convert amounts to their cost at transaction time (using the
|
convert amounts to their cost at transaction time (using the
|
||||||
transaction price, if any)
|
transaction price, if any)
|
||||||
|
|
||||||
`--pivot TAG'
|
`--pivot TAGNAME'
|
||||||
will transform the journal before any other processing by
|
organize reports by some tag's value instead of by account
|
||||||
replacing the account name of every posting having the tag TAG
|
|
||||||
with content VALUE by the account name "TAG:VALUE". The TAG will
|
|
||||||
only match if it is a full-length match. The pivot will only
|
|
||||||
happen if the TAG is on a posting, not if it is on the
|
|
||||||
transaction. If the tag value is a multi:level:account:name the
|
|
||||||
new account name will be "TAG:multi:level:account:name".
|
|
||||||
|
|
||||||
`--anon'
|
`--anon'
|
||||||
show anonymized accounts and payees
|
show anonymized accounts and payees
|
||||||
|
|||||||
@ -186,14 +186,8 @@ OPTIONS
|
|||||||
convert amounts to their cost at transaction time (using the
|
convert amounts to their cost at transaction time (using the
|
||||||
transaction price, if any)
|
transaction price, if any)
|
||||||
|
|
||||||
--pivot TAG
|
--pivot TAGNAME
|
||||||
will transform the journal before any other processing by
|
organize reports by some tag's value instead of by account
|
||||||
replacing the account name of every posting having the tag TAG
|
|
||||||
with content VALUE by the account name "TAG:VALUE". The TAG
|
|
||||||
will only match if it is a full-length match. The pivot will
|
|
||||||
only happen if the TAG is on a posting, not if it is on the
|
|
||||||
transaction. If the tag value is a multi:level:account:name the
|
|
||||||
new account name will be "TAG:multi:level:account:name".
|
|
||||||
|
|
||||||
--anon show anonymized accounts and payees
|
--anon show anonymized accounts and payees
|
||||||
|
|
||||||
|
|||||||
@ -120,7 +120,7 @@ inputflags = [
|
|||||||
,flagReq ["rules-file"] (\s opts -> Right $ setopt "rules-file" s opts) "RFILE" "CSV conversion rules file (default: FILE.rules)"
|
,flagReq ["rules-file"] (\s opts -> Right $ setopt "rules-file" s opts) "RFILE" "CSV conversion rules file (default: FILE.rules)"
|
||||||
,flagReq ["alias"] (\s opts -> Right $ setopt "alias" s opts) "OLD=NEW" "display accounts named OLD as NEW"
|
,flagReq ["alias"] (\s opts -> Right $ setopt "alias" s opts) "OLD=NEW" "display accounts named OLD as NEW"
|
||||||
,flagNone ["ignore-assertions","I"] (setboolopt "ignore-assertions") "ignore any balance assertions in the journal"
|
,flagNone ["ignore-assertions","I"] (setboolopt "ignore-assertions") "ignore any balance assertions in the journal"
|
||||||
,flagReq ["pivot"] (\s opts -> Right $ setopt "pivot" s opts) "TAG" "Replace the accounts of postings with TAG by TAG:<value>"
|
,flagReq ["pivot"] (\s opts -> Right $ setopt "pivot" s opts) "TAGNAME" "organize reports by some tag's value, not by account"
|
||||||
]
|
]
|
||||||
|
|
||||||
-- | Common report-related flags: --period, --cost, etc.
|
-- | Common report-related flags: --period, --cost, etc.
|
||||||
|
|||||||
@ -68,20 +68,3 @@ $ hledger reg 'assets:some bank:checking' # show postings to/from this checking
|
|||||||
$ hledger print desc:shop # show transactions with shop in the description
|
$ hledger print desc:shop # show transactions with shop in the description
|
||||||
$ hledger activity -W # show transaction counts per week as a bar chart
|
$ hledger activity -W # show transaction counts per week as a bar chart
|
||||||
```
|
```
|
||||||
|
|
||||||
With the journal
|
|
||||||
|
|
||||||
```journal
|
|
||||||
2016/02/16 Member Fee Payment John Doe
|
|
||||||
assets:bank account 2 EUR
|
|
||||||
income:member fees -2 EUR
|
|
||||||
; member: John Doe
|
|
||||||
```
|
|
||||||
|
|
||||||
the --pivot comand will output the following:
|
|
||||||
|
|
||||||
```shells
|
|
||||||
$ hledger bal --pivot member
|
|
||||||
2 EUR assets:bank account
|
|
||||||
-2 EUR member:John Doe
|
|
||||||
```
|
|
||||||
|
|||||||
@ -147,27 +147,6 @@ $\ hledger\ print\ desc:shop\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ show\ transacti
|
|||||||
$\ hledger\ activity\ \-W\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ show\ transaction\ counts\ per\ week\ as\ a\ bar\ chart
|
$\ hledger\ activity\ \-W\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ show\ transaction\ counts\ per\ week\ as\ a\ bar\ chart
|
||||||
\f[]
|
\f[]
|
||||||
.fi
|
.fi
|
||||||
.PP
|
|
||||||
With the journal
|
|
||||||
.IP
|
|
||||||
.nf
|
|
||||||
\f[C]
|
|
||||||
2016/02/16\ Member\ Fee\ Payment\ John\ Doe
|
|
||||||
\ \ \ \ assets:bank\ account\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 2\ EUR
|
|
||||||
\ \ \ \ income:member\ fees\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \-2\ EUR
|
|
||||||
\ \ \ \ \ \ ;\ member:\ John\ Doe
|
|
||||||
\f[]
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
the \-\-pivot comand will output the following:
|
|
||||||
.IP
|
|
||||||
.nf
|
|
||||||
\f[C]
|
|
||||||
$\ hledger\ bal\ \-\-pivot\ member
|
|
||||||
\ \ \ \ 2\ EUR\ \ assets:bank\ account
|
|
||||||
\ \ \ \-2\ EUR\ \ member:John\ Doe
|
|
||||||
\f[]
|
|
||||||
.fi
|
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
.PP
|
.PP
|
||||||
To see general usage and the command list: \f[C]hledger\ \-h\f[] or just
|
To see general usage and the command list: \f[C]hledger\ \-h\f[] or just
|
||||||
@ -378,15 +357,8 @@ price, if any)
|
|||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
.B \f[C]\-\-pivot\ TAG\f[]
|
.B \f[C]\-\-pivot\ TAGNAME\f[]
|
||||||
will transform the journal before any other processing by replacing the
|
organize reports by some tag\[aq]s value instead of by account
|
||||||
account name of every posting having the tag TAG with content VALUE by
|
|
||||||
the account name "TAG:VALUE".
|
|
||||||
The TAG will only match if it is a full\-length match.
|
|
||||||
The pivot will only happen if the TAG is on a posting, not if it is on
|
|
||||||
the transaction.
|
|
||||||
If the tag value is a multi:level:account:name the new account name will
|
|
||||||
be "TAG:multi:level:account:name".
|
|
||||||
.RS
|
.RS
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
@ -498,12 +470,6 @@ balance assertions will not see any account balances from previous files
|
|||||||
.PP
|
.PP
|
||||||
If you need those, either use the include directive, or concatenate the
|
If you need those, either use the include directive, or concatenate the
|
||||||
files, eg: \f[C]cat\ a.journal\ b.journal\ |\ hledger\ \-f\-\ CMD\f[].
|
files, eg: \f[C]cat\ a.journal\ b.journal\ |\ hledger\ \-f\-\ CMD\f[].
|
||||||
.SS Depth limiting
|
|
||||||
.PP
|
|
||||||
With the \f[C]\-\-depth\ N\f[] option, commands like account, balance
|
|
||||||
and register will show only the uppermost accounts in the account tree,
|
|
||||||
down to level N.
|
|
||||||
Use this when you want a summary with less detail.
|
|
||||||
.SS Smart dates
|
.SS Smart dates
|
||||||
.PP
|
.PP
|
||||||
hledger\[aq]s user interfaces accept a flexible "smart date" syntax
|
hledger\[aq]s user interfaces accept a flexible "smart date" syntax
|
||||||
@ -789,6 +755,91 @@ Group postings from start of wednesday to end of next tuesday (N is
|
|||||||
start date and exclusive end date):
|
start date and exclusive end date):
|
||||||
.PP
|
.PP
|
||||||
\f[C]hledger\ register\ checking\ \-p\ "every\ 3rd\ day\ of\ week"\f[]
|
\f[C]hledger\ register\ checking\ \-p\ "every\ 3rd\ day\ of\ week"\f[]
|
||||||
|
.SS Depth limiting
|
||||||
|
.PP
|
||||||
|
With the \f[C]\-\-depth\ N\f[] option, commands like account, balance
|
||||||
|
and register will show only the uppermost accounts in the account tree,
|
||||||
|
down to level N.
|
||||||
|
Use this when you want a summary with less detail.
|
||||||
|
.SS Pivoting
|
||||||
|
.PP
|
||||||
|
Normally hledger sums amounts, and organizes them in a hierarchy, based
|
||||||
|
on account name.
|
||||||
|
The \f[C]\-\-pivot\ TAGNAME\f[] option causes it to sum and organize
|
||||||
|
hierarchy based on some other field instead.
|
||||||
|
.PP
|
||||||
|
TAGNAME is the full, case\-insensitive name of a tag you have defined,
|
||||||
|
or one of the built\-in implicit tags (like \f[C]code\f[] or
|
||||||
|
\f[C]payee\f[]).
|
||||||
|
As with account names, when tag values have
|
||||||
|
\f[C]multiple:colon\-separated:parts\f[] hledger will build hierarchy,
|
||||||
|
displayed in tree\-mode reports, summarisable with a depth limit, and so
|
||||||
|
on.
|
||||||
|
.PP
|
||||||
|
\f[C]\-\-pivot\f[] affects all reports, and is one of those options you
|
||||||
|
can write before the command name if you wish.
|
||||||
|
You can think of hledger transforming the journal before any other
|
||||||
|
processing, replacing every posting\[aq]s account name with the value of
|
||||||
|
the specified tag on that posting, inheriting it from the transaction or
|
||||||
|
using a blank value if it\[aq]s not present.
|
||||||
|
.PP
|
||||||
|
An example:
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
2016/02/16\ Member\ Fee\ Payment
|
||||||
|
\ \ \ \ assets:bank\ account\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 2\ EUR
|
||||||
|
\ \ \ \ income:member\ fees\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \-2\ EUR\ \ ;\ member:\ John\ Doe
|
||||||
|
\f[]
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Normal balance report showing account names:
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
$\ hledger\ balance
|
||||||
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 2\ EUR\ \ assets:bank\ account
|
||||||
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \-2\ EUR\ \ income:member\ fees
|
||||||
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
||||||
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0
|
||||||
|
\f[]
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Pivoted balance report, using member: tag values instead:
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
$\ hledger\ balance\ \-\-pivot\ member
|
||||||
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 2\ EUR
|
||||||
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \-2\ EUR\ \ John\ Doe
|
||||||
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
||||||
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0
|
||||||
|
\f[]
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
One way to show only amounts with a member: value (using a query,
|
||||||
|
described below):
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
$\ hledger\ balance\ \-\-pivot\ member\ tag:member=.
|
||||||
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \-2\ EUR\ \ John\ Doe
|
||||||
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
||||||
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \-2\ EUR
|
||||||
|
\f[]
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Another way (the acct: query matches against the pivoted "account
|
||||||
|
name"):
|
||||||
|
.IP
|
||||||
|
.nf
|
||||||
|
\f[C]
|
||||||
|
$\ hledger\ balance\ \-\-pivot\ member\ acct:.
|
||||||
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \-2\ EUR\ \ John\ Doe
|
||||||
|
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
|
||||||
|
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \-2\ EUR
|
||||||
|
\f[]
|
||||||
|
.fi
|
||||||
.SS Regular expressions
|
.SS Regular expressions
|
||||||
.PP
|
.PP
|
||||||
hledger uses regular expressions in a number of places:
|
hledger uses regular expressions in a number of places:
|
||||||
|
|||||||
@ -117,21 +117,6 @@ $ hledger reg 'assets:some bank:checking' # show postings to/from this checking
|
|||||||
$ hledger print desc:shop # show transactions with shop in the description
|
$ hledger print desc:shop # show transactions with shop in the description
|
||||||
$ hledger activity -W # show transaction counts per week as a bar chart
|
$ hledger activity -W # show transaction counts per week as a bar chart
|
||||||
|
|
||||||
With the journal
|
|
||||||
|
|
||||||
|
|
||||||
2016/02/16 Member Fee Payment John Doe
|
|
||||||
assets:bank account 2 EUR
|
|
||||||
income:member fees -2 EUR
|
|
||||||
; member: John Doe
|
|
||||||
|
|
||||||
the -pivot comand will output the following:
|
|
||||||
|
|
||||||
|
|
||||||
$ hledger bal --pivot member
|
|
||||||
2 EUR assets:bank account
|
|
||||||
-2 EUR member:John Doe
|
|
||||||
|
|
||||||
|
|
||||||
File: hledger.1.info, Node: OPTIONS, Next: QUERIES, Prev: EXAMPLES, Up: Top
|
File: hledger.1.info, Node: OPTIONS, Next: QUERIES, Prev: EXAMPLES, Up: Top
|
||||||
|
|
||||||
@ -200,11 +185,12 @@ cur:\\\\$'.
|
|||||||
* General options::
|
* General options::
|
||||||
* Reporting options::
|
* Reporting options::
|
||||||
* Input files::
|
* Input files::
|
||||||
* Depth limiting::
|
|
||||||
* Smart dates::
|
* Smart dates::
|
||||||
* Report start & end date::
|
* Report start & end date::
|
||||||
* Report intervals::
|
* Report intervals::
|
||||||
* Period expressions::
|
* Period expressions::
|
||||||
|
* Depth limiting::
|
||||||
|
* Pivoting::
|
||||||
* Regular expressions::
|
* Regular expressions::
|
||||||
|
|
||||||
|
|
||||||
@ -304,14 +290,8 @@ Common reporting options, must be written after COMMAND.
|
|||||||
convert amounts to their cost at transaction time (using the
|
convert amounts to their cost at transaction time (using the
|
||||||
transaction price, if any)
|
transaction price, if any)
|
||||||
|
|
||||||
`--pivot TAG'
|
`--pivot TAGNAME'
|
||||||
will transform the journal before any other processing by
|
organize reports by some tag's value instead of by account
|
||||||
replacing the account name of every posting having the tag TAG
|
|
||||||
with content VALUE by the account name "TAG:VALUE". The TAG will
|
|
||||||
only match if it is a full-length match. The pivot will only
|
|
||||||
happen if the TAG is on a posting, not if it is on the
|
|
||||||
transaction. If the tag value is a multi:level:account:name the
|
|
||||||
new account name will be "TAG:multi:level:account:name".
|
|
||||||
|
|
||||||
`--anon'
|
`--anon'
|
||||||
show anonymized accounts and payees
|
show anonymized accounts and payees
|
||||||
@ -320,7 +300,7 @@ Common reporting options, must be written after COMMAND.
|
|||||||
last one takes precedence. Eg -p jan -p feb is equivalent to -p feb.
|
last one takes precedence. Eg -p jan -p feb is equivalent to -p feb.
|
||||||
|
|
||||||
|
|
||||||
File: hledger.1.info, Node: Input files, Next: Depth limiting, Prev: Reporting options, Up: OPTIONS
|
File: hledger.1.info, Node: Input files, Next: Smart dates, Prev: Reporting options, Up: OPTIONS
|
||||||
|
|
||||||
2.3 Input files
|
2.3 Input files
|
||||||
===============
|
===============
|
||||||
@ -380,19 +360,9 @@ as one big journal. There are some limitations with this:
|
|||||||
the files, eg: `cat a.journal b.journal | hledger -f- CMD'.
|
the files, eg: `cat a.journal b.journal | hledger -f- CMD'.
|
||||||
|
|
||||||
|
|
||||||
File: hledger.1.info, Node: Depth limiting, Next: Smart dates, Prev: Input files, Up: OPTIONS
|
File: hledger.1.info, Node: Smart dates, Next: Report start & end date, Prev: Input files, Up: OPTIONS
|
||||||
|
|
||||||
2.4 Depth limiting
|
2.4 Smart dates
|
||||||
==================
|
|
||||||
|
|
||||||
With the `--depth N' option, commands like account, balance and
|
|
||||||
register will show only the uppermost accounts in the account tree, down
|
|
||||||
to level N. Use this when you want a summary with less detail.
|
|
||||||
|
|
||||||
|
|
||||||
File: hledger.1.info, Node: Smart dates, Next: Report start & end date, Prev: Depth limiting, Up: OPTIONS
|
|
||||||
|
|
||||||
2.5 Smart dates
|
|
||||||
===============
|
===============
|
||||||
|
|
||||||
hledger's user interfaces accept a flexible "smart date" syntax (unlike
|
hledger's user interfaces accept a flexible "smart date" syntax (unlike
|
||||||
@ -415,7 +385,7 @@ omitted (defaulting to 1).
|
|||||||
|
|
||||||
File: hledger.1.info, Node: Report start & end date, Next: Report intervals, Prev: Smart dates, Up: OPTIONS
|
File: hledger.1.info, Node: Report start & end date, Next: Report intervals, Prev: Smart dates, Up: OPTIONS
|
||||||
|
|
||||||
2.6 Report start & end date
|
2.5 Report start & end date
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
Most hledger reports show the full span of time represented by the
|
Most hledger reports show the full span of time represented by the
|
||||||
@ -444,7 +414,7 @@ you need to write the date _after_ the last day you want to include.
|
|||||||
|
|
||||||
File: hledger.1.info, Node: Report intervals, Next: Period expressions, Prev: Report start & end date, Up: OPTIONS
|
File: hledger.1.info, Node: Report intervals, Next: Period expressions, Prev: Report start & end date, Up: OPTIONS
|
||||||
|
|
||||||
2.7 Report intervals
|
2.6 Report intervals
|
||||||
====================
|
====================
|
||||||
|
|
||||||
A report interval can be specified so that commands like register,
|
A report interval can be specified so that commands like register,
|
||||||
@ -455,9 +425,9 @@ complex intervals may be specified with a period expression. Report
|
|||||||
intervals can not be specified with a query, currently.
|
intervals can not be specified with a query, currently.
|
||||||
|
|
||||||
|
|
||||||
File: hledger.1.info, Node: Period expressions, Next: Regular expressions, Prev: Report intervals, Up: OPTIONS
|
File: hledger.1.info, Node: Period expressions, Next: Depth limiting, Prev: Report intervals, Up: OPTIONS
|
||||||
|
|
||||||
2.8 Period expressions
|
2.7 Period expressions
|
||||||
======================
|
======================
|
||||||
|
|
||||||
The `-p/--period' option accepts period expressions, a shorthand way of
|
The `-p/--period' option accepts period expressions, a shorthand way of
|
||||||
@ -530,10 +500,87 @@ start date and exclusive end date):
|
|||||||
`hledger register checking -p "every 3rd day of week"'
|
`hledger register checking -p "every 3rd day of week"'
|
||||||
|
|
||||||
|
|
||||||
File: hledger.1.info, Node: Regular expressions, Prev: Period expressions, Up: OPTIONS
|
File: hledger.1.info, Node: Depth limiting, Next: Pivoting, Prev: Period expressions, Up: OPTIONS
|
||||||
|
|
||||||
2.9 Regular expressions
|
2.8 Depth limiting
|
||||||
=======================
|
==================
|
||||||
|
|
||||||
|
With the `--depth N' option, commands like account, balance and
|
||||||
|
register will show only the uppermost accounts in the account tree, down
|
||||||
|
to level N. Use this when you want a summary with less detail.
|
||||||
|
|
||||||
|
|
||||||
|
File: hledger.1.info, Node: Pivoting, Next: Regular expressions, Prev: Depth limiting, Up: OPTIONS
|
||||||
|
|
||||||
|
2.9 Pivoting
|
||||||
|
============
|
||||||
|
|
||||||
|
Normally hledger sums amounts, and organizes them in a hierarchy, based
|
||||||
|
on account name. The `--pivot TAGNAME' option causes it to sum and
|
||||||
|
organize hierarchy based on some other field instead.
|
||||||
|
|
||||||
|
TAGNAME is the full, case-insensitive name of a tag you have
|
||||||
|
defined, or one of the built-in implicit tags (like `code' or `payee').
|
||||||
|
As with account names, when tag values have
|
||||||
|
`multiple:colon-separated:parts' hledger will build hierarchy,
|
||||||
|
displayed in tree-mode reports, summarisable with a depth limit, and so
|
||||||
|
on.
|
||||||
|
|
||||||
|
`--pivot' affects all reports, and is one of those options you can
|
||||||
|
write before the command name if you wish. You can think of hledger
|
||||||
|
transforming the journal before any other processing, replacing every
|
||||||
|
posting's account name with the value of the specified tag on that
|
||||||
|
posting, inheriting it from the transaction or using a blank value if
|
||||||
|
it's not present.
|
||||||
|
|
||||||
|
An example:
|
||||||
|
|
||||||
|
|
||||||
|
2016/02/16 Member Fee Payment
|
||||||
|
assets:bank account 2 EUR
|
||||||
|
income:member fees -2 EUR ; member: John Doe
|
||||||
|
|
||||||
|
Normal balance report showing account names:
|
||||||
|
|
||||||
|
|
||||||
|
$ hledger balance
|
||||||
|
2 EUR assets:bank account
|
||||||
|
-2 EUR income:member fees
|
||||||
|
--------------------
|
||||||
|
0
|
||||||
|
|
||||||
|
Pivoted balance report, using member: tag values instead:
|
||||||
|
|
||||||
|
|
||||||
|
$ hledger balance --pivot member
|
||||||
|
2 EUR
|
||||||
|
-2 EUR John Doe
|
||||||
|
--------------------
|
||||||
|
0
|
||||||
|
|
||||||
|
One way to show only amounts with a member: value (using a query,
|
||||||
|
described below):
|
||||||
|
|
||||||
|
|
||||||
|
$ hledger balance --pivot member tag:member=.
|
||||||
|
-2 EUR John Doe
|
||||||
|
--------------------
|
||||||
|
-2 EUR
|
||||||
|
|
||||||
|
Another way (the acct: query matches against the pivoted "account
|
||||||
|
name"):
|
||||||
|
|
||||||
|
|
||||||
|
$ hledger balance --pivot member acct:.
|
||||||
|
-2 EUR John Doe
|
||||||
|
--------------------
|
||||||
|
-2 EUR
|
||||||
|
|
||||||
|
|
||||||
|
File: hledger.1.info, Node: Regular expressions, Prev: Pivoting, Up: OPTIONS
|
||||||
|
|
||||||
|
2.10 Regular expressions
|
||||||
|
========================
|
||||||
|
|
||||||
hledger uses regular expressions in a number of places:
|
hledger uses regular expressions in a number of places:
|
||||||
|
|
||||||
@ -2282,101 +2329,103 @@ Tag Table:
|
|||||||
Node: Top82
|
Node: Top82
|
||||||
Node: EXAMPLES1873
|
Node: EXAMPLES1873
|
||||||
Ref: #examples1975
|
Ref: #examples1975
|
||||||
Node: OPTIONS3979
|
Node: OPTIONS3627
|
||||||
Ref: #options4083
|
Ref: #options3731
|
||||||
Node: General options6711
|
Node: General options6372
|
||||||
Ref: #general-options6840
|
Ref: #general-options6501
|
||||||
Node: Reporting options7611
|
Node: Reporting options7272
|
||||||
Ref: #reporting-options7764
|
Ref: #reporting-options7425
|
||||||
Node: Input files9587
|
Node: Input files8858
|
||||||
Ref: #input-files9727
|
Ref: #input-files8995
|
||||||
Node: Depth limiting11768
|
Node: Smart dates11036
|
||||||
Ref: #depth-limiting11908
|
Ref: #smart-dates11179
|
||||||
Node: Smart dates12109
|
Node: Report start & end date12176
|
||||||
Ref: #smart-dates12255
|
Ref: #report-start-end-date12348
|
||||||
Node: Report start & end date13252
|
Node: Report intervals13424
|
||||||
Ref: #report-start-end-date13424
|
Ref: #report-intervals13589
|
||||||
Node: Report intervals14500
|
Node: Period expressions13988
|
||||||
Ref: #report-intervals14665
|
Ref: #period-expressions14148
|
||||||
Node: Period expressions15064
|
Node: Depth limiting16483
|
||||||
Ref: #period-expressions15229
|
Ref: #depth-limiting16627
|
||||||
Node: Regular expressions17564
|
Node: Pivoting16828
|
||||||
Ref: #regular-expressions17706
|
Ref: #pivoting16961
|
||||||
Node: QUERIES19189
|
Node: Regular expressions18792
|
||||||
Ref: #queries19293
|
Ref: #regular-expressions18926
|
||||||
Node: COMMANDS22932
|
Node: QUERIES20409
|
||||||
Ref: #commands23046
|
Ref: #queries20513
|
||||||
Node: accounts23719
|
Node: COMMANDS24152
|
||||||
Ref: #accounts23819
|
Ref: #commands24266
|
||||||
Node: activity24801
|
Node: accounts24939
|
||||||
Ref: #activity24913
|
Ref: #accounts25039
|
||||||
Node: add25272
|
Node: activity26021
|
||||||
Ref: #add25373
|
Ref: #activity26133
|
||||||
Node: balance28036
|
Node: add26492
|
||||||
Ref: #balance28149
|
Ref: #add26593
|
||||||
Node: Flat mode31162
|
Node: balance29256
|
||||||
Ref: #flat-mode31289
|
Ref: #balance29369
|
||||||
Node: Depth limited balance reports31708
|
Node: Flat mode32382
|
||||||
Ref: #depth-limited-balance-reports31911
|
Ref: #flat-mode32509
|
||||||
Node: Multicolumn balance reports32332
|
Node: Depth limited balance reports32928
|
||||||
Ref: #multicolumn-balance-reports32534
|
Ref: #depth-limited-balance-reports33131
|
||||||
Node: Market value37183
|
Node: Multicolumn balance reports33552
|
||||||
Ref: #market-value37347
|
Ref: #multicolumn-balance-reports33754
|
||||||
Node: Custom balance output38648
|
Node: Market value38403
|
||||||
Ref: #custom-balance-output38821
|
Ref: #market-value38567
|
||||||
Node: Output destination40925
|
Node: Custom balance output39868
|
||||||
Ref: #output-destination41090
|
Ref: #custom-balance-output40041
|
||||||
Node: CSV output41360
|
Node: Output destination42145
|
||||||
Ref: #csv-output41479
|
Ref: #output-destination42310
|
||||||
Node: balancesheet41876
|
Node: CSV output42580
|
||||||
Ref: #balancesheet42004
|
Ref: #csv-output42699
|
||||||
Node: cashflow42656
|
Node: balancesheet43096
|
||||||
Ref: #cashflow42773
|
Ref: #balancesheet43224
|
||||||
Node: help43463
|
Node: cashflow43876
|
||||||
Ref: #help43575
|
Ref: #cashflow43993
|
||||||
Node: incomestatement44412
|
Node: help44683
|
||||||
Ref: #incomestatement44542
|
Ref: #help44795
|
||||||
Node: info45269
|
Node: incomestatement45632
|
||||||
Ref: #info45376
|
Ref: #incomestatement45762
|
||||||
Node: man45738
|
Node: info46489
|
||||||
Ref: #man45835
|
Ref: #info46596
|
||||||
Node: print46238
|
Node: man46958
|
||||||
Ref: #print46343
|
Ref: #man47055
|
||||||
Node: register50092
|
Node: print47458
|
||||||
Ref: #register50205
|
Ref: #print47563
|
||||||
Node: Custom register output54697
|
Node: register51312
|
||||||
Ref: #custom-register-output54828
|
Ref: #register51425
|
||||||
Node: stats56125
|
Node: Custom register output55917
|
||||||
Ref: #stats56231
|
Ref: #custom-register-output56048
|
||||||
Node: test57111
|
Node: stats57345
|
||||||
Ref: #test57198
|
Ref: #stats57451
|
||||||
Node: ADD-ON COMMANDS57565
|
Node: test58331
|
||||||
Ref: #add-on-commands57701
|
Ref: #test58418
|
||||||
Node: api58989
|
Node: ADD-ON COMMANDS58785
|
||||||
Ref: #api59081
|
Ref: #add-on-commands58921
|
||||||
Node: autosync59115
|
Node: api60209
|
||||||
Ref: #autosync59230
|
Ref: #api60301
|
||||||
Node: diff61545
|
Node: autosync60335
|
||||||
Ref: #diff61655
|
Ref: #autosync60450
|
||||||
Node: equity62319
|
Node: diff62765
|
||||||
Ref: #equity62433
|
Ref: #diff62875
|
||||||
Node: interest63761
|
Node: equity63539
|
||||||
Ref: #interest63878
|
Ref: #equity63653
|
||||||
Node: irr66962
|
Node: interest64981
|
||||||
Ref: #irr67075
|
Ref: #interest65098
|
||||||
Node: print-unique69450
|
Node: irr68182
|
||||||
Ref: #print-unique69580
|
Ref: #irr68295
|
||||||
Node: rewrite69838
|
Node: print-unique70670
|
||||||
Ref: #rewrite69957
|
Ref: #print-unique70800
|
||||||
Node: ui70486
|
Node: rewrite71058
|
||||||
Ref: #ui70586
|
Ref: #rewrite71177
|
||||||
Node: web70627
|
Node: ui71706
|
||||||
Ref: #web70715
|
Ref: #ui71806
|
||||||
Node: TROUBLESHOOTING70748
|
Node: web71847
|
||||||
Ref: #troubleshooting70867
|
Ref: #web71935
|
||||||
Node: Run-time problems70921
|
Node: TROUBLESHOOTING71968
|
||||||
Ref: #run-time-problems71064
|
Ref: #troubleshooting72087
|
||||||
Node: Known limitations73008
|
Node: Run-time problems72141
|
||||||
Ref: #known-limitations73151
|
Ref: #run-time-problems72284
|
||||||
|
Node: Known limitations74228
|
||||||
|
Ref: #known-limitations74371
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -121,12 +121,6 @@ There are some limitations with this:
|
|||||||
If you need those, either use the [include directive](/journal.html#including-other-files),
|
If you need those, either use the [include directive](/journal.html#including-other-files),
|
||||||
or concatenate the files, eg: `cat a.journal b.journal | hledger -f- CMD`.
|
or concatenate the files, eg: `cat a.journal b.journal | hledger -f- CMD`.
|
||||||
|
|
||||||
## Depth limiting
|
|
||||||
|
|
||||||
With the `--depth N` option, commands like [account](#account), [balance](#balance)
|
|
||||||
and [register](#register) will show only the uppermost accounts in the account
|
|
||||||
tree, down to level N. Use this when you want a summary with less detail.
|
|
||||||
|
|
||||||
## Smart dates
|
## Smart dates
|
||||||
|
|
||||||
hledger's user interfaces accept a flexible "smart date" syntax (unlike dates in the journal file).
|
hledger's user interfaces accept a flexible "smart date" syntax (unlike dates in the journal file).
|
||||||
@ -269,6 +263,65 @@ Group postings from start of wednesday to end of next tuesday (N is start date a
|
|||||||
|
|
||||||
`hledger register checking -p "every 3rd day of week"`
|
`hledger register checking -p "every 3rd day of week"`
|
||||||
|
|
||||||
|
## Depth limiting
|
||||||
|
|
||||||
|
With the `--depth N` option, commands like [account](#account), [balance](#balance)
|
||||||
|
and [register](#register) will show only the uppermost accounts in the account
|
||||||
|
tree, down to level N. Use this when you want a summary with less detail.
|
||||||
|
|
||||||
|
## Pivoting
|
||||||
|
|
||||||
|
Normally hledger sums amounts, and organizes them in a hierarchy, based on account name.
|
||||||
|
The `--pivot TAGNAME` option causes it to sum and organize hierarchy based on some other field instead.
|
||||||
|
|
||||||
|
TAGNAME is the full, case-insensitive name of a [tag](/journal.html#tags) you have defined,
|
||||||
|
or one of the built-in implicit tags (like `code` or `payee`).
|
||||||
|
As with account names, when tag values have `multiple:colon-separated:parts` hledger will build hierarchy,
|
||||||
|
displayed in tree-mode reports, summarisable with a depth limit, and so on.
|
||||||
|
|
||||||
|
`--pivot` affects all reports, and is one of those options you can write before the command name if you wish.
|
||||||
|
You can think of hledger transforming the journal before any other processing,
|
||||||
|
replacing every posting's account name with the value of the specified tag on that posting,
|
||||||
|
inheriting it from the transaction or using a blank value if it's not present.
|
||||||
|
|
||||||
|
An example:
|
||||||
|
|
||||||
|
```journal
|
||||||
|
2016/02/16 Member Fee Payment
|
||||||
|
assets:bank account 2 EUR
|
||||||
|
income:member fees -2 EUR ; member: John Doe
|
||||||
|
```
|
||||||
|
Normal balance report showing account names:
|
||||||
|
```shell
|
||||||
|
$ hledger balance
|
||||||
|
2 EUR assets:bank account
|
||||||
|
-2 EUR income:member fees
|
||||||
|
--------------------
|
||||||
|
0
|
||||||
|
```
|
||||||
|
Pivoted balance report, using member: tag values instead:
|
||||||
|
```shell
|
||||||
|
$ hledger balance --pivot member
|
||||||
|
2 EUR
|
||||||
|
-2 EUR John Doe
|
||||||
|
--------------------
|
||||||
|
0
|
||||||
|
```
|
||||||
|
One way to show only amounts with a member: value (using a [query](#queries), described below):
|
||||||
|
```shell
|
||||||
|
$ hledger balance --pivot member tag:member=.
|
||||||
|
-2 EUR John Doe
|
||||||
|
--------------------
|
||||||
|
-2 EUR
|
||||||
|
```
|
||||||
|
Another way (the acct: query matches against the pivoted "account name"):
|
||||||
|
```
|
||||||
|
$ hledger balance --pivot member acct:.
|
||||||
|
-2 EUR John Doe
|
||||||
|
--------------------
|
||||||
|
-2 EUR
|
||||||
|
```
|
||||||
|
|
||||||
## Regular expressions
|
## Regular expressions
|
||||||
|
|
||||||
hledger uses [regular expressions](http://www.regular-expressions.info) in a number of places:
|
hledger uses [regular expressions](http://www.regular-expressions.info) in a number of places:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user