mirror of
https://github.com/simonmichael/hledger.git
synced 2024-09-20 02:37:12 +03:00
;csv: doc: more cleanups, note some limitations
[ci skip]
This commit is contained in:
parent
01823d6329
commit
4eeb8f6264
@ -65,7 +65,7 @@ tells hledger to ignore this many non-empty lines preceding the CSV data.
|
||||
You'll need this whenever your CSV data contains header lines.
|
||||
|
||||
It also has a second purpose: it can be used inside [if blocks](#if)
|
||||
'to ignore certain CSV records (described below).
|
||||
to ignore certain CSV records (described below).
|
||||
|
||||
|
||||
## `fields`
|
||||
@ -106,7 +106,8 @@ For more about the transaction parts they refer to, see the manual for hledger's
|
||||
|
||||
`accountN`, where N is 1 to 9, sets the Nth [posting's](journal.html#postings) account name.
|
||||
Most often there are two postings, so you'll want to set `account1` and `account2`.
|
||||
<!-- (Often, `account1` is fixed and `account2` will be set later by a [conditional block](#if).) -->
|
||||
If a posting's account name is left unset but its amount is set,
|
||||
a default account name will be chosen (like expenses:unknown or income:unknown).
|
||||
|
||||
`amountN` sets posting N's amount. Or, `amount` with no N sets posting
|
||||
1's. If the CSV has debits and credits in separate fields, use
|
||||
@ -116,6 +117,7 @@ Most often there are two postings, so you'll want to set `account1` and `account
|
||||
For convenience and backwards compatibility, if you set the amount of
|
||||
posting 1 only, a second posting with the negative amount will be
|
||||
generated automatically.
|
||||
(This also means you can't generate a transaction with just one posting.)
|
||||
|
||||
If the CSV has the currency symbol in a separate field, you can use
|
||||
`currencyN` to prepend it to posting N's amount. `currency` with no N
|
||||
@ -136,9 +138,10 @@ See TIPS below for more about setting amounts and currency.
|
||||
HLEDGERFIELDNAME FIELDVALUE
|
||||
```
|
||||
|
||||
Instead of or in addition to a [fields list](#fields), you can use
|
||||
a "field assignment" rule to set the value of a single hledger field,
|
||||
by writing its name (any of the standard names above) followed by a text value.
|
||||
Instead of or in addition to a [fields list](#fields), you can use a
|
||||
"field assignment" rule to set the value of a single hledger field, by
|
||||
writing its name (any of the standard hledger field names above)
|
||||
followed by a text value.
|
||||
The value may contain interpolated CSV fields,
|
||||
referenced by their 1-based position in the CSV record (`%N`),
|
||||
or by the name they were given in the fields list (`%CSVFIELDNAME`).
|
||||
@ -171,7 +174,8 @@ Some examples:
|
||||
date-format %m/%d/%y
|
||||
```
|
||||
``` rules
|
||||
# D/M/YYYY. The - makes leading zeros optional.
|
||||
# D/M/YYYY
|
||||
# The - makes leading zeros optional.
|
||||
date-format %-d/%-m/%Y
|
||||
```
|
||||
``` rules
|
||||
@ -179,12 +183,12 @@ date-format %-d/%-m/%Y
|
||||
date-format %Y-%h-%d
|
||||
```
|
||||
``` rules
|
||||
# M/D/YYYY HH:MM AM some other junk.
|
||||
# The time and junk must be parsed, though only the date is used.
|
||||
# M/D/YYYY HH:MM AM some other junk
|
||||
# Note the time and junk must be fully parsed, though only the date is used.
|
||||
date-format %-m/%-d/%Y %l:%M %p some other junk
|
||||
```
|
||||
For the full pattern syntax, see
|
||||
<https://hackage.haskell.org/package/time/docs/Data-Time-Format.html#v:formatTime>.
|
||||
For the supported strptime syntax, see:\
|
||||
<https://hackage.haskell.org/package/time/docs/Data-Time-Format.html#v:formatTime>
|
||||
|
||||
|
||||
## `if`
|
||||
@ -248,7 +252,7 @@ banking thru software
|
||||
## `end`
|
||||
|
||||
This rule can be used inside [if blocks](#if) (only), to make hledger stop
|
||||
reading this CSV file and move on (to the next input file, or to command execution).
|
||||
reading this CSV file and move on to the next input file, or to command execution.
|
||||
Eg:
|
||||
```rules
|
||||
# ignore everything following the first empty record
|
||||
@ -263,7 +267,7 @@ if ,,,,
|
||||
include RULESFILE
|
||||
```
|
||||
|
||||
Include another CSV rules file at this point, as if it were written inline.
|
||||
This includes another CSV rules file at this point, as if it were written inline.
|
||||
`RULESFILE` is an absolute file path or a path relative to the current file's directory.
|
||||
This can be useful for sharing common rules between several rules files, eg:
|
||||
```rules
|
||||
@ -443,6 +447,7 @@ A posting amount can be set in one of these ways:
|
||||
- by assigning to `balanceN` (or `balance`) instead of the above,
|
||||
setting the amount indirectly via a
|
||||
[balance assignment](journal.html#balance-assignments).
|
||||
If you do this the default account name may be wrong, so you should set that explicitly.
|
||||
|
||||
There is some special handling for an amount's sign:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user