[GNC-dev] How to get Report Development Environment Working in Windows
flywire
flywire0 at gmail.com
Fri Sep 3 06:18:29 EDT 2021
On Fri, Sep 3, 2021 at 10:48 AM John Ralls <jralls at ceridwen.us> wrote:
> It looks like much of that page dates from GnuCash 2.6 that used an
> earlier version of Guile than we use now... Note that none of this is
> needed for GnuCash to execute your config-user.scm as it sets up the paths
> for itself.
>
Spot-on!
Fixed (all but reportname) by updating the outdated code in:
https://wiki.gnucash.org/wiki/Custom_Reports#Designing_new_Reports
Unfortunately, I want the split reports but that code won't run as
described in: https://wiki.gnucash.org/wiki/Custom_Reports#Minimal_Example
(the second Prototype report doesn't appear in Reports Examples.) It could
be another syntax issue. Maybe someone could test it?
*prototype-loader.scm*
;; (define-module (gnucash report example prototype))
(define-module (gnucash report example prototype_loader))
;;(define-module (prototype_loader))
;;(use-modules (gnucash engine))
;;(use-modules (gnucash utilities))
(use-modules (gnucash core-utils)) ; for gnc:version and (G_ ...)
(use-modules (gnucash app-utils))
(use-modules (gnucash report))
;;(use-modules (gnucash html))
(debug-enable 'backtrace)
;;---------------------------------------------------------------
;; load the renderer module once at the top level to get the symbols
(use-modules (document-renderer))
;; get and reload the module
(define (reload-report-module)
(reload-module (resolve-module '(document-renderer))))
;; every time options generated, reload from document-renderer
(define (options_loader)
(reload-report-module)
(options-generator))
;; every time report rendered, reload from document-renderer
(define (renderer_loader report-obj)
(reload-report-module)
(document-renderer report-obj))
;;---------------------------------------------------------------
(gnc:define-report
'version 1
'name (N_ "Prototype")
'report-guid "cac2d303ec53449eb163e50117356b91"
'menu-tip (N_"<type your report menu tip here>")
'menu-path (list gnc:menuname-example)
'options-generator options-generator
'renderer document-renderer)
* document-renderer.scm *
(define-module (document-renderer))
;; options for the report (called by loader after it reloads this module)
(define (options-generator)
(let* ((options (gnc:new-options)))
; add your options here
options))
;; report renderer (called by loader after it reloads this module)
(define (document-renderer report-obj)
(let ((doc (gnc:make-html-document)))
;; add your renderer here
(gnc:html-document-add-object!
doc
(gnc:make-html-text
(gnc:html-markup-h3
(format #f (G_ "~a")
gnc:optname-reportname))))
doc))
(export options-generator)
(export document-renderer)
* config-user.scm *
(load (gnc-build-userdata-path "my-world.scm"))
(load (gnc-build-userdata-path "prototype.scm"))
(load (gnc-build-userdata-path "prototype-loader.scm"))
More information about the gnucash-devel
mailing list