131 lines
No EOL
4.9 KiB
Text
131 lines
No EOL
4.9 KiB
Text
{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf460
|
|
{\fonttbl\f0\fmodern\fcharset0 Courier;}
|
|
{\colortbl;\red255\green255\blue255;}
|
|
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl264\slmult1\ql\qnatural\pardirnatural
|
|
|
|
\f0\fs28 \cf0 The ledger file format is quite simple, but also very flexible. It\
|
|
supports many options, though typically the user can ignore most of\
|
|
them. They are summarized below.\
|
|
\
|
|
The initial character of each line determines what the line means, and\
|
|
how it should be interpreted. Allowable initial characters are:\
|
|
\
|
|
@table @code\
|
|
@item NUMBER\
|
|
A line beginning with a number denotes a transaction. It may be followed\
|
|
by any number of lines, each beginning with whitespace, to denote the\
|
|
transaction's account postings. The format of the first line is:\
|
|
\
|
|
@example\
|
|
DATE[=EDATE] [*|!] [(CODE)] DESC\
|
|
@end example\
|
|
\
|
|
If @samp\{*\} appears after the date (with optional effective date), it\
|
|
indicates the transaction is ``cleared'', which can mean whatever the user\
|
|
wants it t omean. If @samp\{!\} appears after the date, it indicates d\
|
|
the transaction is ``pending''; i.e., tentatively cleared from the user's\
|
|
point of view, but not yet actually cleared. If a @samp\{CODE\} appears\
|
|
in parentheses, it may be used to indicate a check number, or the type\
|
|
of the posting. Following these is the payee, or a description of\
|
|
the posting.\
|
|
\
|
|
The format of each following posting is:\
|
|
\
|
|
@example\
|
|
ACCOUNT AMOUNT [; NOTE]\
|
|
@end example\
|
|
\
|
|
The @samp\{ACCOUNT\} may be surrounded by parentheses if it is a virtual\
|
|
postings, or square brackets if it is a virtual postings that\
|
|
must balance. The @samp\{AMOUNT\} can be followed by a per-unit\
|
|
posting cost, by specifying @samp\{@@ AMOUNT\}, or a complete\
|
|
posting cost with @samp\{@@@@ AMOUNT\}. Lastly, the @samp\{NOTE\} may\
|
|
specify an actual and/or effective date for the posting by using\
|
|
the syntax @samp\{[ACTUAL_DATE]\} or @samp\{[=EFFECTIVE_DATE]\} or\
|
|
@samp\{[ACTUAL_DATE=EFFECtIVE_DATE]\}.\
|
|
\
|
|
@item =\
|
|
An automated transaction. A value expression must appear after the equal\
|
|
sign.\
|
|
\
|
|
After this initial line there should be a set of one or more\
|
|
postings, just as if it were normal transaction. If the amounts of the\
|
|
postings have no commodity, they will be applied as modifiers to\
|
|
whichever real posting is matched by the value expression.\
|
|
\
|
|
@item ~\
|
|
A period transaction. A period expression must appear after the tilde.\
|
|
\
|
|
After this initial line there should be a set of one or more\
|
|
postings, just as if it were normal transaction.\
|
|
\
|
|
@item !\
|
|
A line beginning with an exclamation mark denotes a command directive.\
|
|
It must be immediately followed by the command word. The supported\
|
|
commands are:\
|
|
\
|
|
@table @samp\
|
|
@item !include\
|
|
Include the stated ledger file.\
|
|
\
|
|
@item !account\
|
|
The account name is given is taken to be the parent of all\
|
|
postings that follow, until @samp\{!end\} is seen.\
|
|
\
|
|
@item !end\
|
|
Ends an account block.\
|
|
@end table\
|
|
\
|
|
@item ;\
|
|
A line beginning with a colon indicates a comment, and is ignored.\
|
|
\
|
|
@item Y\
|
|
If a line begins with a capital Y, it denotes the year used for all\
|
|
subsequent transactions that give a date without a year. The year should\
|
|
appear immediately after the Y, for example: @samp\{Y2004\}. This is\
|
|
useful at the beginning of a file, to specify the year for that file.\
|
|
If all transactions specify a year, however, this command has no effect.\
|
|
\
|
|
@item P\
|
|
Specifies a historical price for a commodity. These are usually found\
|
|
in a pricing history file (see the @option\{-Q\} option). The syntax\
|
|
is:\
|
|
@example\
|
|
P DATE SYMBOL PRICE\
|
|
@end example\
|
|
\
|
|
@item N SYMBOL\
|
|
Indicates that pricing information is to be ignored for a given\
|
|
symbol, nor will quotes ever be downloaded for that symbol. Useful\
|
|
with a home currency, such as the dollar ($). It is recommended that\
|
|
these pricing options be set in the price database file, which\
|
|
defaults to @file\{~/.pricedb\}. The syntax for this command is:\
|
|
@example\
|
|
N SYMBOL\
|
|
@end example\
|
|
\
|
|
@item D AMOUNT\
|
|
Specifies the default commodity to use, by specifying an amount in the\
|
|
expected format. The @command\{transaction\} command will use this commodity\
|
|
as the default when none other can be determined. This command may be\
|
|
used multiple times, to set the default flags for different\
|
|
commodities; whichever is seen last is used as the default commodity.\
|
|
For example, to set US dollars as the default commodity, while also\
|
|
setting the thousands flag and decimal flag for that commodity, use:\
|
|
@example\
|
|
D $1,000.00\
|
|
@end example\
|
|
\
|
|
@item C AMOUNT1 = AMOUNT2\
|
|
Specifies a commodity conversion, where the first amount is given to\
|
|
be equivalent to the second amount. The first amount should use the\
|
|
decimal precision desired during reporting:\
|
|
@example\
|
|
C 1.00 Kb = 1024 bytes\
|
|
@end example\
|
|
\
|
|
@item i, o, b, h\
|
|
These four relate to timeclock support, which permits ledger to read\
|
|
timelog files. See the timeclock's documentation for more info on the\
|
|
syntax of its timelog files.\
|
|
@end table} |