Huh.. Reading many samples and web pages (mainly http://www.widyono.net/prog/gnucash-xacc-repdev.html http://wiki.gnucash.org/wiki/Custom_Reports and http://wiki.gnucash.org/wiki/Custom_Reports_Using_Eguile ) I have distilled more or less simple report without dependencies on other libraries.
== Environment == Ubuntu 10.04 Guile 1.8.7 GnuCash 2.3.12 r19180M == Files == val...@studio:~$ cat ~/.gnucash/config.user (load-from-path "/home/valdis/Darbvirsma/Gnucash/report.scm") val...@studio:~$ cat ~/.gnucash/log.conf # http://wiki.gnucash.org/wiki/Logging [levels] gnc=message gnc.scm=debug [output] to=stderr val...@studio:~$ cat ~/Darbvirsma/Gnucash/report.scm (gnc:debug "Loading /home/valdis/Darbvirsma/Gnucash/report.scm") (define (renderer options) (let ((document (gnc:make-html-document))) document)) ;;; Generates an empty document ;; Here we define the actual report with gnc:define-report (gnc:define-report ;; The version of this report. 'version 1 ;; The name of this report. This will be used, among other things, ;; for making its menu item in the main menu. You need to use the ;; untranslated value here! 'name (N_ "My Test report") ;; The GUID for this report. This string should be unique, set once ;; and left alone forever after that. In theory, you could use any ;; unique string, even a meaningful one (!) but its probably best to ;; use a true uuid. Get them from `uuidgen | sed -e s/-//g` and paste ;; the results in here. You must make a new guid for each report! 'report-guid "898d78ec92854411bf76e20a36d24ad1" ;; The name in the menu ;; (only necessary if it differs from the name) 'menu-name (N_ "My Test report") ;; A tip that is used to provide additional information about the ;; report to the user. 'menu-tip (N_ "My Test report") ;; A path describing where to put the report in the menu system. ;; In this case, it's going under the utility menu. 'menu-path (list gnc:menuname-utility) ) (gnc:debug "loading finished") Though when I run this report I get following error in console: In /opt/gnucash-svn/share/gnucash/guile-modules/gnucash/report/report-gnome.scm: 78: 1* (let* ((report #)) (gnc-main-window-open-report report window)) 80: 2 [gnc-main-window-open-report 0 #<swig-pointer GncMainWindow * 16e7000>] In current input: 1: 3* [gnc:report-run 0] In /opt/gnucash-svn/share/gnucash/scm/report.scm: 668: 4 (let ((report #) (html #f)) (gnc-set-busy-cursor (quote ()) #t) ...) 671: 5* [gnc:backtrace-if-exception #<procedure #f ()>] In unknown file: ?: 6 (letrec ((dumper #)) (catch (quote ignore) (lambda () #) (lambda # #f))) In /opt/gnucash-svn/share/gnucash/guile-modules/gnucash/main.scm: 139: 7 [catch ignore #<procedure #f ()> #<procedure #f (key . args)>] In unknown file: ?: 8* [#<procedure #f ()>] In /opt/gnucash-svn/share/gnucash/guile-modules/gnucash/main.scm: 142: 9* [lazy-catch #t #<procedure #f ()> #<procedure dumper (key . args)>] In unknown file: ?: 10* [#<procedure #f ()>] In /opt/gnucash-svn/share/gnucash/guile-modules/gnucash/main.scm: 143: 11* [apply #<procedure #f ()> ()] In unknown file: ?: 12 [#<procedure #f ()>] In /opt/gnucash-svn/share/gnucash/scm/report.scm: ... 675: 13 (set! html (gnc:report-render-html report #t)) 675: 14* [gnc:report-render-html # #t] 638: 15 (if (and (not #) (gnc:report-ctext report)) (gnc:report-ctext report) ...) 646: 16 (let ((template #) (doc #f)) (set! doc (if template # #f)) doc) 649: 17* (set! doc (if template (let* (# # # ...) (if # # ...) ...) ...)) 649: 18* (if template (let* (# # # ...) (if # # ...) ...) ...) 650: 19 (let* (# # # #) (if # # #) (gnc:report-set-ctext! report html) ...) 652: 20* [#f #] /opt/gnucash-svn/share/gnucash/scm/report.scm:652:35: In expression (renderer report): /opt/gnucash-svn/share/gnucash/scm/report.scm:652:35: Wrong type to apply: #f * 16:29:20 WARN <gnc.scm> In /opt/gnucash-svn/share/gnucash/guile-modules/gnucash/report/report-gnome.scm: 78: 1* (let* ((report #)) (gnc-main-window-open-report report window)) 80: 2 [gnc-main-window-open-report 0 #<swig-pointer GncMainWindow * 16e7000>] In current input: 1: 3* [gnc:report-run 0] In /opt/gnucash-svn/share/gnucash/scm/report.scm: 668: 4 (let ((report #) (html #f)) (gnc-set-busy-cursor (quote ()) #t) ...) 671: 5* [gnc:backtrace-if-exception #<procedure #f ()>] In unknown file: ?: 6 (letrec ((dumper #)) (catch (quote ignore) (lambda () #) (lambda # #f))) In /opt/gnucash-svn/share/gnucash/guile-modules/gnucash/main.scm: 139: 7 [catch ignore #<procedure #f ()> #<procedure #f (key . args)>] In unknown file: ?: 8* [#<procedure #f ()>] In /opt/gnucash-svn/share/gnucash/guile-modules/gnucash/main.scm: 142: 9* [lazy-catch #t #<procedure #f ()> #<procedure dumper (key . args)>] In unknown file: ?: 10* [#<procedure #f ()>] In /opt/gnucash-svn/share/gnucash/guile-modules/gnucash/main.scm: 143: 11* [apply #<procedure #f ()> ()] In unknown file: ?: 12 [#<procedure #f ()>] In /opt/gnucash-svn/share/gnucash/scm/report.scm: ... 675: 13 (set! html (gnc:report-render-html report #t)) 675: 14* [gnc:report-render-html # #t] 638: 15 (if (and (not #) (gnc:report-ctext report)) (gnc:report-ctext report) ...) 646: 16 (let ((template #) (doc #f)) (set! doc (if template # #f)) doc) 649: 17* (set! doc (if template (let* (# # # ...) (if # # ...) ...) ...)) 649: 18* (if template (let* (# # # ...) (if # # ...) ...) ...) 650: 19 (let* (# # # #) (if # # #) (gnc:report-set-ctext! report html) ...) 652: 20* [#f #] /opt/gnucash-svn/share/gnucash/scm/report.scm:652:35: In expression (renderer report): /opt/gnucash-svn/share/gnucash/scm/report.scm:652:35: Wrong type to apply: #f What is wrong there? Valdis _______________________________________________ gnucash-devel mailing list [email protected] https://lists.gnucash.org/mailman/listinfo/gnucash-devel
