Constructing custom reports

It is possible to write your own reports to meet your own needs, if you can program a little. You will need to know Scheme (a LISP-like programming language), and it is an excellent idea to have a copy of the GnuCash source code available.

The reporting interface is documented as Report Development; but you can get a good idea of how it works by examining the file src/scm/report/hello-world.scm in the GnuCash source distribution.

You will also need to access data from the "engine" to get information for your report. This is performed by a set of Scheme wrapper functions that are documented in the file src/g-wrap/gnc.html. You may wish to examine some of the other reports in src/scm/report for an indication of how they are used.

At present, reports are produced by calling a HTML-generation API, which outputs a dialect of HTML and rendering this with a HTML widget. This has limitations (particularly when trying to align objects precisely, as might be necessary for printing onto pre-printed invoices for example), so in the future an additional report generation interface may be needed.