gnucash maint: Multiple changes pushed
Christopher Lam
clam at code.gnucash.org
Sun Aug 16 10:09:38 EDT 2020
Updated via https://github.com/Gnucash/gnucash/commit/79a27354 (commit)
via https://github.com/Gnucash/gnucash/commit/94c61e15 (commit)
from https://github.com/Gnucash/gnucash/commit/088a386d (commit)
commit 79a273545c2487294ca96f014c1f917b9845549f
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Sun Aug 16 21:57:59 2020 +0800
[net-charts] export table as CSV
table can be exported
diff --git a/gnucash/report/reports/standard/net-charts.scm b/gnucash/report/reports/standard/net-charts.scm
index fd838dcef..6f5928098 100644
--- a/gnucash/report/reports/standard/net-charts.scm
+++ b/gnucash/report/reports/standard/net-charts.scm
@@ -176,7 +176,7 @@
;; includes all the relevant Scheme code. The option database passed
;; to the function is one created by the options-generator function
;; defined above.
-(define (net-renderer report-obj inc-exp? linechart?)
+(define (net-renderer report-obj inc-exp? linechart? export-type)
;; This is a helper function for looking up option values.
(define (get-option section name)
@@ -440,8 +440,18 @@
'attribute (list "class" "number-cell")))
'(1 2 3))
- (gnc:html-document-add-object! document table))
- ))
+ (gnc:html-document-add-object! document table)))
+
+ (cond
+ ((eq? export-type 'csv)
+ (gnc:html-document-set-export-string
+ document
+ (gnc:lists->csv
+ (cons (if inc-exp?
+ (map G_ '("Date" "Income" "Expense" "Net Profit"))
+ (map G_ '("Date" "Assets" "Liabilities" "Net Worth")))
+ (map list date-string-list minuend-balances
+ subtrahend-balances difference-balances)))))))
(gnc:html-document-add-object!
document
(gnc:html-make-empty-data-warning
@@ -473,7 +483,10 @@
'report-guid net-worth-barchart-uuid
'menu-path (list gnc:menuname-asset-liability)
'options-generator (lambda () (options-generator #f #f))
- 'renderer (lambda (report-obj) (net-renderer report-obj #f #f)))
+ 'renderer (lambda (report-obj) (net-renderer report-obj #f #f #f))
+ 'export-types '(("CSV" . csv))
+ 'export-thunk (lambda (report-obj export-type filename)
+ (net-renderer report-obj #f #f export-type)))
(gnc:define-report
'version 1
@@ -482,7 +495,10 @@
'menu-name (N_ "Income & Expense Barchart")
'menu-path (list gnc:menuname-income-expense)
'options-generator (lambda () (options-generator #t #f))
- 'renderer (lambda (report-obj) (net-renderer report-obj #t #f)))
+ 'renderer (lambda (report-obj) (net-renderer report-obj #t #f #f))
+ 'export-types '(("CSV" . csv))
+ 'export-thunk (lambda (report-obj export-type filename)
+ (net-renderer report-obj #t #f export-type)))
(gnc:define-report
'version 1
@@ -490,7 +506,10 @@
'report-guid net-worth-linechart-uuid
'menu-path (list gnc:menuname-asset-liability)
'options-generator (lambda () (options-generator #f #t))
- 'renderer (lambda (report-obj) (net-renderer report-obj #f #t)))
+ 'renderer (lambda (report-obj) (net-renderer report-obj #f #t #f))
+ 'export-types '(("CSV" . csv))
+ 'export-thunk (lambda (report-obj export-type filename)
+ (net-renderer report-obj #f #t export-type)))
;; Not sure if a line chart makes sense for Income & Expense
;; Feel free to uncomment and try it though
@@ -501,4 +520,7 @@
'menu-name (N_ "Income & Expense Linechart")
'menu-path (list gnc:menuname-income-expense)
'options-generator (lambda () (options-generator #t #t))
- 'renderer (lambda (report-obj) (net-renderer report-obj #t #t)))
+ 'renderer (lambda (report-obj) (net-renderer report-obj #t #t #f))
+ 'export-types '(("CSV" . csv))
+ 'export-thunk (lambda (report-obj export-type filename)
+ (net-renderer report-obj #t #t export-type)))
commit 94c61e15f337d222d249a68ffcfb6b362faf2fd2
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Sun Aug 16 21:51:07 2020 +0800
[trep-engine] export gnc:lists->csv
converts a list of lists to CSV string.
diff --git a/gnucash/report/trep-engine.scm b/gnucash/report/trep-engine.scm
index 6410a1c58..965b8c71c 100644
--- a/gnucash/report/trep-engine.scm
+++ b/gnucash/report/trep-engine.scm
@@ -465,6 +465,7 @@ Credit Card, and Income accounts."))
(and (keylist-get-info (sortkey-list split-action?) sortkey 'split-sortvalue)
(not (keylist-get-info (sortkey-list split-action?) sortkey 'sortkey))))
+(define-public gnc:lists->csv lists->csv)
(define (lists->csv lst)
;; converts a list of lists into CSV
;; this function aims to follow RFC4180, and will pad lists to
Summary of changes:
gnucash/report/reports/standard/net-charts.scm | 36 +++++++++++++++++++++-----
gnucash/report/trep-engine.scm | 1 +
2 files changed, 30 insertions(+), 7 deletions(-)
More information about the gnucash-changes
mailing list