9.5. Erstellen oder Ändern von Berichten

Es ist möglich, bestehende Berichte zu ändern oder eigene Berichte zu schreiben, wenn die vorhandenen nicht Ihren Ansprüchen genügen. Dazu müssen Sie Guile kennen, die GNOME-Implementierung von Scheme, welches eine LISP-ähnliche Programmiersprache ist. Weiterhin ist es sinnvoll, eine Kopie des GnuCash-Quellcodes zur Verfügung zu haben.

Einleitende Dateien im Quellcode

9.5.1. Zugriff auf die GnuCash-Programmierschnittstelle (API)

Um Informationen aus Ihrem GnuCash Buch für Ihren Bericht zu erhalten, ist es auch notwendig, auf Daten aus der GnuCash Engine zugreifen. Diese Bindung wird von Swig erzeugt und basiert auf einer Reihe von Scheme-Wrapper-Funktionen in bindings/guile. [11]

Tipp

Sehen Sie sich einige der anderen Berichte in gnucash/report/ an, um zu erfahren, wie sie verwendet werden.

Einige Anwender haben im Wiki unter https://wiki.gnucash.org/wiki/Custom-Report Ihre Erfahrungen zusammengetragen.

Da die obige Datei nur die Syntax der Funktion enthält, können Sie die nächtliche Doxygen-generierte API Online-Dokumentation für den stable branch verwenden, [12] um weitere Informationen über die Funktionen zu erhalten.

Nachdem Sie eine Build-Umgebung eingerichtet haben, können Sie sie auch lokal erzeugen, indem Sie

# make users:
make doc
# ninja users:
ninja doc

in Ihrem Build-Verzeichnis ausführen und dann BUILDDIR/libgnucash/doc/html/index.html mit Ihrem bevorzugten Browser öffnen.

9.5.2. Darstellung des Berichts

Gegenwärtig werden Berichte durch den Aufruf einer HTML-Generierungs-API erstellt, die einen HTML-Dialekt erzeugt und diesen mit einem HTML-Widget anzeigt. Dies hat seine Grenzen, insbesondere wenn es darum geht, Objekte genau auszurichten, wie es z. B. für den Druck auf vorgedruckte Rechnungen erforderlich sein könnte.

Bitte lesen Sie auch Abschnitt 9.4, „Drucken und Exportieren von Berichten“.



[11] Bis zur Version 2.0.5 wurde G-Wrap verwendet und die Datei zur Bindung war src/g-wrap/gnc.html.

[12] Nach der Implementierung des ersten Features der nächsten größeren Release wird auch ein future Zweig erscheinen.