@@ -1237,35 +1234,77 @@ td {
- Der Parser kennt neben den Variablen einige weitere Konstrukte, die
- gesondert behandelt werden. Diese sind wie Variablennamen in spezieller
- Weise markiert: <%anweisung%>
-
-
-
- <%if not variablenname%>
- ...
- <%end>
-
- Eine normale "if-not-then"-Bedingung. Die Zeilen zwischen dem "if not" und
- dem "end" werden nur ausgegeben, wenn die Variable "variablenname" nicht
- gesetzt oder gleich 0 ist.
+ Der Parser kennt neben den Variablen einige weitere Konstrukte,
+ die gesondert behandelt werden. Diese sind wie Variablennamen in
+ spezieller Weise markiert: <%anweisung%>
+ ... <%end%>
+
+ Anmerkung zum <%end%>
: Der besseren
+ Verständlichkeit halber kann man nach dem end
noch
+ beliebig weitere Wörter schreiben, um so zu markieren, welche
+ Anweisung (z.B. if
oder foreach
) damit
+ abgeschlossen wird.
+
+ Beispiel: Lautet der Beginn eines Blockes
+ z.B. <%if type ==
+ "sales_quotation"%>
, so könnte er mit
+ <%end%>
genauso abgeschlossen werden
+ wie mit
+ <%end if%>
oder auch
+ <%end type ==
+ "sales_quotation"%>
.
<%if variablenname%>
...
- <%end>
-
- Eine normale "if-then"-Bedingung. Die Zeilen zwischen dem "if" und dem
- "end" werden nur ausgegeben, wenn die Variable "variablenname" gesetzt und
- ungleich 0 ist.
+ <%end%>
+
+ Eine normale "if-then"-Bedingung. Die Zeilen zwischen
+ dem "if" und dem "end" werden nur ausgegeben,
+ wenn die Variable "variablenname" gesetzt und ungleich 0
+ ist.
+
+ Die Bedingung kann auch negiert werden, indem das Wort
+ "not" nach dem "if" verwendet
+ wird. Beispiel: <%if not
+ cp_greeting%>
+
+ Zusätzlich zu dem einfachen Test, ob eine Variable gesetzt ist
+ oder nicht, bietet dieser Block auch die Möglichkeit, den Inhalt
+ einer Variablen mit einer festen Zeichenkette oder einer anderen
+ Variablen zu vergleichen. Ob der Vergleich mit einer Zeichenkette
+ oder einer anderen Variablen vorgenommen wird, hängt davon ab, ob
+ die rechte Seite des Vergleichsoperators in Anführungszeichen
+ gesetzt wird (Vergleich mit Zeichenkette) oder nicht (Vergleich mit
+ anderer Variablen). Zwei Beispiele, die beide Vergleiche zeigen:
+
+ <%if var1 == "Wert"%>
+ testet die Variable "var1" auf Übereinstimmung mit der
+ Zeichenkette "Wert". Mittels "!=" anstelle von
+ "==" würde auf Ungleichheit getestet.
+
+ <%if var1 == var2%>
testet die
+ Variable "var1" auf Übereinstimmung mit der Variablen
+ "var2". Mittels "!=" anstelle von "=="
+ würde auf Ungleichheit getestet.
+
+ Erfahrere Benutzer können neben der Tests auf (Un-)Gleichheit auch
+ Tests auf Übereinstimmung mit regulären Ausdrücken ohne
+ Berücksichtung der Groß- und Kleinschreibung durchführen. Dazu dient
+ dieselbe Syntax wie oben nur mit "=~" und "!~"
+ als Vergleichsoperatoren.
+
+ Beispiel für einen Test, ob die Variable "intnotes"
+ (interne Bemerkungen) das Wort "schwierig" enthält:
+ <%if intnotes =~
+ "schwierig"%>
<%foreach variablenname%>
...
- <%end>
+ <%end%>
Fügt die Zeilen zwischen den beiden Anweisungen so oft ein, wie das
Perl-Array der Variablen "variablenname" Elemente enthät. Dieses
@@ -1283,20 +1322,20 @@ td {
Artikelnummer: <%number%>
Beschreibung: <%description%>
...
- <%end>
+ <%end%>
Besonderheit in OpenDocument-Vorlagen: Tritt ein
- <foreach>
-Block innerhalb einer Tabellenzelle
+ <%foreach%>
-Block innerhalb einer Tabellenzelle
auf, so wird die komplette Tabellenzeile so oft wiederholt wie
notwendig. Tritt er außerhalb auf, so wird nur der Inhalt
- zwischen <foreach>
und <end>
+ zwischen <%foreach%>
und <%end%>
wiederholt, nicht aber die komplette Zeile, in der er steht.
<%pagebreak ZpZ ZeS ZzS%>
...
- <%end>
+ <%end%>
Dieser Block existiert nur in LaTeX-Vorlagen.
@@ -1385,8 +1424,8 @@ td {
href="dokumentenvorlagen-und-variablen.html#bloecke_pagebreak">pagebreak-Block
voreingestellten Werte einen Seitenumbruch nach der aktuellen
Rechnungsposition. Dementsprechend funktioniert er nur innerhalb von
- <foreach...>
-Schleifen. Weiterhin benötigt er kein
- Endtag.
+ <%foreach...%>
-Schleifen. Weiterhin benötigt
+ er kein Endtag.
zum Inhaltsverzeichnis