Dieses Dokument beschreibt den Mechanismus, mit dem Exceltemplates abgearbeitet werden, und die Einschränkungen, die damit einhergehen.
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.
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.
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.