![]() | Note |
---|---|
This section may need updating !!! |
It is possible to write reports if the current ones are not suitable. To do this
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 in the source code file
src/report/report-system/doc/report-html.txt
.
The file src/report/utility-reports/hello-world.scm
in the GnuCash
source distribution provides a
good example of how reports are developed.
It is also necessary to access data from the engine to get
information for your report. This is
since version 2.1.x performed by a set of
Scheme wrapper functions that are documented in the file
src/engine/swig-engine.c
.
Up to version 2.0.5 it was
src/g-wrap/gnc.html
. Examine some of the other
reports in src/scm/report for an indication of how they are used.
Some users started a table in the GnuCash
wiki
Custom Reports#The GnuCash API.
Because the above file only contains the syntax of the function you can use the Doxygen source documentation either local after running
./configure --enable-doxygen --enable-html-docs make doc
on your sources or online http://code.gnucash.org/docs/MAINT/ or http://code.gnucash.org/docs/MASTER/ to get more information about the functions.
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.