Define build-report! function instead of loop.

The existing code uses tuples to define the properties of the individual
reports created.  Replace that by a function to build one of them which
gets the properties passed as arguments, and use a series of calls to
replace the old loop.  This makes the properties much more easier to
read.
This commit is contained in:
Daniel Kraft 2015-08-30 18:54:04 +02:00
parent 0ceb09ada6
commit c9feb7df87

View File

@ -536,39 +536,57 @@ balance at a given time"))
(gnc:report-finished) (gnc:report-finished)
document))) document)))
(for-each (define (build-report!
(lambda (l) name acct-types income-expense? menuname menutip
(let ((tip-and-rev (cddddr l))) reverse-balance? uuid)
(gnc:define-report (gnc:define-report
'version 1 'version 1
'name (car l) 'name name
'report-guid (car (reverse l)) 'report-guid uuid
'menu-path (if (caddr l) 'menu-path (if income-expense?
(list gnc:menuname-income-expense) (list gnc:menuname-income-expense)
(list gnc:menuname-asset-liability)) (list gnc:menuname-asset-liability))
'menu-name (cadddr l) 'menu-name menuname
'menu-tip (car tip-and-rev) 'menu-tip menutip
'options-generator (lambda () (options-generator (cadr l) 'options-generator (lambda () (options-generator acct-types
(cadr tip-and-rev) reverse-balance?
(caddr l))) income-expense?))
'renderer (lambda (report-obj) 'renderer (lambda (report-obj)
(piechart-renderer report-obj (piechart-renderer report-obj name uuid
(car l) acct-types income-expense?))))
(car (reverse l))
(cadr l) (build-report!
(caddr l)))))) reportname-income
(list (list ACCT-TYPE-INCOME)
;; reportname, account-types, do-intervals?, #t
;; menu-reportname, menu-tip menuname-income menutip-income
(list reportname-income (list ACCT-TYPE-INCOME) #t menuname-income menutip-income (lambda (x) #t) "e1bd09b8a1dd49dd85760db9d82b045c") (lambda (x) #t)
(list reportname-expense (list ACCT-TYPE-EXPENSE) #t menuname-expense menutip-expense (lambda (x) #f) "9bf1892805cb4336be6320fe48ce5446") "e1bd09b8a1dd49dd85760db9d82b045c")
(list reportname-assets
(list ACCT-TYPE-ASSET ACCT-TYPE-BANK ACCT-TYPE-CASH ACCT-TYPE-CHECKING (build-report!
ACCT-TYPE-SAVINGS ACCT-TYPE-MONEYMRKT reportname-expense
ACCT-TYPE-RECEIVABLE ACCT-TYPE-STOCK ACCT-TYPE-MUTUAL (list ACCT-TYPE-EXPENSE)
ACCT-TYPE-CURRENCY) #t
#f menuname-assets menutip-assets (lambda (x) #f) "5c7fd8a1fe9a4cd38884ff54214aa88a") menuname-expense menutip-expense
(list reportname-liabilities (lambda (x) #f)
(list ACCT-TYPE-LIABILITY ACCT-TYPE-PAYABLE ACCT-TYPE-CREDIT "9bf1892805cb4336be6320fe48ce5446")
ACCT-TYPE-CREDITLINE)
#f menuname-liabilities menutip-liabilities (lambda (x) #t) "3fe6dce77da24c66bdc8f8efdea7f9ac"))) (build-report!
reportname-assets
(list ACCT-TYPE-ASSET ACCT-TYPE-BANK ACCT-TYPE-CASH ACCT-TYPE-CHECKING
ACCT-TYPE-SAVINGS ACCT-TYPE-MONEYMRKT
ACCT-TYPE-RECEIVABLE ACCT-TYPE-STOCK ACCT-TYPE-MUTUAL
ACCT-TYPE-CURRENCY)
#f
menuname-assets menutip-assets
(lambda (x) #f)
"5c7fd8a1fe9a4cd38884ff54214aa88a")
(build-report!
reportname-liabilities
(list ACCT-TYPE-LIABILITY ACCT-TYPE-PAYABLE ACCT-TYPE-CREDIT
ACCT-TYPE-CREDITLINE)
#f
menuname-liabilities menutip-liabilities
(lambda (x) #t)
"3fe6dce77da24c66bdc8f8efdea7f9ac")