<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Sans Serif">
<p>Hallo zusammen,</p>
<p></p>
<p>bereits vor ein paar Jahren habe ich festgestellt, daß GnuCash ein sehr mächtiges Programm ist. Leider hielt mich die mitgelieferte, auch im englischen sehr schlechte Dokumentation lange von einer intensiven Nutzung ab.</p>
<p></p>
<p>Lange vor mir hergeschoben, habe ich mich heute, angeregt durch das Kapitel im LinuxWiki und den Kollegen Sachzwang an die Personalisierung/Anpassung des Rechnungsformulars begeben. Die dabei gewonnenen Erkenntnisse möchte ich gerne weitergeben. Vielleicht pflegt sie ja auch jemand in das Linuxwiki ein, da ich es wohl heute nacht nicht mehr schaffe, mich mich da auch noch einzuarbeiten.</p>
<p></p>
<p>Vorweg meine Systemumgebung: das mit SuSE 9.3 mitgelieferte gnuCash 1.8.9 ist wohl schon leicht angestaubt und kämpft bisweilen mit dem Eurozeichen, aber auf Produktionsmaschinen wechselt man die Pferde ja nicht so häufig. Ich kann folglich auch keine Gewähr übernehmen, daß sich alles noch genau an dem Platz befindet, den ich hier angebe.</p>
<p></p>
<p>1. Wo finde ich invoice.scm?</p>
<p>&quot;Die Datei befindet sich z.B. unter /usr/share/gnucash/scm/reports/invoice.scm, aber der genaue Ort hängt von der verwendeten Distribution ab.&quot;</p>
<p>Wenn ich den &quot;File hierarchy standard (FHS)&quot; noch richtig in Erinnerung habe, gilt folgendes:</p>
<ul type="disc"><li><span style="font-weight:600">B</span>eim Selbstcompilieren wird statt &quot;/usr/...&quot; oft &quot;/usr/local/...&quot; das Ziel sein, welches sich in beim config aber nochändern läßt.</li>
<li>Neuere Distributionen installieren gnucash unter gnome und gnome unter opt, also &quot;/opt/gnome/share/gnucash/...&quot;</li></ul>
<p>Bei gnuCash 1.8.9 folgt dann &quot;.../guile-modules/gnucash/report/invoice.scm&quot;.</p>
<p></p>
<p>Hat man die Datei gefunden und überflogen drängt sich ein Verdacht auf:</p>
<p></p>
<p>2. gnucash kann HTML</p>
<p>Für diejenigen die es noch nicht wissen, &quot;HyperText Markup Language&quot; ist die Seitenauszeichnungssprache, die jeder Internet-Browser versteht. Wer sich damit beschäftigen möchte, findet eine leicht verständliche und ausführliche Anleitung unter [http://www.selfhtml.org/].</p>
<p></p>
<p>Damit ist es dann z.B. in gnuCash möglich, die Angaben unter Datei/Eigenschaften nahezu beliebig zu formatieren, etwa den Firmennamen mit &quot;&lt;br&gt;&quot; auf 2 Zeilen aufzuteilen.</p>
<p></p>
<p>Meine Dateieigenschaften sehen nun etwa so aus:</p>
<p>Firmenname: </p>
<p>&lt;h1&gt;Firmenname Rechtsform&lt;/h1&gt;&lt;h5&gt;Ich Inhaber&lt;/h5&gt;</p>
<p></p>
<p>Firmenadresse: </p>
<p>Meinestraße Nr</p>
<p>DE-PLZ Ort</p>
<p></p>
<p>&lt;i&gt;email:&lt;/i&gt; name@example.de</p>
<p>&lt;b&gt;fon/fax:&lt;/b&gt; +49-123-45678</p>
<p></p>
<p>&lt;b&gt;St.-Nr.:&lt;/b&gt; 123/4567/890A&lt;p&gt;</p>
<p></p>
<p>Kopieren Sie diese Angaben doch mal in eine frischen Testdatei ein, geben eine Rechnung ein und schauen sich die Druckvorschau an. Die hierbei gewonnenen Erkenntnisse können Sie dann in nahezu jedem (auch einzeiligen) Texteingabefeld, welches für die Ausgabe auf der Rechnung bestimmt ist, anwenden.</p>
<p></p>
<p>3. gnucash kann LISP</p>
<p>Offiziell sind die .scm Dateien, weche die Ein- und Ausgaben steuern in guile-scheme geschrieben. Dabei handelt es sich aber um einen Dialekt der legendären Programmiersprache LISP (LISt Processing/Listenverarbeitung), welche uns schon vor ca. einem halben Jahrhundert die Welt rekursiv zu erklären versuchte: Eine Liste ist entweder leer oder sie besteht aus einem Kopfelement und einer Restliste; mehr braucht es nicht. Andernorts trieben zu der Zeit noch COBOLde ihr Unwesen.</p>
<p></p>
<p>Mit genügend Zeit und Muße hat man also ein sehr mächtiges Werkzeug zur Verfügung, um sich beliebige Filter zu bauen (MWSt-Voranmeldung/ELSTER ...). Heute wollen wir aber nur das Rechnungsformular an deutsche Rechtslage *) und Gepflogenheiten anpassen.</p>
<p></p>
<ul type="disc"><li>) dieser Artikel stellt keine Rechtsberatung dar!</li></ul>
<p></p>
<p>4. invoice.scm läßt sich komfortabel konfigurieren</p>
<p>Der nette Mensch, welcher vor über einem Jahr dankenswerterweise die Anleitung erstellt hat, macht die Sache komplizierter als sie ist. Man muß nicht an 2 verschiedenen stellen editieren, um eine Spalte zu entfernen. Derek Atkins hat schon eine Menge Vorarbeit geleistet, um die Konfiguration einfach zu machen.</p>
<p></p>
<p>&gt;&gt;&gt; Bevor jetzt irgendetwas editiert wird, bitte unbedingt eine Kopie von invoice.scm an einen sicheren Ort bringen. Im weiteren immer eine Kopie der Originalzeile anlegen, die man dann editiert, während man die Originalzeile mit einem Semikolon &quot;;&quot; auskommentiert. &lt;&lt;&lt;</p>
<p></p>
<p>Im wesentlichen kann man sich auf den Abschnitt &quot;(define (options-generator)&quot; beschränken, um Optionen ein &quot;#t&quot;(true/wahr) oder aus &quot;#f&quot;(false/falsch) zu schalten. Ich empfehle, zunächst einmal alle Optionen einzuschalten, um zu sehen, was alles dargestellt werden kann; anschließend kann man die Optionen, die man normalerweise nicht braucht, ausschalten.</p>
<p></p>
<p>Ach ja, die Zeile:</p>
<p>     &quot;Thank you for your patronage&quot;))</p>
<p>ersetzt man vielleicht durch etwas wie:</p>
<p>     &quot;Vielen Dank f&amp;uuml;r Ihren Einkauf. Wir freuen uns schon ...&lt;p&gt;&lt;table border=1&gt;&lt;tr&gt;&lt;td&gt;Kontonummer:&lt;/td&gt;&lt;td&gt;123456789&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;HR Z1234&lt;td&gt;kgl. bayr. Amtsgericht&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bank:&lt;/td&gt;&lt;td&gt;Gartenbank Lummerland&lt;/td&gt;&lt;td&gt;IBAN:&lt;/td&gt;&lt;td&gt;DE12345678900123456789&lt;/td&gt;&lt;td&gt;St.-Nr.:&lt;/td&gt;&lt;td&gt;123/4567/8901&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;BLZ:&lt;/td&gt;&lt;td&gt;12345678&lt;/td&gt;&lt;td&gt;BIC:&lt;/td&gt;&lt;td&gt;ABCDDEZZ&lt;/td&gt;&lt;td&gt;UStId&lt;/td&gt;&lt;td&gt;DE1234567 XXX&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&quot;))</p>
<p></p>
<p>Da ein angelsächsiches Datumformat mit deutschen Monatsnamen besonders besch... aussieht, ersetzt im Absatz darunter &quot;... date-&gt;string ...&quot; die letzte Zeile durch:</p>
<p>    &quot;%e. %B %Y&quot;))</p>
<p></p>
<p>5. Die Rechnungsvorschau bietet einen Konfigurationsdialog</p>
<p>Sollte man eine deaktivierte Option dann doch ausnahmsweise brauchen (bevor der Großauftrag durch die Lappen geht, räumt man ja vielleicht doch einen Skonto ein?), schaltet man sie in der Ansicht &quot;Druckbare Rechnung&quot; im Dialog Optionen wieder um. Dabei kann aber bei ausgiebiger Nutzung von HTML die Formatierung etwas durcheinander geraten. </p>
<p></p>
<p>6. Feinheiten:</p>
<p>Das Formular verwendet für die Ausweisung der Steuer die Kontennamen. Für eine zeitgemäße Darstellung (nach 36 Jahren), nennt man im GKR4 die Konten &quot;Umsatzsteuer x%&quot; in &quot;MWSt x%&quot; um.</p>
<p></p>
<p>So, die Nacht geht zu Ende und ich hoffe, daß mein Geschreibsel hilft dem einen oder der anderen etwas weiter zu einem ansprechenden Rechnungsformular.</p>
<p></p>
<p>Viele Grüße</p>
<p>Frank Ellenberger</p>
</body></html>