AUDIT: r17748 - gnucash/trunk/src/report/report-system - Bug #348860: Fix missing sub-report options when saving a multicolumn report
Christian Stimming
cstim at cvs.gnucash.org
Sat Dec 6 16:33:21 EST 2008
Author: cstim
Date: 2008-12-06 16:33:21 -0500 (Sat, 06 Dec 2008)
New Revision: 17748
Trac: http://svn.gnucash.org/trac/changeset/17748
Modified:
gnucash/trunk/src/report/report-system/report.scm
Log:
Bug #348860: Fix missing sub-report options when saving a multicolumn report
When writing the report options to saved-reports the embedded reports (if any
exist) are stored too. This is important for saving multicolumn reports.
Patch by C. Ernst.
BP
Modified: gnucash/trunk/src/report/report-system/report.scm
===================================================================
--- gnucash/trunk/src/report/report-system/report.scm 2008-12-06 21:33:14 UTC (rev 17747)
+++ gnucash/trunk/src/report/report-system/report.scm 2008-12-06 21:33:21 UTC (rev 17748)
@@ -469,6 +469,24 @@
#f " (gnc:restore-report-by-guid ~S ~S ~S options))\n"
(gnc:report-id report) (gnc:report-type report) (gnc:report-template-name (hash-ref *gnc:_report-templates_* (gnc:report-type report))))))
+;; Loop over embedded reports and concat result of each gnc:report-generate-restore-forms
+(define (gnc:report-generate-options-embedded report)
+ (let*
+ ((embedded-reports (gnc:report-embedded-list report))
+ (result-string ""))
+ (if embedded-reports
+ (for-each
+ (lambda (subreport-id)
+ (let*
+ ((subreport (gnc-report-find subreport-id))
+ (subreport-options-text (gnc:report-generate-restore-forms subreport)))
+ (set! result-string (string-append
+ result-string
+ ";;;; Options for embedded report\n"
+ subreport-options-text))))
+ embedded-reports))
+ result-string))
+
(define (gnc:report-generate-saved-forms report)
;; clean up the options if necessary. this is only needed
;; in special cases.
@@ -488,6 +506,8 @@
#f "(let ()\n (define (options-gen)\n (let ((options (gnc:report-template-new-options/report-guid ~S ~S)))\n"
(gnc:report-type report) (gnc:report-template-name (hash-ref *gnc:_report-templates_* (gnc:report-type report))))
(gnc:generate-restore-forms (gnc:report-options report) "options")
+ ;; get options of embedded reports
+ (gnc:report-generate-options-embedded report)
" options))\n"
(simple-format
#f " (gnc:define-report \n 'version 1\n 'name ~S\n 'report-guid ~S\n 'parent-type ~S\n 'options-generator options-gen\n 'menu-path (list gnc:menuname-custom)\n 'renderer (gnc:report-template-renderer/report-guid ~S ~S)))\n\n"
More information about the gnucash-changes
mailing list