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 | ||||
| (using the [transaction price](journal.html#transaction-prices), if any) | ||||
| 
 | ||||
| `--pivot TAG` | ||||
| : will transform the journal before any other processing by 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". | ||||
| `--pivot TAGNAME` | ||||
| : organize reports by some tag's value instead of by account | ||||
| 
 | ||||
| `--anon` | ||||
| : 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. | ||||
| You can write multiple tags, comma separated. | ||||
| 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 | ||||
| A tag can also have a value, which is any text between the colon and the | ||||
| next comma or newline, excluding leading/trailing whitespace. | ||||
| @ -639,6 +643,24 @@ posting\-tag): | ||||
| .PP | ||||
| Tags are like Ledger\[aq]s metadata feature, except hledger\[aq]s tag | ||||
| 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 Account aliases | ||||
| .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 | ||||
| posting comment. You can write multiple tags, comma separated. Eg: `; a | ||||
| comment containing sometag:, anothertag:'. You can search for tags with | ||||
| the `tag:' query. | ||||
| comment containing sometag:, anothertag:'. | ||||
| 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 | ||||
| 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 | ||||
| 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 | ||||
| 
 | ||||
| @ -1025,33 +1051,35 @@ Node: Comments21085 | ||||
| Ref: #comments21207 | ||||
| Node: Tags22319 | ||||
| Ref: #tags22439 | ||||
| Node: Directives23362 | ||||
| Ref: #directives23477 | ||||
| Node: Account aliases23670 | ||||
| Ref: #account-aliases23816 | ||||
| Node: Basic aliases24418 | ||||
| Ref: #basic-aliases24563 | ||||
| Node: Regex aliases25251 | ||||
| Ref: #regex-aliases25421 | ||||
| Node: Multiple aliases26191 | ||||
| Ref: #multiple-aliases26365 | ||||
| Node: end aliases26861 | ||||
| Ref: #end-aliases27003 | ||||
| Node: account directive27105 | ||||
| Ref: #account-directive27287 | ||||
| Node: apply account directive27583 | ||||
| Ref: #apply-account-directive27781 | ||||
| Node: Multi-line comments28441 | ||||
| Ref: #multi-line-comments28633 | ||||
| Node: commodity directive28760 | ||||
| Ref: #commodity-directive28946 | ||||
| Node: Default commodity29819 | ||||
| Ref: #default-commodity29994 | ||||
| Node: Default year30530 | ||||
| Ref: #default-year30697 | ||||
| Node: Including other files31120 | ||||
| Ref: #including-other-files31279 | ||||
| Node: EDITOR SUPPORT31675 | ||||
| Ref: #editor-support31795 | ||||
| Node: Implicit tags23427 | ||||
| Ref: #implicit-tags23535 | ||||
| Node: Directives24054 | ||||
| Ref: #directives24169 | ||||
| Node: Account aliases24362 | ||||
| Ref: #account-aliases24508 | ||||
| Node: Basic aliases25110 | ||||
| Ref: #basic-aliases25255 | ||||
| Node: Regex aliases25943 | ||||
| Ref: #regex-aliases26113 | ||||
| Node: Multiple aliases26883 | ||||
| Ref: #multiple-aliases27057 | ||||
| Node: end aliases27553 | ||||
| Ref: #end-aliases27695 | ||||
| Node: account directive27797 | ||||
| Ref: #account-directive27979 | ||||
| Node: apply account directive28275 | ||||
| Ref: #apply-account-directive28473 | ||||
| Node: Multi-line comments29133 | ||||
| Ref: #multi-line-comments29325 | ||||
| Node: commodity directive29452 | ||||
| Ref: #commodity-directive29638 | ||||
| Node: Default commodity30511 | ||||
| Ref: #default-commodity30686 | ||||
| Node: Default year31222 | ||||
| Ref: #default-year31389 | ||||
| Node: Including other files31812 | ||||
| Ref: #including-other-files31971 | ||||
| Node: EDITOR SUPPORT32367 | ||||
| Ref: #editor-support32487 | ||||
|  | ||||
| End Tag Table | ||||
|  | ||||
| @ -504,8 +504,9 @@ end comment | ||||
| 
 | ||||
| A *tag* is a word followed by a full colon inside a transaction or | ||||
| posting [comment](#comments).  You can write multiple tags, comma | ||||
| separated. Eg: `; a comment containing sometag:, anothertag:`.  You can search for tags | ||||
| with the [`tag:` query](manual#queries). | ||||
| separated. Eg: `; a comment containing sometag:, anothertag:`.   | ||||
| 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 | ||||
| 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) | ||||
| 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 | ||||
| 
 | ||||
| ### Account aliases | ||||
|  | ||||
| @ -470,8 +470,9 @@ FILE FORMAT | ||||
|    Tags | ||||
|        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: | ||||
|        ; a comment containing sometag:, anothertag:.  You can search for  tags | ||||
|        with the tag: query. | ||||
|        ; a comment containing sometag:, anothertag:. | ||||
|        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 | ||||
|        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 | ||||
|        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 | ||||
|    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 | ||||
|        be useful for: | ||||
| 
 | ||||
| @ -508,8 +525,8 @@ FILE FORMAT | ||||
|        See also How to use account aliases. | ||||
| 
 | ||||
|    Basic aliases | ||||
|        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 | ||||
|        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 | ||||
|        included files.  The spaces around the = are optional: | ||||
| 
 | ||||
|               alias OLD = NEW | ||||
| @ -517,53 +534,53 @@ FILE FORMAT | ||||
|        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. | ||||
| 
 | ||||
|        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 | ||||
|        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 | ||||
|        affected.  Eg: | ||||
| 
 | ||||
|               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" | ||||
| 
 | ||||
|    Regex aliases | ||||
|        There  is  also a more powerful variant that uses a regular expression, | ||||
|        indicated by the forward slashes.  (This was the default  behaviour  in | ||||
|        There is also a more powerful variant that uses a  regular  expression, | ||||
|        indicated  by  the forward slashes.  (This was the default behaviour in | ||||
|        hledger 0.24-0.25): | ||||
| 
 | ||||
|               alias /REGEX/ = REPLACEMENT | ||||
| 
 | ||||
|        or --alias '/REGEX/=REPLACEMENT'. | ||||
| 
 | ||||
|        REGEX  is  a  case-insensitive regular expression.  Anywhere it matches | ||||
|        inside an account name, the matched part will be replaced  by  REPLACE- | ||||
|        MENT.   If REGEX contains parenthesised match groups, these can be ref- | ||||
|        REGEX is a case-insensitive regular expression.   Anywhere  it  matches | ||||
|        inside  an  account name, the matched part will be replaced by REPLACE- | ||||
|        MENT.  If REGEX contains parenthesised match groups, these can be  ref- | ||||
|        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: | ||||
| 
 | ||||
|               alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3 | ||||
|               # rewrites "assets:bank:wells fargo:checking" to  "assets:wells fargo checking" | ||||
| 
 | ||||
|    Multiple aliases | ||||
|        You  can  define  as  many aliases as you like using directives or com- | ||||
|        mand-line options.  Aliases are recursive - each alias sees the  result | ||||
|        of  applying  previous  ones.   (This  is  different from Ledger, where | ||||
|        You can define as many aliases as you like  using  directives  or  com- | ||||
|        mand-line  options.  Aliases are recursive - each alias sees the result | ||||
|        of applying previous ones.   (This  is  different  from  Ledger,  where | ||||
|        aliases are non-recursive by default).  Aliases are applied in the fol- | ||||
|        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) | ||||
| 
 | ||||
|        2. alias options, in the order they appear on the command line | ||||
| 
 | ||||
|    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 | ||||
| 
 | ||||
|    account directive | ||||
|        The  account directive predefines account names, as in Ledger and Bean- | ||||
|        count.  This may be useful for your own documentation; hledger  doesn't | ||||
|        The account directive predefines account names, as in Ledger and  Bean- | ||||
|        count.   This may be useful for your own documentation; hledger doesn't | ||||
|        make use of it yet. | ||||
| 
 | ||||
|               ; account ACCT | ||||
| @ -578,8 +595,8 @@ FILE FORMAT | ||||
|               ; etc. | ||||
| 
 | ||||
|    apply account directive | ||||
|        You  can  specify  a  parent  account  which  will  be prepended to all | ||||
|        accounts within a section of the journal.  Use  the  apply account  and | ||||
|        You can specify a  parent  account  which  will  be  prepended  to  all | ||||
|        accounts  within  a  section of the journal.  Use the apply account and | ||||
|        end apply account directives like so: | ||||
| 
 | ||||
|               apply account home | ||||
| @ -596,7 +613,7 @@ FILE FORMAT | ||||
|                   home:food           $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: | ||||
| 
 | ||||
|               apply account business | ||||
| @ -605,16 +622,16 @@ FILE FORMAT | ||||
|               apply account personal | ||||
|               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. | ||||
| 
 | ||||
|    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. | ||||
| 
 | ||||
|    commodity directive | ||||
|        The commodity directive predefines commodities (currently this is  just | ||||
|        informational),  and  also it may define the display format for amounts | ||||
|        The  commodity directive predefines commodities (currently this is just | ||||
|        informational), and also it may define the display format  for  amounts | ||||
|        in this commodity (overriding the automatically inferred format). | ||||
| 
 | ||||
|        It may be written on a single line, like this: | ||||
| @ -626,8 +643,8 @@ FILE FORMAT | ||||
|               ; separating thousands with comma. | ||||
|               commodity 1,000.0000 AAAA | ||||
| 
 | ||||
|        or on multiple lines, using the "format" subdirective.   In  this  case | ||||
|        the  commodity  symbol  appears  twice  and  should be the same in both | ||||
|        or  on  multiple  lines, using the "format" subdirective.  In this case | ||||
|        the commodity symbol appears twice and  should  be  the  same  in  both | ||||
|        places: | ||||
| 
 | ||||
|               ; commodity SYMBOL | ||||
| @ -640,10 +657,10 @@ FILE FORMAT | ||||
|                 format INR 9,99,99,999.00 | ||||
| 
 | ||||
|    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 | ||||
|        this differs from Ledger's default commodity directive.) The  commodity | ||||
|        and  display  format  will  be applied to all subsequent commodity-less | ||||
|        this  differs from Ledger's default commodity directive.) The commodity | ||||
|        and display format will be applied  to  all  subsequent  commodity-less | ||||
|        amounts, or until the next D directive. | ||||
| 
 | ||||
|               # commodity-less amounts should be treated as dollars | ||||
| @ -655,8 +672,8 @@ FILE FORMAT | ||||
|                 b | ||||
| 
 | ||||
|    Default year | ||||
|        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. | ||||
|        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. | ||||
|        Eg: | ||||
| 
 | ||||
|               Y2009      ; set default year to 2009 | ||||
| @ -676,24 +693,24 @@ FILE FORMAT | ||||
|                 assets | ||||
| 
 | ||||
|    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 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. | ||||
| 
 | ||||
|        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. | ||||
| 
 | ||||
| EDITOR SUPPORT | ||||
|        Add-on modes exist for various text editors, to make working with jour- | ||||
|        nal files easier.  They add colour, navigation aids  and  helpful  com- | ||||
|        mands.   For  hledger  users  who  edit  the journal file directly (the | ||||
|        nal  files  easier.   They add colour, navigation aids and helpful com- | ||||
|        mands.  For hledger users who  edit  the  journal  file  directly  (the | ||||
|        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: | ||||
| 
 | ||||
| 
 | ||||
| @ -710,7 +727,7 @@ EDITOR SUPPORT | ||||
| 
 | ||||
| 
 | ||||
| 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) | ||||
| 
 | ||||
| 
 | ||||
| @ -724,7 +741,7 @@ COPYRIGHT | ||||
| 
 | ||||
| 
 | ||||
| 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- | ||||
|        dot(5), ledger(1) | ||||
| 
 | ||||
|  | ||||
| @ -208,15 +208,8 @@ price, if any) | ||||
| .RS | ||||
| .RE | ||||
| .TP | ||||
| .B \f[C]\-\-pivot\ TAG\f[] | ||||
| will transform the journal before any other processing by 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". | ||||
| .B \f[C]\-\-pivot\ TAGNAME\f[] | ||||
| organize reports by some tag\[aq]s value instead of by account | ||||
| .RS | ||||
| .RE | ||||
| .TP | ||||
|  | ||||
| @ -142,14 +142,8 @@ the data. | ||||
|      convert amounts to their cost at transaction time (using the | ||||
|      transaction price, if any) | ||||
| 
 | ||||
| `--pivot TAG' | ||||
|      will transform the journal before any other processing by | ||||
|      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". | ||||
| `--pivot TAGNAME' | ||||
|      organize reports by some tag's value instead of by account | ||||
| 
 | ||||
| `--anon' | ||||
|      show anonymized accounts and payees | ||||
| @ -361,17 +355,17 @@ Tag Table: | ||||
| Node: Top88 | ||||
| Node: OPTIONS823 | ||||
| Ref: #options922 | ||||
| Node: KEYS4001 | ||||
| Ref: #keys4098 | ||||
| Node: SCREENS6668 | ||||
| Ref: #screens6755 | ||||
| Node: Accounts screen6845 | ||||
| Ref: #accounts-screen6975 | ||||
| Node: Register screen9013 | ||||
| Ref: #register-screen9170 | ||||
| Node: Transaction screen11058 | ||||
| Ref: #transaction-screen11218 | ||||
| Node: Error screen12085 | ||||
| Ref: #error-screen12209 | ||||
| Node: KEYS3611 | ||||
| Ref: #keys3708 | ||||
| Node: SCREENS6278 | ||||
| Ref: #screens6365 | ||||
| Node: Accounts screen6455 | ||||
| Ref: #accounts-screen6585 | ||||
| Node: Register screen8623 | ||||
| Ref: #register-screen8780 | ||||
| Node: Transaction screen10668 | ||||
| Ref: #transaction-screen10828 | ||||
| Node: Error screen11695 | ||||
| Ref: #error-screen11819 | ||||
|  | ||||
| End Tag Table | ||||
|  | ||||
| @ -136,14 +136,8 @@ OPTIONS | ||||
|               convert  amounts  to  their  cost at transaction time (using the | ||||
|               transaction price, if any) | ||||
| 
 | ||||
|        --pivot TAG | ||||
|               will transform  the  journal  before  any  other  processing  by | ||||
|               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". | ||||
|        --pivot TAGNAME | ||||
|               organize reports by some tag's value instead of by account | ||||
| 
 | ||||
|        --anon show anonymized accounts and payees | ||||
| 
 | ||||
|  | ||||
| @ -270,15 +270,8 @@ price, if any) | ||||
| .RS | ||||
| .RE | ||||
| .TP | ||||
| .B \f[C]\-\-pivot\ TAG\f[] | ||||
| will transform the journal before any other processing by 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". | ||||
| .B \f[C]\-\-pivot\ TAGNAME\f[] | ||||
| organize reports by some tag\[aq]s value instead of by account | ||||
| .RS | ||||
| .RE | ||||
| .TP | ||||
|  | ||||
| @ -190,14 +190,8 @@ before options as shown above. | ||||
|      convert amounts to their cost at transaction time (using the | ||||
|      transaction price, if any) | ||||
| 
 | ||||
| `--pivot TAG' | ||||
|      will transform the journal before any other processing by | ||||
|      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". | ||||
| `--pivot TAGNAME' | ||||
|      organize reports by some tag's value instead of by account | ||||
| 
 | ||||
| `--anon' | ||||
|      show anonymized accounts and payees | ||||
|  | ||||
| @ -186,14 +186,8 @@ OPTIONS | ||||
|               convert  amounts  to  their  cost at transaction time (using the | ||||
|               transaction price, if any) | ||||
| 
 | ||||
|        --pivot TAG | ||||
|               will transform  the  journal  before  any  other  processing  by | ||||
|               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". | ||||
|        --pivot TAGNAME | ||||
|               organize reports by some tag's value instead of by account | ||||
| 
 | ||||
|        --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 ["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" | ||||
|  ,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. | ||||
|  | ||||
| @ -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 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 | ||||
| \f[] | ||||
| .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 | ||||
| .PP | ||||
| To see general usage and the command list: \f[C]hledger\ \-h\f[] or just | ||||
| @ -378,15 +357,8 @@ price, if any) | ||||
| .RS | ||||
| .RE | ||||
| .TP | ||||
| .B \f[C]\-\-pivot\ TAG\f[] | ||||
| will transform the journal before any other processing by 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". | ||||
| .B \f[C]\-\-pivot\ TAGNAME\f[] | ||||
| organize reports by some tag\[aq]s value instead of by account | ||||
| .RS | ||||
| .RE | ||||
| .TP | ||||
| @ -498,12 +470,6 @@ balance assertions will not see any account balances from previous files | ||||
| .PP | ||||
| 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[]. | ||||
| .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 | ||||
| .PP | ||||
| 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): | ||||
| .PP | ||||
| \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 | ||||
| .PP | ||||
| 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 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 | ||||
| 
 | ||||
| @ -200,11 +185,12 @@ cur:\\\\$'. | ||||
| * General options:: | ||||
| * Reporting options:: | ||||
| * Input files:: | ||||
| * Depth limiting:: | ||||
| * Smart dates:: | ||||
| * Report start & end date:: | ||||
| * Report intervals:: | ||||
| * Period expressions:: | ||||
| * Depth limiting:: | ||||
| * Pivoting:: | ||||
| * Regular expressions:: | ||||
| 
 | ||||
|  | ||||
| @ -304,14 +290,8 @@ Common reporting options, must be written after COMMAND. | ||||
|      convert amounts to their cost at transaction time (using the | ||||
|      transaction price, if any) | ||||
| 
 | ||||
| `--pivot TAG' | ||||
|      will transform the journal before any other processing by | ||||
|      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". | ||||
| `--pivot TAGNAME' | ||||
|      organize reports by some tag's value instead of by account | ||||
| 
 | ||||
| `--anon' | ||||
|      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. | ||||
| 
 | ||||
|  | ||||
| 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 | ||||
| =============== | ||||
| @ -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'. | ||||
| 
 | ||||
|  | ||||
| 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 | ||||
| ================== | ||||
| 
 | ||||
| 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 | ||||
| 2.4 Smart dates | ||||
| =============== | ||||
| 
 | ||||
| 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 | ||||
| 
 | ||||
| 2.6 Report start & end date | ||||
| 2.5 Report start & end date | ||||
| =========================== | ||||
| 
 | ||||
| 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 | ||||
| 
 | ||||
| 2.7 Report intervals | ||||
| 2.6 Report intervals | ||||
| ==================== | ||||
| 
 | ||||
| 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. | ||||
| 
 | ||||
|  | ||||
| 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 | ||||
| @ -530,10 +500,87 @@ start date and exclusive end date): | ||||
|    `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: | ||||
| 
 | ||||
| @ -2282,101 +2329,103 @@ Tag Table: | ||||
| Node: Top82 | ||||
| Node: EXAMPLES1873 | ||||
| Ref: #examples1975 | ||||
| Node: OPTIONS3979 | ||||
| Ref: #options4083 | ||||
| Node: General options6711 | ||||
| Ref: #general-options6840 | ||||
| Node: Reporting options7611 | ||||
| Ref: #reporting-options7764 | ||||
| Node: Input files9587 | ||||
| Ref: #input-files9727 | ||||
| Node: Depth limiting11768 | ||||
| Ref: #depth-limiting11908 | ||||
| Node: Smart dates12109 | ||||
| Ref: #smart-dates12255 | ||||
| Node: Report start & end date13252 | ||||
| Ref: #report-start-end-date13424 | ||||
| Node: Report intervals14500 | ||||
| Ref: #report-intervals14665 | ||||
| Node: Period expressions15064 | ||||
| Ref: #period-expressions15229 | ||||
| Node: Regular expressions17564 | ||||
| Ref: #regular-expressions17706 | ||||
| Node: QUERIES19189 | ||||
| Ref: #queries19293 | ||||
| Node: COMMANDS22932 | ||||
| Ref: #commands23046 | ||||
| Node: accounts23719 | ||||
| Ref: #accounts23819 | ||||
| Node: activity24801 | ||||
| Ref: #activity24913 | ||||
| Node: add25272 | ||||
| Ref: #add25373 | ||||
| Node: balance28036 | ||||
| Ref: #balance28149 | ||||
| Node: Flat mode31162 | ||||
| Ref: #flat-mode31289 | ||||
| Node: Depth limited balance reports31708 | ||||
| Ref: #depth-limited-balance-reports31911 | ||||
| Node: Multicolumn balance reports32332 | ||||
| Ref: #multicolumn-balance-reports32534 | ||||
| Node: Market value37183 | ||||
| Ref: #market-value37347 | ||||
| Node: Custom balance output38648 | ||||
| Ref: #custom-balance-output38821 | ||||
| Node: Output destination40925 | ||||
| Ref: #output-destination41090 | ||||
| Node: CSV output41360 | ||||
| Ref: #csv-output41479 | ||||
| Node: balancesheet41876 | ||||
| Ref: #balancesheet42004 | ||||
| Node: cashflow42656 | ||||
| Ref: #cashflow42773 | ||||
| Node: help43463 | ||||
| Ref: #help43575 | ||||
| Node: incomestatement44412 | ||||
| Ref: #incomestatement44542 | ||||
| Node: info45269 | ||||
| Ref: #info45376 | ||||
| Node: man45738 | ||||
| Ref: #man45835 | ||||
| Node: print46238 | ||||
| Ref: #print46343 | ||||
| Node: register50092 | ||||
| Ref: #register50205 | ||||
| Node: Custom register output54697 | ||||
| Ref: #custom-register-output54828 | ||||
| Node: stats56125 | ||||
| Ref: #stats56231 | ||||
| Node: test57111 | ||||
| Ref: #test57198 | ||||
| Node: ADD-ON COMMANDS57565 | ||||
| Ref: #add-on-commands57701 | ||||
| Node: api58989 | ||||
| Ref: #api59081 | ||||
| Node: autosync59115 | ||||
| Ref: #autosync59230 | ||||
| Node: diff61545 | ||||
| Ref: #diff61655 | ||||
| Node: equity62319 | ||||
| Ref: #equity62433 | ||||
| Node: interest63761 | ||||
| Ref: #interest63878 | ||||
| Node: irr66962 | ||||
| Ref: #irr67075 | ||||
| Node: print-unique69450 | ||||
| Ref: #print-unique69580 | ||||
| Node: rewrite69838 | ||||
| Ref: #rewrite69957 | ||||
| Node: ui70486 | ||||
| Ref: #ui70586 | ||||
| Node: web70627 | ||||
| Ref: #web70715 | ||||
| Node: TROUBLESHOOTING70748 | ||||
| Ref: #troubleshooting70867 | ||||
| Node: Run-time problems70921 | ||||
| Ref: #run-time-problems71064 | ||||
| Node: Known limitations73008 | ||||
| Ref: #known-limitations73151 | ||||
| Node: OPTIONS3627 | ||||
| Ref: #options3731 | ||||
| Node: General options6372 | ||||
| Ref: #general-options6501 | ||||
| Node: Reporting options7272 | ||||
| Ref: #reporting-options7425 | ||||
| Node: Input files8858 | ||||
| Ref: #input-files8995 | ||||
| Node: Smart dates11036 | ||||
| Ref: #smart-dates11179 | ||||
| Node: Report start & end date12176 | ||||
| Ref: #report-start-end-date12348 | ||||
| Node: Report intervals13424 | ||||
| Ref: #report-intervals13589 | ||||
| Node: Period expressions13988 | ||||
| Ref: #period-expressions14148 | ||||
| Node: Depth limiting16483 | ||||
| Ref: #depth-limiting16627 | ||||
| Node: Pivoting16828 | ||||
| Ref: #pivoting16961 | ||||
| Node: Regular expressions18792 | ||||
| Ref: #regular-expressions18926 | ||||
| Node: QUERIES20409 | ||||
| Ref: #queries20513 | ||||
| Node: COMMANDS24152 | ||||
| Ref: #commands24266 | ||||
| Node: accounts24939 | ||||
| Ref: #accounts25039 | ||||
| Node: activity26021 | ||||
| Ref: #activity26133 | ||||
| Node: add26492 | ||||
| Ref: #add26593 | ||||
| Node: balance29256 | ||||
| Ref: #balance29369 | ||||
| Node: Flat mode32382 | ||||
| Ref: #flat-mode32509 | ||||
| Node: Depth limited balance reports32928 | ||||
| Ref: #depth-limited-balance-reports33131 | ||||
| Node: Multicolumn balance reports33552 | ||||
| Ref: #multicolumn-balance-reports33754 | ||||
| Node: Market value38403 | ||||
| Ref: #market-value38567 | ||||
| Node: Custom balance output39868 | ||||
| Ref: #custom-balance-output40041 | ||||
| Node: Output destination42145 | ||||
| Ref: #output-destination42310 | ||||
| Node: CSV output42580 | ||||
| Ref: #csv-output42699 | ||||
| Node: balancesheet43096 | ||||
| Ref: #balancesheet43224 | ||||
| Node: cashflow43876 | ||||
| Ref: #cashflow43993 | ||||
| Node: help44683 | ||||
| Ref: #help44795 | ||||
| Node: incomestatement45632 | ||||
| Ref: #incomestatement45762 | ||||
| Node: info46489 | ||||
| Ref: #info46596 | ||||
| Node: man46958 | ||||
| Ref: #man47055 | ||||
| Node: print47458 | ||||
| Ref: #print47563 | ||||
| Node: register51312 | ||||
| Ref: #register51425 | ||||
| Node: Custom register output55917 | ||||
| Ref: #custom-register-output56048 | ||||
| Node: stats57345 | ||||
| Ref: #stats57451 | ||||
| Node: test58331 | ||||
| Ref: #test58418 | ||||
| Node: ADD-ON COMMANDS58785 | ||||
| Ref: #add-on-commands58921 | ||||
| Node: api60209 | ||||
| Ref: #api60301 | ||||
| Node: autosync60335 | ||||
| Ref: #autosync60450 | ||||
| Node: diff62765 | ||||
| Ref: #diff62875 | ||||
| Node: equity63539 | ||||
| Ref: #equity63653 | ||||
| Node: interest64981 | ||||
| Ref: #interest65098 | ||||
| Node: irr68182 | ||||
| Ref: #irr68295 | ||||
| Node: print-unique70670 | ||||
| Ref: #print-unique70800 | ||||
| Node: rewrite71058 | ||||
| Ref: #rewrite71177 | ||||
| Node: ui71706 | ||||
| Ref: #ui71806 | ||||
| Node: web71847 | ||||
| Ref: #web71935 | ||||
| Node: TROUBLESHOOTING71968 | ||||
| Ref: #troubleshooting72087 | ||||
| Node: Run-time problems72141 | ||||
| Ref: #run-time-problems72284 | ||||
| Node: Known limitations74228 | ||||
| Ref: #known-limitations74371 | ||||
|  | ||||
| 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), | ||||
| 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 | ||||
| 
 | ||||
| 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"`    | ||||
| 
 | ||||
| ## 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 | ||||
| 
 | ||||
| hledger uses [regular expressions](http://www.regular-expressions.info) in a number of places: | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user