3.4. Excel-Vorlagen

3.4.1. Zusammenfassung

Dieses Dokument beschreibt den Mechanismus, mit dem Exceltemplates abgearbeitet werden, und die Einschränkungen, die damit einhergehen.

3.4.2. Bedienung

Der Excel Mechanismus muss in der Konfigurationsdatei aktiviert werden. Die Konfigurationsoption heißt excel_templates = 1 im Abschnitt [print_templates].

Eine Excelvorlage kann dann unter dem Namen einer beliebigen anderen Vorlage mit der Endung .xls gespeichert werden. In den normalen Verkaufsmasken taucht nun Excel als auswählbares Format auf und kann von da an wie LaTeX- oder OpenOffice-Vorlagen benutzt werden.

Der Sonderfall der Angebote aus der Kundenmaske ist ebenfalls eine Angebotsvorlage und wird unter dem internen Namen der Angebote sales_quotation.xls gespeichert.

3.4.3. Variablensyntax

Einfache Syntax: <<varname>>

Dabei sind << und >> die Delimiter. Da Excel auf festen Breiten besteht, kann der Tag künstlich verlängert werden, indem weitere < oder > eingefügt werden. Der Tag muss nicht symmetrisch sein. Beispiel:

<<<<<varname>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Um die Limitierung der festen Breite zu reduzieren, können weitere Variablen in einem Block interpoliert werden. Whitespace wird dazwishen dann erhalten. Beispiel:

<<<<<varname1 varname2   varname3>>>>>>>>>>>>>>>>>>>>>>>>>>

Die Variablen werden interpoliert, und linksbündig mit Leerzeichen auf die gewünschte Länge aufgefüllt. Ist der String zu lang, werden überzählige Zeichen abgeschnitten.

Es ist ausserdem möglich, Daten rechtsbündig darzustellen, wenn der Block mit einem Leerzeichen anfängt. Beispiel:

<<<<<<            varname>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Dies würde rechtsbündig triggern. Wenn bei rechtsbündiger Ausrichtung Text abgeschnitten werden muss, wird er vom linken Ende entfernt.

3.4.4. Einschränkungen

Das Excelformat bis 2002 ist ein binäres Format, und kann nicht mit vertretbarem Aufwand editiert werden. Der Templatemechanismus beschränkt sich daher darauf, Textstellen exakt durch einen anderen Text zu ersetzen.

Aus dem gleichen Grund sind die Kontrolllstrukturen <%if%> und <%foreach%> nicht vorhanden. Der Delimiter <% %> kommt in den Headerinformationen evtl. vor. Deshalb wurde auf den sichereren Delimiter << und >> gewechselt.