[stress-test] stress test options!

This commit is contained in:
Christopher Lam 2018-07-01 14:12:39 +08:00
parent 694d0f0613
commit dfe1f34573
3 changed files with 1203 additions and 0 deletions

View File

@ -10,6 +10,7 @@ set(scm_test_with_srfi64_SOURCES
test-charts.scm test-charts.scm
test-transaction.scm test-transaction.scm
test-balance-sheet.scm test-balance-sheet.scm
test-stress-options.scm
test-income-gst.scm test-income-gst.scm
) )

View File

@ -0,0 +1,230 @@
(use-modules (gnucash utilities))
(use-modules (gnucash gnc-module))
(gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
(use-modules (gnucash engine test test-extras))
(use-modules (gnucash report standard-reports))
(use-modules (gnucash report business-reports))
(use-modules (gnucash report view-column))
(use-modules (gnucash report stylesheets))
(use-modules (gnucash report taxinvoice))
(use-modules (gnucash report report-system))
(use-modules (gnucash report report-system test test-extras))
(use-modules (srfi srfi-64))
(use-modules (gnucash engine test srfi64-extras))
(use-modules (sxml simple))
(use-modules (sxml xpath))
(load "test-stress-optionslist.scm")
;; The above optionslist was generated programmatically. It was
;; generated by running a sentinel function in the middle of an
;; existing report renderer. The sentinel function is defined as
;; follows, then was cleaned up using emacs' indenting. No other
;; processing was done. Only the multichoice and boolean options for
;; most reports were dumped. Although this cannot provide whole
;; coverage for option permutations, it can catch many errors while
;; refactoring inner functions.
;; (define (mydump)
;; (with-output-to-file "test-stress-optionslist.scm"
;; (lambda ()
;; (display "(define optionslist\n (list \n")
;; (gnc:report-templates-for-each
;; (lambda (report-id template)
;; (let* ((options-generator (gnc:report-template-options-generator template))
;; (name (gnc:report-template-name template))
;; (options (and (not (string=? name "General Journal"))
;; (options-generator))))
;; (define (disp d)
;; (define (try proc)
;; (catch 'wrong-type-arg
;; (lambda () (proc d))
;; (const #f)))
;; (or (and (symbol? d) (string-append "'" (symbol->string d)))
;; (and (list? d) (string-append "(list " (string-join (map disp d) " ") ")"))
;; (and (pair? d) (format #f "(cons ~a . ~a)"
;; (disp (car d))
;; (disp (cdr d))))
;; (try gnc-commodity-get-mnemonic)
;; (try xaccAccountGetName)
;; (try gnc-budget-get-name)
;; (format #f "~s" d)))
;; (format #t "(list (cons 'report-id ~s)\n (cons 'report-name ~s)\n (cons 'options\n (list\n"
;; report-id (gnc:report-template-name template))
;; (if options
;; (gnc:options-for-each
;; (lambda (option)
;; (if (memq (gnc:option-type option) '(multichoice boolean))
;; (format #t " (vector ~s ~s '~s '~s)\n"
;; (gnc:option-section option)
;; (gnc:option-name option)
;; (gnc:option-type option)
;; (case (gnc:option-type option)
;; ((multichoice) (map (lambda (d) (vector-ref d 0)) (gnc:option-data option)))
;; ((boolean) (list #t #f))
;; ;; (else "\"\"")
;; (else (disp (gnc:option-value option)))))))
;; options)
;; )
;; (display ")))\n"))))
;; (display "))\n"))))
;; Explicitly set locale to make the report output predictable
(setlocale LC_ALL "C")
(define (run-test)
(test-runner-factory gnc:test-runner)
(test-begin "stress options")
(tests)
(test-end "stress options"))
(define (set-option! options section name value)
(let ((option (gnc:lookup-option options section name)))
(if option
(gnc:option-set-value option value))))
(define (mnemonic->commodity sym)
(gnc-commodity-table-lookup
(gnc-commodity-table-get-table (gnc-get-current-book))
(gnc-commodity-get-namespace (gnc-default-report-currency))
sym))
(define structure
(list "Root" (list (cons 'type ACCT-TYPE-ASSET))
(list "Asset"
(list "Bank")
(list "GBP Bank" (list (cons 'commodity (mnemonic->commodity "GBP"))))
(list "Wallet"))
(list "Income" (list (cons 'type ACCT-TYPE-INCOME)))
(list "Income-GBP" (list (cons 'type ACCT-TYPE-INCOME)
(cons 'commodity (mnemonic->commodity "GBP"))))
(list "Expenses" (list (cons 'type ACCT-TYPE-EXPENSE)))
(list "Liabilities" (list (cons 'type ACCT-TYPE-LIABILITY)))
(list "Equity" (list (cons 'type ACCT-TYPE-EQUITY)))
))
(define (test report-name uuid report-options)
(let ((options (gnc:make-report-options uuid)))
(test-assert (format #f "basic test ~a" report-name)
(gnc:options->render uuid options (string-append "stress-" report-name) "test"))
(format #t "Testing SIMPLE combinations for:\n~a" report-name)
(for-each
(lambda (option)
(format #t ",~a/~a"
(vector-ref option 0)
(vector-ref option 1)))
report-options)
(newline)
(for-each
(lambda (idx)
(display report-name)
(for-each
(lambda (option)
(let* ((section (vector-ref option 0))
(name (vector-ref option 1))
(value (list-ref (vector-ref option 3)
(modulo idx (length (vector-ref option 3))))))
(set-option! options section name value)
(format #t ",~a"
(cond
((boolean? value) (if value 't 'f))
(else value)))))
report-options)
(catch #t
(lambda ()
(gnc:options->render uuid options "stress-test" "test")
(display "[pass]\n"))
(lambda (k . args)
(format #t "[fail]... error: (~s . ~s) options-list are:\n~a"
k args
(gnc:html-render-options-changed options #t))
(test-assert "logging test failure as above..."
#f))))
(iota
(apply max
(map (lambda (opt) (length (vector-ref opt 3)))
report-options)))
)))
(define (tests)
(let* ((env (create-test-env))
(account-alist (env-create-account-structure-alist env structure))
(bank (cdr (assoc "Bank" account-alist)))
(gbp-bank (cdr (assoc "GBP Bank" account-alist)))
(wallet (cdr (assoc "Wallet" account-alist)))
(income (cdr (assoc "Income" account-alist)))
(gbp-income (cdr (assoc "Income-GBP" account-alist)))
(expense (cdr (assoc "Expenses" account-alist)))
(liability (cdr (assoc "Liabilities" account-alist)))
(equity (cdr (assoc "Equity" account-alist))))
;; populate datafile with old transactions
(env-transfer env 01 01 1970 bank expense 5 #:description "desc-1" #:num "trn1" #:memo "memo-3")
(env-transfer env 31 12 1969 income bank 10 #:description "desc-2" #:num "trn2" #:void-reason "void" #:notes "notes3")
(env-transfer env 31 12 1969 income bank 29 #:description "desc-3" #:num "trn3"
#:reconcile (cons #\c (gnc-dmy2time64 01 03 1970)))
(env-transfer env 01 02 1970 bank expense 15 #:description "desc-4" #:num "trn4" #:notes "notes2" #:memo "memo-1")
(env-transfer env 10 01 1970 liability expense 10 #:description "desc-5" #:num "trn5" #:void-reason "any")
(env-transfer env 10 01 1970 liability expense 11 #:description "desc-6" #:num "trn6" #:notes "notes1")
(env-transfer env 10 02 1970 bank liability 8 #:description "desc-7" #:num "trn7" #:notes "notes1" #:memo "memo-2"
#:reconcile (cons #\y (gnc-dmy2time64 01 03 1970)))
(let ((txn (xaccMallocTransaction (gnc-get-current-book)))
(split-1 (xaccMallocSplit (gnc-get-current-book)))
(split-2 (xaccMallocSplit (gnc-get-current-book)))
(split-3 (xaccMallocSplit (gnc-get-current-book))))
(xaccTransBeginEdit txn)
(xaccTransSetDescription txn "$100bank -> $80expenses + $20wallet")
(xaccTransSetCurrency txn (xaccAccountGetCommodity bank))
(xaccTransSetDate txn 14 02 1971)
(xaccSplitSetParent split-1 txn)
(xaccSplitSetParent split-2 txn)
(xaccSplitSetParent split-3 txn)
(xaccSplitSetAccount split-1 bank)
(xaccSplitSetAccount split-2 expense)
(xaccSplitSetAccount split-3 wallet)
(xaccSplitSetValue split-1 -100)
(xaccSplitSetValue split-2 80)
(xaccSplitSetValue split-3 20)
(xaccSplitSetAmount split-1 -100)
(xaccSplitSetAmount split-2 80)
(xaccSplitSetAmount split-3 20)
(xaccTransSetNotes txn "multisplit")
(xaccTransCommitEdit txn))
(let ((closing-txn (env-transfer env 31 12 1977 expense equity 111 #:description "Closing")))
(xaccTransSetIsClosingTxn closing-txn #t))
(env-transfer-foreign env 15 01 2000 gbp-bank bank 10 14 #:description "GBP 10 to USD 14")
(env-transfer-foreign env 15 02 2000 bank gbp-bank 9 6 #:description "USD 9 to GBP 6")
(for-each (lambda (m)
(env-transfer env 08 (1+ m) 1978 gbp-income gbp-bank 51 #:description "#51 income")
(env-transfer env 03 (1+ m) 1978 income bank 103 #:description "$103 income")
(env-transfer env 15 (1+ m) 1978 bank expense 22 #:description "$22 expense")
(env-transfer env 09 (1+ m) 1978 income bank 109 #:description "$109 income"))
(iota 12))
(let ((mid (floor (/ (+ (gnc-accounting-period-fiscal-start)
(gnc-accounting-period-fiscal-end)) 2))))
(env-create-transaction env mid bank income 200))
(for-each
(lambda (option-set)
(let ((report-name (assq-ref option-set 'report-name))
(report-guid (assq-ref option-set 'report-id))
(report-options (assq-ref option-set 'options)))
(if (member report-name
;; these reports seem to cause problems when running...
'("Income Statement"
"Tax Invoice"
"Net Worth Linechart"
"Tax Schedule Report/TXF Export"
"Receipt"
"Future Scheduled Transactions Summary"
"Welcome to GnuCash"
"Hello, World"
"Budget Income Statement"
"Multicolumn View"
"General Journal"
"Australian Tax Invoice"
"Balance Sheet (eguile)"
"networth"
))
(format #t "Skipping ~a...\n" report-name)
(test report-name report-guid report-options))))
optionslist)))

View File

@ -0,0 +1,972 @@
(define optionslist
(list
(list (cons 'report-id "e9cf815f79db44bcb637d0295093ae3d")
(cons 'report-name "Assets Over Time")
(cons 'options
(list
(vector "Accounts" "Show Accounts until level" 'multichoice '(all 1 2 3 4 5 6))
(vector "Display" "Chart Type" 'multichoice '(barchart linechart))
(vector "Display" "Use Stacked Charts" 'boolean '(#t #f))
(vector "Display" "Sort Method" 'multichoice '(acct-code alphabetical amount))
(vector "Display" "Show table" 'boolean '(#t #f))
(vector "Display" "Show long account names" 'boolean '(#t #f))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "General" "Step Size" 'multichoice '(DayDelta WeekDelta TwoWeekDelta MonthDelta QuarterDelta HalfYearDelta YearDelta))
)))
(list (cons 'report-id "e45218c6d76f11e7b5ef0800277ef320")
(cons 'report-name "Reconciliation Report")
(cons 'options
(list
(vector "Accounts" "Filter Type" 'multichoice '(none include exclude))
(vector "Display" "Sign Reverses" 'multichoice '(global none income-expense credit-accounts))
(vector "Display" "Description" 'boolean '(#t #f))
(vector "Display" "Amount" 'multichoice '(none single double))
(vector "Display" "Num" 'boolean '(#t #f))
(vector "Display" "Shares" 'boolean '(#t #f))
(vector "Display" "Use Full Account Name" 'boolean '(#t #f))
(vector "Display" "Use Full Other Account Name" 'boolean '(#t #f))
(vector "Display" "Detail Level" 'multichoice '(multi-line single))
(vector "Display" "Account Code" 'boolean '(#t #f))
(vector "Display" "Memo" 'boolean '(#t #f))
(vector "Display" "Totals" 'boolean '(#t #f))
(vector "Display" "Account Name" 'boolean '(#t #f))
(vector "Display" "Other Account Name" 'boolean '(#t #f))
(vector "Display" "Price" 'boolean '(#t #f))
(vector "Display" "Other Account Code" 'boolean '(#t #f))
(vector "Display" "Reconciled Date" 'boolean '(#t #f))
(vector "Display" "Subtotal Table" 'boolean '(#t #f))
(vector "Display" "Notes" 'boolean '(#t #f))
(vector "Display" "Date" 'boolean '(#t #f))
(vector "Sorting" "Secondary Sort Order" 'multichoice '(ascend descend))
(vector "Sorting" "Show Full Account Name" 'boolean '(#t #f))
(vector "Sorting" "Show Account Code" 'boolean '(#t #f))
(vector "Sorting" "Show Account Description" 'boolean '(#t #f))
(vector "Sorting" "Primary Subtotal for Date Key" 'multichoice '(none daily weekly monthly quarterly yearly))
(vector "Sorting" "Secondary Key" 'multichoice '(account-name account-code date reconciled-date reconciled-status register-order corresponding-acc-name corresponding-acc-code amount description number t-number memo notes none))
(vector "Sorting" "Add indenting columns" 'boolean '(#t #f))
(vector "Sorting" "Secondary Subtotal" 'boolean '(#t #f))
(vector "Sorting" "Primary Subtotal" 'boolean '(#t #f))
(vector "Sorting" "Secondary Subtotal for Date Key" 'multichoice '(none daily weekly monthly quarterly yearly))
(vector "Sorting" "Primary Key" 'multichoice '(account-name account-code date reconciled-date reconciled-status register-order corresponding-acc-name corresponding-acc-code amount description number t-number memo notes none))
(vector "Sorting" "Show Informal Debit/Credit Headers" 'boolean '(#t #f))
(vector "Sorting" "Primary Sort Order" 'multichoice '(ascend descend))
(vector "Sorting" "Show subtotals only (hide transactional data)" 'boolean '(#t #f))
(vector "Filter" "Closing transactions" 'multichoice '(exclude-closing include-both closing-only))
(vector "Filter" "Void Transactions" 'multichoice '(non-void-only void-only both))
(vector "Filter" "Use regular expressions for transaction filter" 'boolean '(#t #f))
(vector "Filter" "Use regular expressions for account name filter" 'boolean '(#t #f))
(vector "Filter" "Reconcile Status" 'multichoice '(all unreconciled cleared reconciled))
(vector "General" "Show original currency amount" 'boolean '(#t #f))
(vector "General" "Table for Exporting" 'boolean '(#t #f))
(vector "General" "Add options summary" 'multichoice '(no-match always never))
(vector "General" "Common Currency" 'boolean '(#t #f))
)))
(list (cons 'report-id "583c313fcc484efc974c4c844404f454")
(cons 'report-name "Budget Income Statement")
(cons 'options
(list
(vector "Commodities" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "Commodities" "Show Exchange Rates" 'boolean '(#t #f))
(vector "Commodities" "Show Foreign Currencies" 'boolean '(#t #f))
(vector "Accounts" "Levels of Subaccounts" 'multichoice '(all 1 2 3 4 5 6))
(vector "Accounts" "Flatten list to depth limit" 'boolean '(#t #f))
(vector "Display" "Display as a two column report" 'boolean '(#t #f))
(vector "Display" "Show accounting-style rules" 'boolean '(#t #f))
(vector "Display" "Display accounts as hyperlinks" 'boolean '(#t #f))
(vector "Display" "Parent account balances" 'multichoice '(immediate-bal recursive-bal omit-bal))
(vector "Display" "Display in standard, income first, order" 'boolean '(#t #f))
(vector "Display" "Include accounts with zero total balances" 'boolean '(#t #f))
(vector "Display" "Label the revenue section" 'boolean '(#t #f))
(vector "Display" "Parent account subtotals" 'multichoice '(t f canonically-tabbed))
(vector "Display" "Include expense total" 'boolean '(#t #f))
(vector "Display" "Omit zero balance figures" 'boolean '(#t #f))
(vector "Display" "Include revenue total" 'boolean '(#t #f))
(vector "Display" "Label the expense section" 'boolean '(#t #f))
(vector "General" "Report for range of budget periods" 'boolean '(#t #f))
)))
(list (cons 'report-id "4166a20981985fd2b07ff8cb3b7d384e")
(cons 'report-name "Customer Summary")
(cons 'options
(list
(vector "Display" "Sort Order" 'multichoice '(ascend descend))
(vector "Display" "Show Inactive Customers" 'boolean '(#t #f))
(vector "Display" "Show Lines with All Zeros" 'boolean '(#t #f))
(vector "Display" "Show Expense Column" 'boolean '(#t #f))
(vector "Display" "Sort Column" 'multichoice '(customername profit markup sales expense))
(vector "Display" "Show Company Address" 'boolean '(#t #f))
(vector "__reg" "reverse?" 'boolean '(#t #f))
)))
(list (cons 'report-id "d8ba4a2e89e8479ca9f6eccdeb164588")
(cons 'report-name "Multicolumn View")
(cons 'options
(list
)))
(list (cons 'report-id "216cd0cf6931453ebcce85415aba7082")
(cons 'report-name "Trial Balance")
(cons 'options
(list
(vector "Commodities" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "Commodities" "Show Exchange Rates" 'boolean '(#t #f))
(vector "Commodities" "Show Foreign Currencies" 'boolean '(#t #f))
(vector "Accounts" "Levels of Subaccounts" 'multichoice '(all 1 2 3 4 5 6))
(vector "Entries" "Adjusting Entries Pattern is regular expression" 'boolean '(#t #f))
(vector "Entries" "Closing Entries pattern is case-sensitive" 'boolean '(#t #f))
(vector "Entries" "Adjusting Entries pattern is case-sensitive" 'boolean '(#t #f))
(vector "Entries" "Closing Entries Pattern is regular expression" 'boolean '(#t #f))
(vector "Display" "Display accounts as hyperlinks" 'boolean '(#t #f))
(vector "General" "Report variation" 'multichoice '(current pre-adj work-sheet))
)))
(list (cons 'report-id "47f45d7d6d57b68518481c1fc8d4e4ba")
(cons 'report-name "Future Scheduled Transactions Summary")
(cons 'options
(list
(vector "Commodities" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "Commodities" "Show Exchange Rates" 'boolean '(#t #f))
(vector "Commodities" "Show Foreign Currencies" 'boolean '(#t #f))
(vector "Accounts" "Levels of Subaccounts" 'multichoice '(all 1 2 3 4 5 6))
(vector "Accounts" "Depth limit behavior" 'multichoice '(summarize flatten truncate))
(vector "Display" "Show accounting-style rules" 'boolean '(#t #f))
(vector "Display" "Display accounts as hyperlinks" 'boolean '(#t #f))
(vector "Display" "Parent account balances" 'multichoice '(immediate-bal recursive-bal omit-bal))
(vector "Display" "Account Description" 'boolean '(#t #f))
(vector "Display" "Include accounts with zero total balances" 'boolean '(#t #f))
(vector "Display" "Parent account subtotals" 'multichoice '(t f canonically-tabbed))
(vector "Display" "Account Code" 'boolean '(#t #f))
(vector "Display" "Omit zero balance figures" 'boolean '(#t #f))
(vector "Display" "Account Notes" 'boolean '(#t #f))
(vector "Display" "Account Type" 'boolean '(#t #f))
(vector "Display" "Account Balance" 'boolean '(#t #f))
)))
(list (cons 'report-id "c2a996c8970f43448654ca84f17dda24")
(cons 'report-name "Equity Statement")
(cons 'options
(list
(vector "Commodities" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "Commodities" "Show Exchange Rates" 'boolean '(#t #f))
(vector "Commodities" "Show Foreign Currencies" 'boolean '(#t #f))
(vector "Entries" "Closing Entries pattern is case-sensitive" 'boolean '(#t #f))
(vector "Entries" "Closing Entries Pattern is regular expression" 'boolean '(#t #f))
(vector "Display" "Show accounting-style rules" 'boolean '(#t #f))
)))
(list (cons 'report-id "3dbbc2584da64e7a8674355bc3fbfe3d")
(cons 'report-name "Australian Tax Invoice")
(cons 'options
(list
(vector "Display" "table-border-collapse" 'boolean '(#t #f))
(vector "Elements" "Show net price" 'boolean '(#t #f))
(vector "Elements" "column: Units" 'boolean '(#t #f))
(vector "Elements" "Show Job number" 'boolean '(#t #f))
(vector "Elements" "row: Address" 'boolean '(#t #f))
(vector "Elements" "column: Date" 'boolean '(#t #f))
(vector "Elements" "column: Tax Rate" 'boolean '(#t #f))
(vector "Elements" "Invoice number next to title" 'boolean '(#t #f))
(vector "Elements" "row: Company Name" 'boolean '(#t #f))
(vector "Elements" "row: Invoice Number" 'boolean '(#t #f))
(vector "Elements" "Show Job name" 'boolean '(#t #f))
(vector "Elements" "row: Contact" 'boolean '(#t #f))
)))
(list (cons 'report-id "2e3751edeb7544e8a20fd19e9d08bb65")
(cons 'report-name "Balance Sheet (eguile)")
(cons 'options
(list
(vector "Commodities" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "Commodities" "Show Foreign Currencies" 'boolean '(#t #f))
(vector "Accounts" "Display accounts as hyperlinks" 'boolean '(#t #f))
(vector "Accounts" "Levels of Subaccounts" 'multichoice '(all 1 2 3 4 5 6))
(vector "Accounts" "Flatten list to depth limit" 'boolean '(#t #f))
(vector "Accounts" "Exclude accounts with zero total balances" 'boolean '(#t #f))
(vector "Display" "Negative amount format" 'multichoice '(negsign negbrackets))
(vector "Display" "1- or 2-column report" 'multichoice '(autocols onecol twocols))
)))
(list (cons 'report-id "e9418ff64f2c11e5b61d1c7508d793ed")
(cons 'report-name "Securities")
(cons 'options
(list
(vector "Display" "Show Totals" 'boolean '(#t #f))
(vector "Display" "Show long names" 'boolean '(#t #f))
(vector "Display" "Show Percents" 'boolean '(#t #f))
(vector "Display" "Sort Method" 'multichoice '(acct-code alphabetical amount))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
)))
(list (cons 'report-id "e1bd09b8a1dd49dd85760db9d82b045c")
(cons 'report-name "Income Accounts")
(cons 'options
(list
(vector "Accounts" "Show Accounts until level" 'multichoice '(all 1 2 3 4 5 6))
(vector "Display" "Show Totals" 'boolean '(#t #f))
(vector "Display" "Show long names" 'boolean '(#t #f))
(vector "Display" "Show Percents" 'boolean '(#t #f))
(vector "Display" "Sort Method" 'multichoice '(acct-code alphabetical amount))
(vector "General" "Show Average" 'multichoice '(None YearDelta MonthDelta WeekDelta))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
)))
(list (cons 'report-id "2e22929e5c5b4b769f615a815ef0c20f")
(cons 'report-name "General Ledger")
(cons 'options
(list
(vector "Accounts" "Filter Type" 'multichoice '(none include exclude))
(vector "Display" "Sign Reverses" 'multichoice '(global none income-expense credit-accounts))
(vector "Display" "Description" 'boolean '(#t #f))
(vector "Display" "Amount" 'multichoice '(none single double))
(vector "Display" "Num" 'boolean '(#t #f))
(vector "Display" "Running Balance" 'boolean '(#t #f))
(vector "Display" "Shares" 'boolean '(#t #f))
(vector "Display" "Use Full Account Name" 'boolean '(#t #f))
(vector "Display" "Use Full Other Account Name" 'boolean '(#t #f))
(vector "Display" "Detail Level" 'multichoice '(multi-line single))
(vector "Display" "Account Code" 'boolean '(#t #f))
(vector "Display" "Memo" 'boolean '(#t #f))
(vector "Display" "Totals" 'boolean '(#t #f))
(vector "Display" "Account Name" 'boolean '(#t #f))
(vector "Display" "Other Account Name" 'boolean '(#t #f))
(vector "Display" "Price" 'boolean '(#t #f))
(vector "Display" "Other Account Code" 'boolean '(#t #f))
(vector "Display" "Reconciled Date" 'boolean '(#t #f))
(vector "Display" "Subtotal Table" 'boolean '(#t #f))
(vector "Display" "Notes" 'boolean '(#t #f))
(vector "Display" "Date" 'boolean '(#t #f))
(vector "Sorting" "Secondary Sort Order" 'multichoice '(ascend descend))
(vector "Sorting" "Show Full Account Name" 'boolean '(#t #f))
(vector "Sorting" "Show Account Code" 'boolean '(#t #f))
(vector "Sorting" "Show Account Description" 'boolean '(#t #f))
(vector "Sorting" "Primary Subtotal for Date Key" 'multichoice '(none daily weekly monthly quarterly yearly))
(vector "Sorting" "Secondary Key" 'multichoice '(account-name account-code date reconciled-date reconciled-status register-order corresponding-acc-name corresponding-acc-code amount description number t-number memo notes none))
(vector "Sorting" "Add indenting columns" 'boolean '(#t #f))
(vector "Sorting" "Secondary Subtotal" 'boolean '(#t #f))
(vector "Sorting" "Primary Subtotal" 'boolean '(#t #f))
(vector "Sorting" "Secondary Subtotal for Date Key" 'multichoice '(none daily weekly monthly quarterly yearly))
(vector "Sorting" "Primary Key" 'multichoice '(account-name account-code date reconciled-date reconciled-status register-order corresponding-acc-name corresponding-acc-code amount description number t-number memo notes none))
(vector "Sorting" "Show Informal Debit/Credit Headers" 'boolean '(#t #f))
(vector "Sorting" "Primary Sort Order" 'multichoice '(ascend descend))
(vector "Sorting" "Show subtotals only (hide transactional data)" 'boolean '(#t #f))
(vector "Filter" "Closing transactions" 'multichoice '(exclude-closing include-both closing-only))
(vector "Filter" "Void Transactions" 'multichoice '(non-void-only void-only both))
(vector "Filter" "Use regular expressions for transaction filter" 'boolean '(#t #f))
(vector "Filter" "Use regular expressions for account name filter" 'boolean '(#t #f))
(vector "Filter" "Reconcile Status" 'multichoice '(all unreconciled cleared reconciled))
(vector "General" "Stylesheet" 'multichoice '(Default Easy Footer #{Head or Tail}# Technicolor))
(vector "General" "Show original currency amount" 'boolean '(#t #f))
(vector "General" "Table for Exporting" 'boolean '(#t #f))
(vector "General" "Add options summary" 'multichoice '(no-match always never))
(vector "General" "Common Currency" 'boolean '(#t #f))
)))
(list (cons 'report-id "9cf76bed17f14401b8e3e22d0079cb98")
(cons 'report-name "Receivable Aging")
(cons 'options
(list
(vector "Display" "Address Name" 'boolean '(#t #f))
(vector "Display" "Address 1" 'boolean '(#t #f))
(vector "Display" "Active" 'boolean '(#t #f))
(vector "Display" "Address 2" 'boolean '(#t #f))
(vector "Display" "Address 3" 'boolean '(#t #f))
(vector "Display" "Address Source" 'multichoice '(billing shipping))
(vector "Display" "Address Email" 'boolean '(#t #f))
(vector "Display" "Address Phone" 'boolean '(#t #f))
(vector "Display" "Address 4" 'boolean '(#t #f))
(vector "Display" "Address Fax" 'boolean '(#t #f))
(vector "General" "Sort By" 'multichoice '(name total oldest-bracket))
(vector "General" "Show zero balance items" 'boolean '(#t #f))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "General" "Sort Order" 'multichoice '(increasing decreasing))
(vector "General" "Due or Post Date" 'multichoice '(duedate postdate))
(vector "General" "Show Multi-currency Totals" 'boolean '(#t #f))
)))
(list (cons 'report-id "3ce293441e894423a2425d7a22dd1ac6")
(cons 'report-name "Fancy Invoice")
(cons 'options
(list
(vector "Display" "Payable to" 'boolean '(#t #f))
(vector "Display" "Individual Taxes" 'boolean '(#t #f))
(vector "Display" "Billing Terms" 'boolean '(#t #f))
(vector "Display" "References" 'boolean '(#t #f))
(vector "Display" "Totals" 'boolean '(#t #f))
(vector "Display" "Invoice Notes" 'boolean '(#t #f))
(vector "Display" "Billing ID" 'boolean '(#t #f))
(vector "Display" "Payments" 'boolean '(#t #f))
(vector "Display" "Company contact" 'boolean '(#t #f))
(vector "Display Columns" "Tax Amount" 'boolean '(#t #f))
(vector "Display Columns" "Description" 'boolean '(#t #f))
(vector "Display Columns" "Discount" 'boolean '(#t #f))
(vector "Display Columns" "Total" 'boolean '(#t #f))
(vector "Display Columns" "Action" 'boolean '(#t #f))
(vector "Display Columns" "Taxable" 'boolean '(#t #f))
(vector "Display Columns" "Quantity" 'boolean '(#t #f))
(vector "Display Columns" "Price" 'boolean '(#t #f))
(vector "Display Columns" "Date" 'boolean '(#t #f))
)))
(list (cons 'report-id "08ae9c2e884b4f9787144f47eacd7f44")
(cons 'report-name "Employee Report")
(cons 'options
(list
(vector "Display Columns" "Tax" 'boolean '(#t #f))
(vector "Display Columns" "Description" 'boolean '(#t #f))
(vector "Display Columns" "Amount" 'boolean '(#t #f))
(vector "Display Columns" "Debits" 'boolean '(#t #f))
(vector "Display Columns" "Type" 'boolean '(#t #f))
(vector "Display Columns" "Due Date" 'boolean '(#t #f))
(vector "Display Columns" "Sale" 'boolean '(#t #f))
(vector "Display Columns" "Reference" 'boolean '(#t #f))
(vector "Display Columns" "Credits" 'boolean '(#t #f))
(vector "Display Columns" "Date" 'boolean '(#t #f))
(vector "General" "Due or Post Date" 'multichoice '(duedate postdate))
(vector "__reg" "reverse?" 'boolean '(#t #f))
)))
(list (cons 'report-id "8758ba23984c40dea5527f5f0ca2779e")
(cons 'report-name "Profit & Loss")
(cons 'options
(list
(vector "Commodities" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "Commodities" "Show Exchange Rates" 'boolean '(#t #f))
(vector "Commodities" "Show Foreign Currencies" 'boolean '(#t #f))
(vector "Accounts" "Levels of Subaccounts" 'multichoice '(all 1 2 3 4 5 6))
(vector "Accounts" "Flatten list to depth limit" 'boolean '(#t #f))
(vector "Entries" "Closing Entries pattern is case-sensitive" 'boolean '(#t #f))
(vector "Entries" "Closing Entries Pattern is regular expression" 'boolean '(#t #f))
(vector "Display" "Display as a two column report" 'boolean '(#t #f))
(vector "Display" "Show accounting-style rules" 'boolean '(#t #f))
(vector "Display" "Display accounts as hyperlinks" 'boolean '(#t #f))
(vector "Display" "Parent account balances" 'multichoice '(immediate-bal recursive-bal omit-bal))
(vector "Display" "Display in standard, income first, order" 'boolean '(#t #f))
(vector "Display" "Include accounts with zero total balances" 'boolean '(#t #f))
(vector "Display" "Label the revenue section" 'boolean '(#t #f))
(vector "Display" "Parent account subtotals" 'multichoice '(t f canonically-tabbed))
(vector "Display" "Include expense total" 'boolean '(#t #f))
(vector "Display" "Include trading accounts total" 'boolean '(#t #f))
(vector "Display" "Omit zero balance figures" 'boolean '(#t #f))
(vector "Display" "Include revenue total" 'boolean '(#t #f))
(vector "Display" "Label the expense section" 'boolean '(#t #f))
(vector "Display" "Label the trading accounts section" 'boolean '(#t #f))
)))
(list (cons 'report-id "c4173ac99b2b448289bf4d11c731af13")
(cons 'report-name "Balance Sheet")
(cons 'options
(list
(vector "Commodities" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "Commodities" "Show Exchange Rates" 'boolean '(#t #f))
(vector "Commodities" "Show Foreign Currencies" 'boolean '(#t #f))
(vector "Accounts" "Levels of Subaccounts" 'multichoice '(all 1 2 3 4 5 6))
(vector "Accounts" "Flatten list to depth limit" 'boolean '(#t #f))
(vector "Display" "Show accounting-style rules" 'boolean '(#t #f))
(vector "Display" "Display accounts as hyperlinks" 'boolean '(#t #f))
(vector "Display" "Parent account balances" 'multichoice '(immediate-bal recursive-bal omit-bal))
(vector "Display" "Include assets total" 'boolean '(#t #f))
(vector "Display" "Include accounts with zero total balances" 'boolean '(#t #f))
(vector "Display" "Parent account subtotals" 'multichoice '(t f canonically-tabbed))
(vector "Display" "Include liabilities total" 'boolean '(#t #f))
(vector "Display" "Label the liabilities section" 'boolean '(#t #f))
(vector "Display" "Omit zero balance figures" 'boolean '(#t #f))
(vector "Display" "Label the assets section" 'boolean '(#t #f))
(vector "Display" "Include equity total" 'boolean '(#t #f))
(vector "Display" "Label the equity section" 'boolean '(#t #f))
(vector "General" "Single column Balance Sheet" 'boolean '(#t #f))
(vector "General" "Use standard US layout" 'boolean '(#t #f))
)))
(list (cons 'report-id "c146317be32e4948a561ec7fc89d15c1")
(cons 'report-name "Customer Report")
(cons 'options
(list
(vector "Display Columns" "Tax" 'boolean '(#t #f))
(vector "Display Columns" "Description" 'boolean '(#t #f))
(vector "Display Columns" "Amount" 'boolean '(#t #f))
(vector "Display Columns" "Debits" 'boolean '(#t #f))
(vector "Display Columns" "Type" 'boolean '(#t #f))
(vector "Display Columns" "Due Date" 'boolean '(#t #f))
(vector "Display Columns" "Sale" 'boolean '(#t #f))
(vector "Display Columns" "Reference" 'boolean '(#t #f))
(vector "Display Columns" "Credits" 'boolean '(#t #f))
(vector "Display Columns" "Date" 'boolean '(#t #f))
(vector "General" "Due or Post Date" 'multichoice '(duedate postdate))
(vector "__reg" "reverse?" 'boolean '(#t #f))
)))
(list (cons 'report-id "2fe3b9833af044abb929a88d5a59620f")
(cons 'report-name "Transaction Report")
(cons 'options
(list
(vector "Accounts" "Filter Type" 'multichoice '(none include exclude))
(vector "Display" "Sign Reverses" 'multichoice '(global none income-expense credit-accounts))
(vector "Display" "Description" 'boolean '(#t #f))
(vector "Display" "Amount" 'multichoice '(none single double))
(vector "Display" "Num" 'boolean '(#t #f))
(vector "Display" "Running Balance" 'boolean '(#t #f))
(vector "Display" "Shares" 'boolean '(#t #f))
(vector "Display" "Use Full Account Name" 'boolean '(#t #f))
(vector "Display" "Use Full Other Account Name" 'boolean '(#t #f))
(vector "Display" "Detail Level" 'multichoice '(multi-line single))
(vector "Display" "Account Code" 'boolean '(#t #f))
(vector "Display" "Memo" 'boolean '(#t #f))
(vector "Display" "Totals" 'boolean '(#t #f))
(vector "Display" "Account Name" 'boolean '(#t #f))
(vector "Display" "Other Account Name" 'boolean '(#t #f))
(vector "Display" "Price" 'boolean '(#t #f))
(vector "Display" "Other Account Code" 'boolean '(#t #f))
(vector "Display" "Reconciled Date" 'boolean '(#t #f))
(vector "Display" "Subtotal Table" 'boolean '(#t #f))
(vector "Display" "Notes" 'boolean '(#t #f))
(vector "Display" "Date" 'boolean '(#t #f))
(vector "Sorting" "Secondary Sort Order" 'multichoice '(ascend descend))
(vector "Sorting" "Show Full Account Name" 'boolean '(#t #f))
(vector "Sorting" "Show Account Code" 'boolean '(#t #f))
(vector "Sorting" "Show Account Description" 'boolean '(#t #f))
(vector "Sorting" "Primary Subtotal for Date Key" 'multichoice '(none daily weekly monthly quarterly yearly))
(vector "Sorting" "Secondary Key" 'multichoice '(account-name account-code date reconciled-date reconciled-status register-order corresponding-acc-name corresponding-acc-code amount description number t-number memo notes none))
(vector "Sorting" "Add indenting columns" 'boolean '(#t #f))
(vector "Sorting" "Secondary Subtotal" 'boolean '(#t #f))
(vector "Sorting" "Primary Subtotal" 'boolean '(#t #f))
(vector "Sorting" "Secondary Subtotal for Date Key" 'multichoice '(none daily weekly monthly quarterly yearly))
(vector "Sorting" "Primary Key" 'multichoice '(account-name account-code date reconciled-date reconciled-status register-order corresponding-acc-name corresponding-acc-code amount description number t-number memo notes none))
(vector "Sorting" "Show Informal Debit/Credit Headers" 'boolean '(#t #f))
(vector "Sorting" "Primary Sort Order" 'multichoice '(ascend descend))
(vector "Sorting" "Show subtotals only (hide transactional data)" 'boolean '(#t #f))
(vector "Filter" "Closing transactions" 'multichoice '(exclude-closing include-both closing-only))
(vector "Filter" "Void Transactions" 'multichoice '(non-void-only void-only both))
(vector "Filter" "Use regular expressions for transaction filter" 'boolean '(#t #f))
(vector "Filter" "Use regular expressions for account name filter" 'boolean '(#t #f))
(vector "Filter" "Reconcile Status" 'multichoice '(all unreconciled cleared reconciled))
(vector "General" "Show original currency amount" 'boolean '(#t #f))
(vector "General" "Table for Exporting" 'boolean '(#t #f))
(vector "General" "Add options summary" 'multichoice '(no-match always never))
(vector "General" "Common Currency" 'boolean '(#t #f))
)))
(list (cons 'report-id "e57770f2dbca46619d6dac4ac5469b50")
(cons 'report-name "Payable Aging")
(cons 'options
(list
(vector "Display" "Address Name" 'boolean '(#t #f))
(vector "Display" "Address 1" 'boolean '(#t #f))
(vector "Display" "Active" 'boolean '(#t #f))
(vector "Display" "Address 2" 'boolean '(#t #f))
(vector "Display" "Address 3" 'boolean '(#t #f))
(vector "Display" "Address Email" 'boolean '(#t #f))
(vector "Display" "Address Phone" 'boolean '(#t #f))
(vector "Display" "Address 4" 'boolean '(#t #f))
(vector "Display" "Address Fax" 'boolean '(#t #f))
(vector "General" "Sort By" 'multichoice '(name total oldest-bracket))
(vector "General" "Show zero balance items" 'boolean '(#t #f))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "General" "Sort Order" 'multichoice '(increasing decreasing))
(vector "General" "Due or Post Date" 'multichoice '(duedate postdate))
(vector "General" "Show Multi-currency Totals" 'boolean '(#t #f))
)))
(list (cons 'report-id "5426e4d987f6444387fe70880e5b28a0")
(cons 'report-name "Cash Flow Barchart")
(cons 'options
(list
(vector "Accounts" "Include Trading Accounts in report" 'boolean '(#t #f))
(vector "Display" "Show Table" 'boolean '(#t #f))
(vector "Display" "Show Money In" 'boolean '(#t #f))
(vector "Display" "Show Money Out" 'boolean '(#t #f))
(vector "Display" "Show Net Flow" 'boolean '(#t #f))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "General" "Step Size" 'multichoice '(DayDelta WeekDelta TwoWeekDelta MonthDelta QuarterDelta HalfYearDelta YearDelta))
)))
(list (cons 'report-id "0769e242be474010b4acf264a5512e6e")
(cons 'report-name "Tax Invoice")
(cons 'options
(list
(vector "Display" "table-border-collapse" 'boolean '(#t #f))
(vector "Elements" "Show net price" 'boolean '(#t #f))
(vector "Elements" "column: Units" 'boolean '(#t #f))
(vector "Elements" "Show Job number" 'boolean '(#t #f))
(vector "Elements" "row: Address" 'boolean '(#t #f))
(vector "Elements" "column: Date" 'boolean '(#t #f))
(vector "Elements" "column: Tax Rate" 'boolean '(#t #f))
(vector "Elements" "Invoice number next to title" 'boolean '(#t #f))
(vector "Elements" "row: Company Name" 'boolean '(#t #f))
(vector "Elements" "row: Invoice Number" 'boolean '(#t #f))
(vector "Elements" "Show Job name" 'boolean '(#t #f))
(vector "Elements" "row: Contact" 'boolean '(#t #f))
)))
(list (cons 'report-id "dde49fed4ca940959ae7d01b72742530")
(cons 'report-name "Expenses vs. Day of Week")
(cons 'options
(list
(vector "Accounts" "Include Sub-Accounts" 'boolean '(#t #f))
(vector "Accounts" "Show Accounts until level" 'multichoice '(all 1 2 3 4 5 6))
(vector "Display" "Show Totals" 'boolean '(#t #f))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
)))
(list (cons 'report-id "d5adcc61c62e4b8684dd8907448d7900")
(cons 'report-name "Average Balance")
(cons 'options
(list
(vector "Accounts" "Include Sub-Accounts" 'boolean '(#t #f))
(vector "Accounts" "Exclude transactions between selected accounts" 'boolean '(#t #f))
(vector "Display" "Show table" 'boolean '(#t #f))
(vector "Display" "Show plot" 'boolean '(#t #f))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "General" "Step Size" 'multichoice '(DayDelta WeekDelta TwoWeekDelta MonthDelta QuarterDelta HalfYearDelta YearDelta))
)))
(list (cons 'report-id "25455562bd234dd0b048ecc5a8af9e43")
(cons 'report-name "General Journal")
(cons 'options
(list
)))
(list (cons 'report-id "67112f318bef4fc496bdc27d106bbda4")
(cons 'report-name "Easy Invoice")
(cons 'options
(list
(vector "Display" "My Company" 'boolean '(#t #f))
(vector "Display" "Subtotal" 'boolean '(#t #f))
(vector "Display" "Individual Taxes" 'boolean '(#t #f))
(vector "Display" "Billing Terms" 'boolean '(#t #f))
(vector "Display" "Due Date" 'boolean '(#t #f))
(vector "Display" "References" 'boolean '(#t #f))
(vector "Display" "Totals" 'boolean '(#t #f))
(vector "Display" "My Company ID" 'boolean '(#t #f))
(vector "Display" "Invoice Notes" 'boolean '(#t #f))
(vector "Display" "Billing ID" 'boolean '(#t #f))
(vector "Display" "Payments" 'boolean '(#t #f))
(vector "Display Columns" "Tax Amount" 'boolean '(#t #f))
(vector "Display Columns" "Description" 'boolean '(#t #f))
(vector "Display Columns" "Discount" 'boolean '(#t #f))
(vector "Display Columns" "Total" 'boolean '(#t #f))
(vector "Display Columns" "Charge Type" 'boolean '(#t #f))
(vector "Display Columns" "Taxable" 'boolean '(#t #f))
(vector "Display Columns" "Quantity" 'boolean '(#t #f))
(vector "Display Columns" "Price" 'boolean '(#t #f))
(vector "Display Columns" "Date" 'boolean '(#t #f))
)))
(list (cons 'report-id "3298541c236b494998b236dfad6ad752")
(cons 'report-name "Account Summary")
(cons 'options
(list
(vector "Commodities" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "Commodities" "Show Exchange Rates" 'boolean '(#t #f))
(vector "Commodities" "Show Foreign Currencies" 'boolean '(#t #f))
(vector "Accounts" "Levels of Subaccounts" 'multichoice '(all 1 2 3 4 5 6))
(vector "Accounts" "Depth limit behavior" 'multichoice '(summarize flatten truncate))
(vector "Display" "Show accounting-style rules" 'boolean '(#t #f))
(vector "Display" "Display accounts as hyperlinks" 'boolean '(#t #f))
(vector "Display" "Parent account balances" 'multichoice '(immediate-bal recursive-bal omit-bal))
(vector "Display" "Account Description" 'boolean '(#t #f))
(vector "Display" "Include accounts with zero total balances" 'boolean '(#t #f))
(vector "Display" "Parent account subtotals" 'multichoice '(t f canonically-tabbed))
(vector "Display" "Account Code" 'boolean '(#t #f))
(vector "Display" "Omit zero balance figures" 'boolean '(#t #f))
(vector "Display" "Account Notes" 'boolean '(#t #f))
(vector "Display" "Account Type" 'boolean '(#t #f))
(vector "Display" "Account Balance" 'boolean '(#t #f))
)))
(list (cons 'report-id "80769921e87943adade887b9835a7685")
(cons 'report-name "Income/Expense Chart")
(cons 'options
(list
(vector "Display" "Show Income/Expense" 'boolean '(#t #f))
(vector "Display" "Show table" 'boolean '(#t #f))
(vector "Display" "Show Net Profit" 'boolean '(#t #f))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "General" "Step Size" 'multichoice '(DayDelta WeekDelta TwoWeekDelta MonthDelta QuarterDelta HalfYearDelta YearDelta))
)))
(list (cons 'report-id "f8921f4e5c284d7caca81e239f468a68")
(cons 'report-name "Tax Schedule Report/TXF Export")
(cons 'options
(list
(vector "Display" "Do not print transaction detail" 'boolean '(#t #f))
(vector "Display" "Do not print Action:Memo data" 'boolean '(#t #f))
(vector "Display" "Currency conversion date" 'multichoice '(conv-to-tran-date conv-to-report-date))
(vector "Display" "Print TXF export parameters" 'boolean '(#t #f))
(vector "Display" "Print all Transfer To/From Accounts" 'boolean '(#t #f))
(vector "Display" "Suppress $0.00 values" 'boolean '(#t #f))
(vector "Display" "Do not use special date processing" 'boolean '(#t #f))
(vector "Display" "Do not print full account names" 'boolean '(#t #f))
(vector "General" "Alternate Period" 'multichoice '(from-to #{1st-est}# #{2nd-est}# #{3rd-est}# #{4th-est}# last-year #{1st-last}# #{2nd-last}# #{3rd-last}# #{4th-last}#))
)))
(list (cons 'report-id "810ed4b25ef0486ea43bbd3dddb32b11")
(cons 'report-name "Budget Report")
(cons 'options
(list
(vector "Accounts" "Always show sub-accounts" 'boolean '(#t #f))
(vector "Accounts" "Flatten list to depth limit" 'boolean '(#t #f))
(vector "Accounts" "Account Display Depth" 'multichoice '(all 1 2 3 4 5 6))
(vector "Display" "Show Actual" 'boolean '(#t #f))
(vector "Display" "Show Budget" 'boolean '(#t #f))
(vector "Display" "Include accounts with zero total balances and budget values" 'boolean '(#t #f))
(vector "Display" "Roll up budget amounts to parent" 'boolean '(#t #f))
(vector "Display" "Show Column with Totals" 'boolean '(#t #f))
(vector "Display" "Show Difference" 'boolean '(#t #f))
(vector "General" "Report for range of budget periods" 'boolean '(#t #f))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "General" "Range end" 'multichoice '(first previous current next last manual))
(vector "General" "Include collapsed periods before selected." 'boolean '(#t #f))
(vector "General" "Range start" 'multichoice '(first previous current next last manual))
(vector "General" "Include collapsed periods after selected." 'boolean '(#t #f))
(vector "General" "Show Full Account Names" 'boolean '(#t #f))
)))
(list (cons 'report-id "cbba1696c8c24744848062c7f1cf4a72")
(cons 'report-name "Net Worth Barchart")
(cons 'options
(list
(vector "Display" "Show Asset & Liability" 'boolean '(#t #f))
(vector "Display" "Show table" 'boolean '(#t #f))
(vector "Display" "Show Net Worth" 'boolean '(#t #f))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "General" "Step Size" 'multichoice '(DayDelta WeekDelta TwoWeekDelta MonthDelta QuarterDelta HalfYearDelta YearDelta))
)))
(list (cons 'report-id "4a6b82e8678c4f3d9e85d9f09634ca89")
(cons 'report-name "Investment Portfolio")
(cons 'options
(list
(vector "Accounts" "Include accounts with no shares" 'boolean '(#t #f))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
)))
(list (cons 'report-id "44f81bee049b4b3ea908f8dac9a9474e")
(cons 'report-name "Income Over Time")
(cons 'options
(list
(vector "Accounts" "Show Accounts until level" 'multichoice '(all 1 2 3 4 5 6))
(vector "Display" "Chart Type" 'multichoice '(barchart linechart))
(vector "Display" "Use Stacked Charts" 'boolean '(#t #f))
(vector "Display" "Sort Method" 'multichoice '(acct-code alphabetical amount))
(vector "Display" "Show table" 'boolean '(#t #f))
(vector "Display" "Show long account names" 'boolean '(#t #f))
(vector "General" "Show Average" 'multichoice '(None MonthDelta WeekDelta DayDelta))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "General" "Step Size" 'multichoice '(DayDelta WeekDelta TwoWeekDelta MonthDelta QuarterDelta HalfYearDelta YearDelta))
)))
(list (cons 'report-id "5bf27f249a0d11e7abc4cec278b6b50a")
(cons 'report-name "Income and GST Statement")
(cons 'options
(list
(vector "Display" "Description" 'boolean '(#t #f))
(vector "Display" "Num" 'boolean '(#t #f))
(vector "Display" "Tax payable" 'boolean '(#t #f))
(vector "Display" "Individual income columns" 'boolean '(#t #f))
(vector "Display" "Use Full Account Name" 'boolean '(#t #f))
(vector "Display" "Net Income" 'boolean '(#t #f))
(vector "Display" "Use Full Other Account Name" 'boolean '(#t #f))
(vector "Display" "Individual expense columns" 'boolean '(#t #f))
(vector "Display" "Account Code" 'boolean '(#t #f))
(vector "Display" "Individual tax columns" 'boolean '(#t #f))
(vector "Display" "Remittance amount" 'boolean '(#t #f))
(vector "Display" "Memo" 'boolean '(#t #f))
(vector "Display" "Totals" 'boolean '(#t #f))
(vector "Display" "Account Name" 'boolean '(#t #f))
(vector "Display" "Other Account Name" 'boolean '(#t #f))
(vector "Display" "Other Account Code" 'boolean '(#t #f))
(vector "Display" "Reconciled Date" 'boolean '(#t #f))
(vector "Display" "Subtotal Table" 'boolean '(#t #f))
(vector "Display" "Notes" 'boolean '(#t #f))
(vector "Display" "Date" 'boolean '(#t #f))
(vector "Sorting" "Secondary Sort Order" 'multichoice '(ascend descend))
(vector "Sorting" "Show Full Account Name" 'boolean '(#t #f))
(vector "Sorting" "Show Account Code" 'boolean '(#t #f))
(vector "Sorting" "Show Account Description" 'boolean '(#t #f))
(vector "Sorting" "Primary Subtotal for Date Key" 'multichoice '(none daily weekly monthly quarterly yearly))
(vector "Sorting" "Secondary Key" 'multichoice '(account-name account-code date reconciled-date reconciled-status register-order corresponding-acc-name corresponding-acc-code amount description number t-number memo notes none))
(vector "Sorting" "Add indenting columns" 'boolean '(#t #f))
(vector "Sorting" "Secondary Subtotal" 'boolean '(#t #f))
(vector "Sorting" "Primary Subtotal" 'boolean '(#t #f))
(vector "Sorting" "Secondary Subtotal for Date Key" 'multichoice '(none daily weekly monthly quarterly yearly))
(vector "Sorting" "Primary Key" 'multichoice '(account-name account-code date reconciled-date reconciled-status register-order corresponding-acc-name corresponding-acc-code amount description number t-number memo notes none))
(vector "Sorting" "Primary Sort Order" 'multichoice '(ascend descend))
(vector "Sorting" "Show subtotals only (hide transactional data)" 'boolean '(#t #f))
(vector "Filter" "Void Transactions" 'multichoice '(non-void-only void-only both))
(vector "Filter" "Use regular expressions for transaction filter" 'boolean '(#t #f))
(vector "Filter" "Use regular expressions for account name filter" 'boolean '(#t #f))
(vector "Filter" "Reconcile Status" 'multichoice '(all unreconciled cleared reconciled))
(vector "General" "Table for Exporting" 'boolean '(#t #f))
(vector "General" "Add options summary" 'multichoice '(no-match always never))
(vector "General" "Common Currency" 'boolean '(#t #f))
)))
(list (cons 'report-id "3fe6dce77da24c66bdc8f8efdea7f9ac")
(cons 'report-name "Liabilities")
(cons 'options
(list
(vector "Accounts" "Show Accounts until level" 'multichoice '(all 1 2 3 4 5 6))
(vector "Display" "Show Totals" 'boolean '(#t #f))
(vector "Display" "Show long names" 'boolean '(#t #f))
(vector "Display" "Show Percents" 'boolean '(#t #f))
(vector "Display" "Sort Method" 'multichoice '(acct-code alphabetical amount))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
)))
(list (cons 'report-id "5123a759ceb9483abf2182d01c140e8d")
(cons 'report-name "Printable Invoice")
(cons 'options
(list
(vector "Display" "Individual Taxes" 'boolean '(#t #f))
(vector "Display" "Billing Terms" 'boolean '(#t #f))
(vector "Display" "References" 'boolean '(#t #f))
(vector "Display" "Totals" 'boolean '(#t #f))
(vector "Display" "Invoice Notes" 'boolean '(#t #f))
(vector "Display" "Billing ID" 'boolean '(#t #f))
(vector "Display" "Payments" 'boolean '(#t #f))
(vector "Display" "Job Details" 'boolean '(#t #f))
(vector "Display Columns" "Tax Amount" 'boolean '(#t #f))
(vector "Display Columns" "Description" 'boolean '(#t #f))
(vector "Display Columns" "Discount" 'boolean '(#t #f))
(vector "Display Columns" "Total" 'boolean '(#t #f))
(vector "Display Columns" "Action" 'boolean '(#t #f))
(vector "Display Columns" "Taxable" 'boolean '(#t #f))
(vector "Display Columns" "Quantity" 'boolean '(#t #f))
(vector "Display Columns" "Price" 'boolean '(#t #f))
(vector "Display Columns" "Date" 'boolean '(#t #f))
)))
(list (cons 'report-id "21d7cfc59fc74f22887596ebde7e462d")
(cons 'report-name "Advanced Portfolio")
(cons 'options
(list
(vector "Accounts" "Include accounts with no shares" 'boolean '(#t #f))
(vector "Display" "Show ticker symbols" 'boolean '(#t #f))
(vector "Display" "Show number of shares" 'boolean '(#t #f))
(vector "Display" "Show prices" 'boolean '(#t #f))
(vector "Display" "Show listings" 'boolean '(#t #f))
(vector "General" "How to report brokerage fees" 'multichoice '(include-in-basis include-in-gain ignore-brokerage))
(vector "General" "Price Source" 'multichoice '(pricedb-latest pricedb-nearest))
(vector "General" "Basis calculation method" 'multichoice '(average-basis fifo-basis filo-basis))
(vector "General" "Set preference for price list data" 'boolean '(#t #f))
)))
(list (cons 'report-id "7eb3df21073d4c33920a0257da15fba5")
(cons 'report-name "Receipt")
(cons 'options
(list
)))
(list (cons 'report-id "e6e34fa3b6e748debde3cb3bc76d3e53")
(cons 'report-name "Budget Flow")
(cons 'options
(list
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
)))
(list (cons 'report-id "b1f15b2052c149df93e698fe85a81ea6")
(cons 'report-name "Expense Over Time")
(cons 'options
(list
(vector "Accounts" "Show Accounts until level" 'multichoice '(all 1 2 3 4 5 6))
(vector "Display" "Chart Type" 'multichoice '(barchart linechart))
(vector "Display" "Use Stacked Charts" 'boolean '(#t #f))
(vector "Display" "Sort Method" 'multichoice '(acct-code alphabetical amount))
(vector "Display" "Show table" 'boolean '(#t #f))
(vector "Display" "Show long account names" 'boolean '(#t #f))
(vector "General" "Show Average" 'multichoice '(None MonthDelta WeekDelta DayDelta))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "General" "Step Size" 'multichoice '(DayDelta WeekDelta TwoWeekDelta MonthDelta QuarterDelta HalfYearDelta YearDelta))
)))
(list (cons 'report-id "898d78ec92854402bf76e20a36d24ade")
(cons 'report-name "Hello, World")
(cons 'options
(list
(vector "Hello, World!" "Multi Choice Option" 'multichoice '(first second third fourth))
(vector "Hello, World!" "Boolean Option" 'boolean '(#t #f))
(vector "Testing" "Crash the report" 'boolean '(#t #f))
)))
(list (cons 'report-id "5e2d129f28d14df881c3e47e3053f604")
(cons 'report-name "Income vs. Day of Week")
(cons 'options
(list
(vector "Accounts" "Include Sub-Accounts" 'boolean '(#t #f))
(vector "Accounts" "Show Accounts until level" 'multichoice '(all 1 2 3 4 5 6))
(vector "Display" "Show Totals" 'boolean '(#t #f))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
)))
(list (cons 'report-id "faf410e8f8da481fbc09e4763da40bcc")
(cons 'report-name "Liabilities Over Time")
(cons 'options
(list
(vector "Accounts" "Show Accounts until level" 'multichoice '(all 1 2 3 4 5 6))
(vector "Display" "Chart Type" 'multichoice '(barchart linechart))
(vector "Display" "Use Stacked Charts" 'boolean '(#t #f))
(vector "Display" "Sort Method" 'multichoice '(acct-code alphabetical amount))
(vector "Display" "Show table" 'boolean '(#t #f))
(vector "Display" "Show long account names" 'boolean '(#t #f))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "General" "Step Size" 'multichoice '(DayDelta WeekDelta TwoWeekDelta MonthDelta QuarterDelta HalfYearDelta YearDelta))
)))
(list (cons 'report-id "0b81a3bdfd504aff849ec2e8630524bc")
(cons 'report-name "Income Statement")
(cons 'options
(list
(vector "Commodities" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "Commodities" "Show Exchange Rates" 'boolean '(#t #f))
(vector "Commodities" "Show Foreign Currencies" 'boolean '(#t #f))
(vector "Accounts" "Levels of Subaccounts" 'multichoice '(all 1 2 3 4 5 6))
(vector "Accounts" "Flatten list to depth limit" 'boolean '(#t #f))
(vector "Entries" "Closing Entries pattern is case-sensitive" 'boolean '(#t #f))
(vector "Entries" "Closing Entries Pattern is regular expression" 'boolean '(#t #f))
(vector "Display" "Display as a two column report" 'boolean '(#t #f))
(vector "Display" "Show accounting-style rules" 'boolean '(#t #f))
(vector "Display" "Display accounts as hyperlinks" 'boolean '(#t #f))
(vector "Display" "Parent account balances" 'multichoice '(immediate-bal recursive-bal omit-bal))
(vector "Display" "Display in standard, income first, order" 'boolean '(#t #f))
(vector "Display" "Include accounts with zero total balances" 'boolean '(#t #f))
(vector "Display" "Label the revenue section" 'boolean '(#t #f))
(vector "Display" "Parent account subtotals" 'multichoice '(t f canonically-tabbed))
(vector "Display" "Include expense total" 'boolean '(#t #f))
(vector "Display" "Include trading accounts total" 'boolean '(#t #f))
(vector "Display" "Omit zero balance figures" 'boolean '(#t #f))
(vector "Display" "Include revenue total" 'boolean '(#t #f))
(vector "Display" "Label the expense section" 'boolean '(#t #f))
(vector "Display" "Label the trading accounts section" 'boolean '(#t #f))
)))
(list (cons 'report-id "415cd38d39054d9e9c4040455290c2b1")
(cons 'report-name "Budget Chart")
(cons 'options
(list
(vector "Accounts" "Levels of Subaccounts" 'multichoice '(all 1 2 3 4 5 6))
(vector "Display" "Chart Type" 'multichoice '(bars lines))
(vector "Display" "Running Sum" 'boolean '(#t #f))
)))
(list (cons 'report-id "f8748b813fab4220ba26e743aedf38da")
(cons 'report-name "Cash Flow")
(cons 'options
(list
(vector "Accounts" "Always show sub-accounts" 'boolean '(#t #f))
(vector "Accounts" "Include Trading Accounts in report" 'boolean '(#t #f))
(vector "Accounts" "Account Display Depth" 'multichoice '(all 1 2 3 4 5 6))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "General" "Show Exchange Rates" 'boolean '(#t #f))
(vector "General" "Show Full Account Names" 'boolean '(#t #f))
)))
(list (cons 'report-id "65135608f2014c6ca8412793a8cdf169")
(cons 'report-name "Welcome to GnuCash")
(cons 'options
(list
)))
(list (cons 'report-id "d7d1e53505ee4b1b82efad9eacedaea0")
(cons 'report-name "Vendor Report")
(cons 'options
(list
(vector "Display Columns" "Tax" 'boolean '(#t #f))
(vector "Display Columns" "Description" 'boolean '(#t #f))
(vector "Display Columns" "Amount" 'boolean '(#t #f))
(vector "Display Columns" "Debits" 'boolean '(#t #f))
(vector "Display Columns" "Type" 'boolean '(#t #f))
(vector "Display Columns" "Due Date" 'boolean '(#t #f))
(vector "Display Columns" "Sale" 'boolean '(#t #f))
(vector "Display Columns" "Reference" 'boolean '(#t #f))
(vector "Display Columns" "Credits" 'boolean '(#t #f))
(vector "Display Columns" "Date" 'boolean '(#t #f))
(vector "General" "Due or Post Date" 'multichoice '(duedate postdate))
(vector "__reg" "reverse?" 'boolean '(#t #f))
)))
(list (cons 'report-id "5518ac227e474f47a34439f2d4d049de")
(cons 'report-name "Job Report")
(cons 'options
(list
(vector "Display Columns" "Description" 'boolean '(#t #f))
(vector "Display Columns" "Amount" 'boolean '(#t #f))
(vector "Display Columns" "Type" 'boolean '(#t #f))
(vector "Display Columns" "Due Date" 'boolean '(#t #f))
(vector "Display Columns" "Reference" 'boolean '(#t #f))
(vector "Display Columns" "Date" 'boolean '(#t #f))
(vector "__reg" "reverse?" 'boolean '(#t #f))
)))
(list (cons 'report-id "e5fa5ce805e840ecbeca4dba3fa4ead9")
(cons 'report-name "Budget Profit & Loss")
(cons 'options
(list
(vector "Commodities" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "Commodities" "Show Exchange Rates" 'boolean '(#t #f))
(vector "Commodities" "Show Foreign Currencies" 'boolean '(#t #f))
(vector "Accounts" "Levels of Subaccounts" 'multichoice '(all 1 2 3 4 5 6))
(vector "Accounts" "Flatten list to depth limit" 'boolean '(#t #f))
(vector "Display" "Display as a two column report" 'boolean '(#t #f))
(vector "Display" "Show accounting-style rules" 'boolean '(#t #f))
(vector "Display" "Display accounts as hyperlinks" 'boolean '(#t #f))
(vector "Display" "Parent account balances" 'multichoice '(immediate-bal recursive-bal omit-bal))
(vector "Display" "Display in standard, income first, order" 'boolean '(#t #f))
(vector "Display" "Include accounts with zero total balances" 'boolean '(#t #f))
(vector "Display" "Label the revenue section" 'boolean '(#t #f))
(vector "Display" "Parent account subtotals" 'multichoice '(t f canonically-tabbed))
(vector "Display" "Include expense total" 'boolean '(#t #f))
(vector "Display" "Omit zero balance figures" 'boolean '(#t #f))
(vector "Display" "Include revenue total" 'boolean '(#t #f))
(vector "Display" "Label the expense section" 'boolean '(#t #f))
(vector "General" "Report for range of budget periods" 'boolean '(#t #f))
)))
(list (cons 'report-id "e533c998186b11e1b2e2001558291366")
(cons 'report-name "Income & Expense Linechart")
(cons 'options
(list
(vector "Display" "Grid" 'boolean '(#t #f))
(vector "Display" "Data markers?" 'boolean '(#t #f))
(vector "Display" "Show Income/Expense" 'boolean '(#t #f))
(vector "Display" "Show table" 'boolean '(#t #f))
(vector "Display" "Show Net Profit" 'boolean '(#t #f))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "General" "Step Size" 'multichoice '(DayDelta WeekDelta TwoWeekDelta MonthDelta QuarterDelta HalfYearDelta YearDelta))
)))
(list (cons 'report-id "22104e02654c4adba844ee75a3f8d173")
(cons 'report-name "Register")
(cons 'options
(list
(vector "Display" "Description" 'boolean '(#t #f))
(vector "Display" "Account" 'boolean '(#t #f))
(vector "Display" "Amount" 'multichoice '(single double))
(vector "Display" "Num" 'boolean '(#t #f))
(vector "Display" "Running Balance" 'boolean '(#t #f))
(vector "Display" "Shares" 'boolean '(#t #f))
(vector "Display" "Lot" 'boolean '(#t #f))
(vector "Display" "Memo" 'boolean '(#t #f))
(vector "Display" "Totals" 'boolean '(#t #f))
(vector "Display" "Price" 'boolean '(#t #f))
(vector "Display" "Date" 'boolean '(#t #f))
(vector "Display" "Value" 'boolean '(#t #f))
)))
(list (cons 'report-id "d8b63264186b11e19038001558291366")
(cons 'report-name "Net Worth Linechart")
(cons 'options
(list
(vector "Display" "Grid" 'boolean '(#t #f))
(vector "Display" "Show Asset & Liability" 'boolean '(#t #f))
(vector "Display" "Data markers?" 'boolean '(#t #f))
(vector "Display" "Show table" 'boolean '(#t #f))
(vector "Display" "Show Net Worth" 'boolean '(#t #f))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "General" "Step Size" 'multichoice '(DayDelta WeekDelta TwoWeekDelta MonthDelta QuarterDelta HalfYearDelta YearDelta))
)))
(list (cons 'report-id "1d241609fd4644caad765c95be20ff4c")
(cons 'report-name "Price")
(cons 'options
(list
(vector "Display" "Marker" 'multichoice '(diamond circle square cross plus dash filleddiamond filledcircle filledsquare))
(vector "Price" "Invert prices" 'boolean '(#t #f))
(vector "Price" "Price Source" 'multichoice '(weighted-average actual-transactions pricedb))
(vector "General" "Step Size" 'multichoice '(DayDelta WeekDelta TwoWeekDelta MonthDelta QuarterDelta HalfYearDelta YearDelta))
)))
(list (cons 'report-id "ecc35ea9dbfa4e20ba389fc85d59cb69")
(cons 'report-name "Budget Balance Sheet")
(cons 'options
(list
(vector "Commodities" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
(vector "Commodities" "Show Exchange Rates" 'boolean '(#t #f))
(vector "Commodities" "Show Foreign Currencies" 'boolean '(#t #f))
(vector "Accounts" "Levels of Subaccounts" 'multichoice '(all 1 2 3 4 5 6))
(vector "Accounts" "Flatten list to depth limit" 'boolean '(#t #f))
(vector "Display" "Show accounting-style rules" 'boolean '(#t #f))
(vector "Display" "Display accounts as hyperlinks" 'boolean '(#t #f))
(vector "Display" "Parent account balances" 'multichoice '(immediate-bal recursive-bal omit-bal))
(vector "Display" "Include assets total" 'boolean '(#t #f))
(vector "Display" "Include accounts with zero total balances" 'boolean '(#t #f))
(vector "Display" "Parent account subtotals" 'multichoice '(t f canonically-tabbed))
(vector "Display" "Include liabilities total" 'boolean '(#t #f))
(vector "Display" "Label the liabilities section" 'boolean '(#t #f))
(vector "Display" "Include new/existing totals" 'boolean '(#t #f))
(vector "Display" "Omit zero balance figures" 'boolean '(#t #f))
(vector "Display" "Label the assets section" 'boolean '(#t #f))
(vector "Display" "Include equity total" 'boolean '(#t #f))
(vector "Display" "Label the equity section" 'boolean '(#t #f))
(vector "General" "Single column Balance Sheet" 'boolean '(#t #f))
)))
(list (cons 'report-id "5c7fd8a1fe9a4cd38884ff54214aa88a")
(cons 'report-name "Assets")
(cons 'options
(list
(vector "Accounts" "Show Accounts until level" 'multichoice '(all 1 2 3 4 5 6))
(vector "Display" "Show Totals" 'boolean '(#t #f))
(vector "Display" "Show long names" 'boolean '(#t #f))
(vector "Display" "Show Percents" 'boolean '(#t #f))
(vector "Display" "Sort Method" 'multichoice '(acct-code alphabetical amount))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
)))
(list (cons 'report-id "9bf1892805cb4336be6320fe48ce5446")
(cons 'report-name "Expense Accounts")
(cons 'options
(list
(vector "Accounts" "Show Accounts until level" 'multichoice '(all 1 2 3 4 5 6))
(vector "Display" "Show Totals" 'boolean '(#t #f))
(vector "Display" "Show long names" 'boolean '(#t #f))
(vector "Display" "Show Percents" 'boolean '(#t #f))
(vector "Display" "Sort Method" 'multichoice '(acct-code alphabetical amount))
(vector "General" "Show Average" 'multichoice '(None YearDelta MonthDelta WeekDelta))
(vector "General" "Price Source" 'multichoice '(average-cost weighted-average pricedb-latest pricedb-nearest))
)))
))