Templated reports with eguile2
cgdennis at btinternet.com
Thu Feb 5 19:30:15 EST 2009
Hello GnuCash developers
A first draft of my system for using templates to create GnuCash reports
is now ready for people to play with.
It can be bolted on to any GnuCash installation very simply. Download
three files from http://www.fbcs.co.uk/files/gnucash :
I gave Neale Pickett's eguile.scm a major rewrite (for reasons listed in
the code), and I'm calling it eguile2.scm for now. It's implemented as
a standard Guile module. It has been developed using Guile 1.6.8, and
should work with 1.8 too (but I haven't tested that yet).
eguile2.scm needs to be put into the same directory as other reports --
that's /usr/share/gnucash/guile-modules/gnucash/report/ on my system.
egreport1.scm is a typical Gnucash report in the sense that it can
either be installed as a mainstream module in
/usr/share/gnucash/guile-modules/gnucash/report/, or added to the user's
custom reports by adding a line in ~/.gnucash/config.user indicating its
location (see http://wiki.gnucash.org/wiki/Custom_Reports ). It shows
up as a report called "Minimal Invoice Report using eguile2". I put
egreport1.scm in ~/.gnucash, so I have the following line in config.user:
egreport1.eguile is the template, which also needs to be put into
~/.gnucash (because that location is hard-coded in egreport1.scm at the
egreport1 is a VERY basic customer invoice, showing company and customer
details, and invoice lines and totals. It ignores discounts and taxes,
and also does not show payments, and displays nonsense numbers if you
select a bill rather than an invoice, so please don't use it for real yet.
The template is a mix of HTML and Guile code, a bit like using PHP. For
<h1>This is Guile version <?scm:d (version) ?></h1>
There are the beginnings of some documentation in the comments near the
top of eguile2.scm.
Comments can be included in the template in either HTML form:
<!-- HTML comment -->
or Guile form:
; Guile comment
BUT be very careful that the two don't overlap, or there will be errors.
Error messages are displayed in a very basic form in the report window.
As with any GnuCash report, GnuCash has to be restarted if any code in
egreport1.scm is changed. But the good news is that if you make changes
to the template, i.e. egreport1.eguile, you only need to reload the
report to see the effects of the change.
- It's Linux only at the moment, simply because of the filename handling
- eguile2.scm creates a processed copy of the template in
/tmp/gnucash.eguile2.script.scm (that name is hard-coded and is also
Linux-specific). The file is useful for debugging the template.
Please give it a try and let me know what you think.
Chris Dennis cgdennis at btinternet.com
Fordingbridge, Hampshire, UK
More information about the gnucash-devel