From 1f5ceb0db50df9ad0f9048ee02ad749507cbd737 Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Sun, 25 Oct 2009 23:08:07 -0400 Subject: Added beginning draft of manual for 3.0 This is being kept in Scrivener format, for ease of writing. --- doc/Ledger.scriv/snapshots/203.snapshots | 579 +++++++++++++++++++++++++++++++ 1 file changed, 579 insertions(+) create mode 100644 doc/Ledger.scriv/snapshots/203.snapshots (limited to 'doc/Ledger.scriv/snapshots/203.snapshots') diff --git a/doc/Ledger.scriv/snapshots/203.snapshots b/doc/Ledger.scriv/snapshots/203.snapshots new file mode 100644 index 00000000..1cda4747 --- /dev/null +++ b/doc/Ledger.scriv/snapshots/203.snapshots @@ -0,0 +1,579 @@ + + + + + $archiver + NSKeyedArchiver + $objects + + $null + + $class + + CF$UID + 37 + + NS.objects + + + CF$UID + 2 + + + + + $class + + CF$UID + 33 + + NS.keys + + + CF$UID + 3 + + + CF$UID + 4 + + + CF$UID + 5 + + + NS.objects + + + CF$UID + 6 + + + CF$UID + 7 + + + CF$UID + 35 + + + + Title + Text + Date + Untitled Snapshot + + $class + + CF$UID + 34 + + NSAttributes + + CF$UID + 10 + + NSDelegate + + CF$UID + 0 + + NSString + + CF$UID + 8 + + + + $class + + CF$UID + 9 + + NS.string + By default, Ledger uses a human-readable data format, and displays its +reports in a manner meant to be read on screen. For the purpose of +writing tools which use Ledger, however, it is possible to read and +display data using XML. This section documents that format. + +The general format used for Ledger data is: + +@smallexample +<?xml version="1.0"?> +<ledger> + <xact>...</xact> + <xact>...</xact> + <xact>...</xact>... +</ledger> +@end smallexample + +The data stream is enclosed in a @samp{ledger} tag, which contains a +series of one or more transactions. Each @samp{xact} describes the transaction +and contains a series of one or more postings: + +@smallexample +<xact> + <en:date>2004/03/01</en:date> + <en:cleared/> + <en:code>100</en:code> + <en:payee>John Wiegley</en:payee> + <en:postings> + <posting>...</posting> + <posting>...</posting> + <posting>...</posting>... + </en:postings> +</xact> +@end smallexample + +The date format for @samp{en:date} is always @samp{YYYY/MM/DD}. The +@samp{en:cleared} tag is optional, and indicates whether the +posting has been cleared or not. There is also an +@samp{en:pending} tag, for marking pending postings. The +@samp{en:code} and @samp{en:payee} tags both contain whatever text the +user wishes. + +After the initial transaction data, there must follow a set of postings +marked with @samp{en:postings}. Typically these postings will +all balance each other, but if not they will be automatically balanced +into an account named @samp{<Unknown>}. + +Within the @samp{en:postings} tag is a series of one or more +@samp{posting}'s, which have the following form: + +@smallexample +<posting> + <tr:account>Expenses:Computer:Hardware</tr:account> + <tr:amount> + <value type="amount"> + <amount> + <commodity flags="PT">$</commodity> + <quantity>90.00</quantity> + </amount> + </value> + </tr:amount> +</posting> +@end smallexample + +This is a basic posting. It may also be begin with +@samp{tr:virtual} and/or @samp{tr:generated} tags, to indicate virtual +and auto-generated postings. Then follows the @samp{tr:account} +tag, which contains the full name of the account the posting is +related to. Colons separate parent from child in an account name. + +Lastly follows the amount of the posting, indicated by +@samp{tr:amount}. Within this tag is a @samp{value} tag, of which +there are four different kinds, each with its own format: + +@enumerate +@item boolean +@item integer +@item amount +@item balance +@end enumerate + +The format of a boolean value is @samp{true} or @samp{false} +surrounded by a @samp{boolean} tag, for example: + +@smallexample +<boolean>true</boolean> +@end smallexample + +The format of an integer value is the numerical value surrounded by an +@samp{integer} tag, for example: + +@smallexample +<integer>12036</integer> +@end smallexample + +The format of an amount contains two members, the commodity and the +quantity. The commodity can have a set of flags that indicate how to +display it. The meaning of the flags (all of which are optional) are: + +@table @strong +@item P +The commodity is prefixed to the value. +@item S +The commodity is separated from the value by a space. +@item T +Thousands markers are used to display the amount. +@item E +The format of the amount is European, with period used as a thousands +marker, and comma used as the decimal point. +@end table + +The actual quantity for an amount is an integer of arbitrary size. +Ledger uses the GNU multi-precision math library to handle such +values. The XML format assumes the reader to be equally capable. +Here is an example amount: + +@smallexample +<value type="amount"> + <amount> + <commodity flags="PT">$</commodity> + <quantity>90.00</quantity> + </amount> +</value> +@end smallexample + +Lastly, a balance value contains a series of amounts, each with a +different commodity. Unlike the name, such a value does need to +balance. It is called a balance because it sums several amounts. For +example: + +@smallexample +<value type="balance"> + <balance> + <amount> + <commodity flags="PT">$</commodity> + <quantity>90.00</quantity> + </amount> + <amount> + <commodity flags="TE">DM</commodity> + <quantity>200.00</quantity> + </amount> + </balance> +</value> +@end smallexample + +That is the extent of the XML data format used by Ledger. It will +output such data if the @command{xml} command is used, and can read +the same data. + + + $classes + + NSMutableString + NSString + NSObject + + $classname + NSMutableString + + + $class + + CF$UID + 33 + + NS.keys + + + CF$UID + 11 + + + CF$UID + 12 + + + NS.objects + + + CF$UID + 13 + + + CF$UID + 30 + + + + NSParagraphStyle + NSFont + + $class + + CF$UID + 29 + + NSAlignment + 4 + NSLineHeightMultiple + 1.1000000238418579 + NSTabStops + + CF$UID + 14 + + + + $class + + CF$UID + 28 + + NS.objects + + + CF$UID + 15 + + + CF$UID + 17 + + + CF$UID + 18 + + + CF$UID + 19 + + + CF$UID + 20 + + + CF$UID + 21 + + + CF$UID + 22 + + + CF$UID + 23 + + + CF$UID + 24 + + + CF$UID + 25 + + + CF$UID + 26 + + + CF$UID + 27 + + + + + $class + + CF$UID + 16 + + NSLocation + 28 + + + $classes + + NSTextTab + NSObject + + $classname + NSTextTab + + + $class + + CF$UID + 16 + + NSLocation + 56 + + + $class + + CF$UID + 16 + + NSLocation + 84 + + + $class + + CF$UID + 16 + + NSLocation + 112 + + + $class + + CF$UID + 16 + + NSLocation + 140 + + + $class + + CF$UID + 16 + + NSLocation + 168 + + + $class + + CF$UID + 16 + + NSLocation + 196 + + + $class + + CF$UID + 16 + + NSLocation + 224 + + + $class + + CF$UID + 16 + + NSLocation + 252 + + + $class + + CF$UID + 16 + + NSLocation + 280 + + + $class + + CF$UID + 16 + + NSLocation + 308 + + + $class + + CF$UID + 16 + + NSLocation + 336 + + + $classes + + NSArray + NSObject + + $classname + NSArray + + + $classes + + NSParagraphStyle + NSObject + + $classname + NSParagraphStyle + + + $class + + CF$UID + 32 + + NSName + + CF$UID + 31 + + NSSize + 14 + NSfFlags + 16 + + Courier + + $classes + + NSFont + NSObject + + $classname + NSFont + + + $classes + + NSDictionary + NSObject + + $classname + NSDictionary + + + $classes + + KBWordCountingTextStorage + NSTextStorage + NSMutableAttributedString + NSAttributedString + NSObject + + $classname + KBWordCountingTextStorage + + + $class + + CF$UID + 36 + + NS.time + 267380389.39831501 + + + $classes + + NSDate + NSObject + + $classname + NSDate + + + $classes + + NSMutableArray + NSArray + NSObject + + $classname + NSMutableArray + + + $top + + Snapshots + + CF$UID + 1 + + + $version + 100000 + + -- cgit v1.2.3