Merge branch 'master' of ssh://lx-office/~/lx-office-erp
[kivitendo-erp.git] / doc / dokumentenvorlagen-und-variablen.html
index 9afad51..77feeb3 100644 (file)
@@ -3,7 +3,7 @@
   <title>Dokumentenvorlagen und verf&uuml;gbare Variablen</title>
   <style type="text/css">
   <!--
-.blue { 
+.blue {
            color: #000000;
            background-color: #b0ecff;
            border: 1px solid blue;
@@ -18,7 +18,7 @@ table {
         border-collapse: collapse;
         }
 
-td { 
+td {
      border: 1px solid #be5303;
      padding: 3px;
      }
@@ -82,7 +82,7 @@ td {
     <li><a href="dokumentenvorlagen-und-variablen.html#invoice_zahlungen">
       Variablen f&uuml;r die Zahlungseing&auml;nge</a></li>
 
-    <li><a href="dokumentenvorlagen-und-variablen.html#benutzerdefinierte_variablen_vc">
+    <li><a href="dokumentenvorlagen-und-variablen.html#invoice_benutzerdefinierte_variablen_vc">
       Benutzerdefinierte Kunden- und Lieferantenvariablen</a></li>
    </ol>
   </li>
@@ -106,15 +106,19 @@ td {
   </li>
 
   <li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen">
-    Variablen in anderen Vorlagen</a></li>
+    Variablen in anderen Vorlagen</a>
+
+   <ol>
+    <li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen_quotations">Angebote und Preisanfragen</a></li>
+    <li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen_orders">Auftragsbest&auml;tigungen und Lieferantenauftr&auml;ge</a></li>
+    <li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen_delivery_orders">Lieferscheine (Verkauf und Einkauf)</a></li>
+   </ol>
+  </li>
 
   <li><a href="dokumentenvorlagen-und-variablen.html#bloecke">
     Bl&ouml;cke, bedingte Anweisungen und Schleifen</a>
 
    <ol>
-    <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_ifnot">
-      Der <code>if not</code>-Block</a></li>
-
     <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_if">
       Der <code>if</code>-Block</a></li>
 
@@ -199,10 +203,10 @@ td {
 
  <p>Dies w&uuml;rde Lx-Office dazu veranlassen, Variablen zu ersetzen,
   wenn sie wie folgt aussehen: <code>($customer$)</code>. Das
-  äquivalente Beispiel f&uuml;r HTML-Dokumentenvorlagen sieht so
+  &auml;quivalente Beispiel f&uuml;r HTML-Dokumentenvorlagen sieht so
   aus:</p>
 
- <p><code>&lt;!-- config: tag-stye=($ $)&gt;</code></p>
+ <p><code>&lt;!-- config: tag-style=($ $) --&gt;</code></p>
 
  <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
    zum Inhaltsverzeichnis</a></small><br>
@@ -216,17 +220,66 @@ td {
   geeignet zu ersetzen: &quot;.tex&quot; f&uuml; LaTeX-Vorlagen und
   &quot;.odt&quot; f&uuml;r OpenDocument-Vorlagen.</p>
 
- <ul>
-  <li><code>bin_list.ext</code> -- Lagerliste</li>
-  <li><code>check.ext</code> -- ?</li>
-  <li><code>invoice.ext</code> -- Rechnung</li>
-  <li><code>packing_list.ext</code> -- Verpackungsliste</li>
-  <li><code>pick_list.ext</code> -- Sammelliste</li>
-  <li><code>purcharse_order.ext</code> -- Bestellung an Lieferanten</li>
-  <li><code>request_quotation.ext</code> -- Anfrage an Lieferanten</li>
-  <li><code>sales_order.ext</code> -- Bestellung</li>
-  <li><code>sales_quotation.ext</code> -- Angebot an Kunden</li>
- </ul>
+ <p>
+  <table border="1">
+   <tr>
+    <th>Dateiname</th>
+    <th>Bedeutung</th>
+   </tr>
+   <tr>
+    <td><code>bin_list.ext</code></td>
+    <td>Lagerliste</td>
+   </tr>
+   <tr>
+    <td><code>check.ext</code></td>
+    <td>?</td>
+   </tr>
+   <tr>
+    <td><code>invoice.ext</code></td>
+    <td>Rechnung</td>
+   </tr>
+   <tr>
+    <td><code>packing_list.ext</code></td>
+    <td>Packliste</td>
+   </tr>
+   <tr>
+    <td><code>pick_list.ext</code></td>
+    <td>Sammelliste</td>
+   </tr>
+   <tr>
+    <td><code>purchase_delivery_order.ext</code></td>
+    <td>Lieferschein (Einkauf)</td>
+   </tr>
+   <tr>
+    <td><code>purcharse_order.ext</code></td>
+    <td>Bestellung an Lieferanten</td>
+   </tr>
+   <tr>
+    <td><code>request_quotation.ext</code></td>
+    <td>Anfrage an Lieferanten</td>
+   </tr>
+   <tr>
+    <td><code>sales_delivery_order.ext</code></td>
+    <td>Lieferschein (Verkauf)</td>
+   </tr>
+   <tr>
+    <td><code>sales_order.ext</code></td>
+    <td>Bestellung</td>
+   </tr>
+   <tr>
+    <td><code>sales_quotation.ext</code></td>
+    <td>Angebot an Kunden</td>
+   </tr>
+   <tr>
+    <td><code>zahlungserinnerung.ext</code></td>
+    <td>Mahnung (Dateiname im Programm konfigurierbar)</td>
+   </tr>
+   <tr>
+    <td><code>zahlungserinnerung_invoice.ext</code></td>
+    <td>Rechnung &uuml;ber Mahngeb&uuml;hren (Dateiname im Programm konfigurierbar)</td>
+   </tr>
+  </table>
+ </p>
 
  <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
    zum Inhaltsverzeichnis</a></small><br>
@@ -253,6 +306,10 @@ td {
     <td><code>bank_code</code></td>
     <td>Bankleitzahl</td>
    </tr>
+   <tr>
+    <td><code>bic</code></td>
+    <td>Bank-Identifikations-Code (Bank Identifier Code, BIC)</td>
+   </tr>
    <tr>
     <td><code>business</code></td>
     <td>Kunden-/Lieferantentyp</td>
@@ -337,6 +394,10 @@ td {
     <td><code>homepage</code></td>
     <td>Homepage</td>
    </tr>
+   <tr>
+    <td><code>iban</code></td>
+    <td>Internationale Kontonummer (International Bank Account Number, IBAN)</td>
+   </tr>
    <tr>
     <td><code>language</code></td>
     <td>Sprache</td>
@@ -400,7 +461,7 @@ td {
    </tr>
    <tr>
     <td><code>shiptostreet</code></td>
-    <td>Straße und Hausnummer (Lieferadresse)
+    <td>Stra&szlig;e und Hausnummer (Lieferadresse)
      <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
    </tr>
    <tr>
@@ -410,12 +471,16 @@ td {
    </tr>
    <tr>
     <td><code>street</code></td>
-    <td>Straße und Hausnummer</td>
+    <td>Stra&szlig;e und Hausnummer</td>
    </tr>
    <tr>
     <td><code>taxnumber</code></td>
     <td>Steuernummer</td>
    </tr>
+    <td><code>ustid</code></td>
+    <td>Usatzsteuer-Identifikationsnummer</td>
+   </tr>
+   <tr>
    <tr>
     <td><code>vendoremail</code></td>
     <td>Email des Lieferanten; nur f&uuml;r Lieferanten</td>
@@ -505,7 +570,7 @@ td {
  </p>
 
  <h3><a name="allgemein_verkaeufer">
-   Informationen &uuml;ber den Verk&auml;fer (nur bei Verkaufsmasken):</a></h3>
+   Informationen &uuml;ber den Verk&auml;ufer (nur bei Verkaufsmasken):</a></h3>
 
  <p>
   <table border="1">
@@ -599,7 +664,7 @@ td {
    </tr>
    <tr>
     <td><code>currency</code></td>
-    <td>Währung</td>
+    <td>W&auml;hrung</td>
    </tr>
    <tr>
     <td><code>cusordnumber</code></td>
@@ -611,12 +676,16 @@ td {
    </tr>
    <tr>
     <td><code>duedate</code></td>
-    <td>Fälligkeitsdatum</td>
+    <td>F&auml;lligkeitsdatum</td>
    </tr>
    <tr>
     <td><code>globalprojectnumber</code></td>
     <td>Projektnummer des ganzen Beleges</td>
    </tr>
+   <tr>
+    <td><code>globalprojectdescription</code></td>
+    <td>Projekbeschreibung des ganzen Beleges</td>
+   </tr>
    <tr>
     <td><code>intnotes</code></td>
     <td>Interne Bemerkungen</td>
@@ -696,10 +765,6 @@ td {
  <p>
   <table border="1">
    <tr><th>Variablenname</th><th>Bedeutung</th></tr>
-   <tr>
-    <td><code>assembly</code></td>
-    <td>Erzeugnis</td>
-   </tr>
    <tr>
     <td><code>bin</code></td>
     <td>Stellage</td>
@@ -712,18 +777,46 @@ td {
     <td><code>discount</code></td>
     <td>Rabatt als Betrag</td>
    </tr>
+   <tr>
+    <td><code>discount_sub</code></td>
+    <td>Zwischensumme mit Rabatt</td>
+   </tr>
+   <tr>
+    <td><code>drawing</code></td>
+    <td>Zeichnung</td>
+   </tr>
+   <tr>
+    <td><code>ean</code></td>
+    <td>EAN-Code</td>
+   </tr>
+   <tr>
+    <td><code>image</code></td>
+    <td>Grafik</td>
+   </tr>
    <tr>
     <td><code>linetotal</code></td>
     <td>Zeilensumme (Anzahl * Einzelpreis)</td>
    </tr>
    <tr>
-    <td><code>listprice</code></td>
-    <td>Listenpreis</td>
+    <td><code>longdescription</code></td>
+    <td>Langtext</td>
+   </tr>
+   <tr>
+    <td><code>microfiche</code></td>
+    <td>Mikrofilm</td>
    </tr>
    <tr>
     <td><code>netprice</code></td>
     <td>Nettopreis</td>
    </tr>
+   <tr>
+    <td><code>nodiscount_linetotal</code></td>
+    <td>Zeilensumme ohne Rabatt</td>
+   </tr>
+   <tr>
+    <td><code>nodiscount_sub</code></td>
+    <td>Zwischensumme ohne Rabatt</td>
+   </tr>
    <tr>
     <td><code>number</code></td>
     <td>Artikelnummer</td>
@@ -756,6 +849,10 @@ td {
     <td><code>projectnumber</code></td>
     <td>Projektnummer</td>
    </tr>
+   <tr>
+    <td><code>projectdescription</code></td>
+    <td>Projektbeschreibung</td>
+   </tr>
    <tr>
     <td><code>qty</code></td>
     <td>Anzahl</td>
@@ -784,11 +881,35 @@ td {
     <td><code>unit</code></td>
     <td>Einheit</td>
    </tr>
+   <tr>
+    <td><code>weight</code></td>
+    <td>Gewicht</td>
+   </tr>
+  </table>
+ </p>
+
+ <p>F&uuml;r jeden Posten gibt es ein Unterarray mit den Informationen &uuml;ber
+  Lieferanten und Lieferantenartikelnummer. Diese m&uuml;ssen mit
+  einer <code>foreach</code>-Schleife ausgegeben werden, da f&uuml;r jeden
+  Artikel mehrere Lieferanteninformationen hinterlegt sein k&ouml;nnen. Die
+  Variablen daf&uuml;r lauten:</p>
+
+ <p>
+  <table border="1">
+   <tr><th>Variablenname</th><th>Bedeutung</th></tr>
+   <tr>
+    <td><code>make</code></td>
+    <td>Lieferant</td>
+   </tr>
+   <tr>
+    <td><code>model</code></td>
+    <td>Lieferantenartikelnummer</td>
+   </tr>
   </table>
  </p>
 
  <h3><a name="invoice_zahlungen">
-   Variablen f&uuml;r die einzelnen Zahlungseingänge:</a></h3>
+   Variablen f&uuml;r die einzelnen Zahlungseing&auml;nge:</a></h3>
 
  <p>
   <table border="1">
@@ -816,7 +937,7 @@ td {
   </table>
  </p>
 
- <h3><a name="benutzerdefinierte_variablen_vc">
+ <h3><a name="invoice_benutzerdefinierte_variablen_vc">
    Benutzerdefinierte Kunden- und Lieferantenvariablen:</a></h3>
 
  <p>
@@ -851,12 +972,12 @@ td {
 
  <h3><a name="dunning_allgemein">Allgemeine Variablen in Mahnungen:</a></h3>
 
- <p>Die Variablen des Verkäufers stehen wie gewohnt
-  als <code>employee_...</code> zur Verfügung. Die Adressdaten des
+ <p>Die Variablen des Verk&auml;ufers stehen wie gewohnt
+  als <code>employee_...</code> zur Verf&uuml;gung. Die Adressdaten des
   Kunden stehen als Variablen <code>name</code>, <code>street</code>,
   <code>zipcode</code>, <code>city</code>, <code>country</code>,
   <code>department_1</code>, <code>department_2</code>, und
-  <code>email</code> zur Verfügung.
+  <code>email</code> zur Verf&uuml;gung.
  </p>
 
  <p>Weitere Variablen beinhalten:</p>
@@ -872,9 +993,13 @@ td {
     <td><code>dunning_duedate</code></td>
     <td>F&auml;lligkeitsdatum f&uuml;r diese Mahhnung</td>
    </tr>
+   <tr>
+    <td><code>dunning_id</code></td>
+    <td>Mahnungsnummer</td>
+   </tr>
    <tr>
     <td><code>fee</code></td>
-    <td>Kummulative Mahngebühren</td>
+    <td>Kummulative Mahngeb&uuml;hren</td>
    </tr>
    <tr>
     <td><code>interest_rate</code></td>
@@ -955,12 +1080,12 @@ td {
  <h3><a name="dunning_invoice">Variablen in automatisch erzeugten
    Rechnungen &uuml;ber Mahngeb&uuml;hren</a></h3>
 
- <p>Die Variablen des Verkäufers stehen wie gewohnt
-  als <code>employee_...</code> zur Verfügung. Die Adressdaten des
+ <p>Die Variablen des Verk&auml;ufers stehen wie gewohnt
+  als <code>employee_...</code> zur Verf&uuml;gung. Die Adressdaten des
   Kunden stehen als Variablen <code>name</code>, <code>street</code>,
   <code>zipcode</code>, <code>city</code>, <code>country</code>,
   <code>department_1</code>, <code>department_2</code>, und
-  <code>email</code> zur Verfügung.
+  <code>email</code> zur Verf&uuml;gung.
  </p>
 
  <p>Weitere Variablen beinhalten:</p>
@@ -970,7 +1095,7 @@ td {
    <tr><th>Variablenname</th><th>Bedeutung</th></tr>
    <tr>
     <td><code>duedate</code></td>
-    <td>Fälligkeitsdatum der Rechnung</td>
+    <td>F&auml;lligkeitsdatum der Rechnung</td>
    </tr>
    <tr>
     <td><code>dunning_id</code></td>
@@ -1018,6 +1143,114 @@ td {
   Variablen, die vom Gesch&auml;ftsablauf her in der entsprechenden Vorlage
   keine Bedeutung haben oder noch nicht belegt sein k&ouml;nnen.</p>
 
+ <p>Im Folgenden werden nur wichtige Unterschiede zu den Variablen in
+  Rechnungen aufgef&uuml;hrt.</p>
+
+ <h3><a name="anderevorlagen_quotations">Angebote und Preisanfragen</a></h3>
+
+ <p>
+  <table border="1">
+   <tr><th>Variablenname</th><th>Bedeutung</th></tr>
+   <tr>
+    <td><code>quonumber</code></td>
+    <td>Angebots- bzw. Anfragenummer</td>
+   </tr>
+   <tr>
+    <td><code>reqdate</code></td>
+    <td>G&uuml;ltigkeitsdatum (bei Angeboten) bzw. Lieferdatum (bei Preisanfragen)</td>
+   </tr>
+   <tr>
+    <td><code>transdate</code></td>
+    <td>Angebots- bzw. Anfragedatum</td>
+   </tr>
+  </table>
+ </p>
+
+ <h3><a name="anderevorlagen_orders">Auftragsbest&auml;tigungen und Lieferantenauftr&auml;ge</a></h3>
+
+ <p>
+  <table border="1">
+   <tr><th>Variablenname</th><th>Bedeutung</th></tr>
+   <tr>
+    <td><code>ordnumber</code></td>
+    <td>Auftragsnummer</td>
+   </tr>
+   <tr>
+    <td><code>reqdate</code></td>
+    <td>Lieferdatum</td>
+   </tr>
+   <tr>
+    <td><code>transdate</code></td>
+    <td>Auftragsdatum</td>
+   </tr>
+  </table>
+ </p>
+
+ <h3><a name="anderevorlagen_delivery_orders">Lieferscheine (Verkauf und Einkauf)</a></h3>
+
+ <p>
+  <table border="1">
+   <tr><th>Variablenname</th><th>Bedeutung</th></tr>
+   <tr>
+    <td><code>cusordnumber</code></td>
+    <td>Bestellnummer des Kunden (im Verkauf) bzw. Bestellnummer des Lieferanten (im Einkauf)</td>
+   </tr>
+   <tr>
+    <td><code>donumber</code></td>
+    <td>Lieferscheinnummer</td>
+   </tr>
+   <tr>
+    <td><code>transdate</code></td>
+    <td>Lieferscheindatum</td>
+   </tr>
+  </table>
+ </p>
+
+ <p>F&uuml;r jede Position eines Lieferscheines gibt es ein Unterarray mit
+  den Informationen dar&uuml;ber, von welchem Lager und Lagerplatz aus die
+  Waren verschickt wurden (Verkaufslieferscheine) bzw. auf welchen
+  Lagerplatz sie eingelagert wurden. Diese m&uuml;ssen mittels
+  einer <code>foreach</code>-Schleife ausgegeben werden. Diese
+  Variablen sind:</p>
+
+ <p>
+  <table border="1">
+   <tr><th>Variablenname</th><th>Bedeutung</th></tr>
+   <tr>
+    <td><code>si_bin</code></td>
+    <td>Lagerplatz</td>
+   </tr>
+   <tr>
+    <td><code>si_chargenumber</code></td>
+    <td>Chargennummer</td>
+   </tr>
+   <tr>
+    <td><code>si_bestbefore</code></td>
+    <td>Mindesthaltbarkeit</td>
+   </tr>
+   <tr>
+    <td><code>si_number</code></td>
+    <td>Artikelnummer</td>
+   </tr>
+   <tr>
+    <td><code>si_qty</code></td>
+    <td>Anzahl bzw. Menge</td>
+   </tr>
+   <tr>
+    <td><code>si_runningnumber</code></td>
+    <td>Positionsnummer (1, 2, 3 etc)</td>
+   </tr>
+   <tr>
+    <td><code>si_unit</code></td>
+    <td>Einheit</td>
+   </tr>
+   <tr>
+    <td><code>si_warehouse</code></td>
+    <td>Lager</td>
+   </tr>
+  </table>
+ </p>
+
  <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
    zum Inhaltsverzeichnis</a></small><br>
  <hr>
@@ -1025,35 +1258,77 @@ td {
  <h2><a name="bloecke">
    Bl&ouml;cke, bedingte Anweisungen und Schleifen</a></h2>
 
- <p>Der Parser kennt neben den Variablen einige weitere Konstrukte, die
-  gesondert behandelt werden. Diese sind wie Variablennamen in spezieller
-  Weise markiert: <code>&lt;%anweisung%&gt;</code></p>
-
- <h3><a name="bloecke_ifnot">Der <code>if not</code>-Block</a></h3>
-
- <p class="blue"><code>&lt;%if not variablenname%&gt;<br>
-   ...<br>
-   &lt;%end&gt;</code></p>
-
- <p>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.</p>
+ <p>Der Parser kennt neben den Variablen einige weitere Konstrukte,
+  die gesondert behandelt werden. Diese sind wie Variablennamen in
+  spezieller Weise markiert: <code>&lt;%anweisung%&gt;
+  ... &lt;%end%&gt;</code></p>
+
+ <p>Anmerkung zum <code>&lt;%end%&gt;</code>: Der besseren
+  Verständlichkeit halber kann man nach dem <code>end</code> noch
+  beliebig weitere Wörter schreiben, um so zu markieren, welche
+  Anweisung (z.B. <code>if</code> oder <code>foreach</code>) damit
+  abgeschlossen wird.</p>
+
+ <p>Beispiel: Lautet der Beginn eines Blockes
+   z.B. <code class="blue">&lt;%if type ==
+   &quot;sales_quotation&quot;%&gt;</code>, so könnte er mit
+  <code class="blue">&lt;%end%&gt;</code> genauso abgeschlossen werden
+  wie mit
+  <code class="blue">&lt;%end if%&gt;</code> oder auch
+  <code class="blue">&lt;%end type ==
+  &quot;sales_quotation&quot;%&gt;</code>.</p>
 
  <h3><a name="bloecke_if">Der <code>if</code>-Block</a></h3>
 
  <p class="blue"><code>&lt;%if variablenname%&gt;<br>
    ...<br>
-   &lt;%end&gt;</code></p>
-
- <p>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.</p>
+   &lt;%end%&gt;</code></p>
+
+ <p>Eine normale &quot;if-then&quot;-Bedingung. Die Zeilen zwischen
+  dem &quot;if&quot; und dem &quot;end&quot; werden nur ausgegeben,
+  wenn die Variable &quot;variablenname&quot; gesetzt und ungleich 0
+  ist.</p>
+
+ <p>Die Bedingung kann auch negiert werden, indem das Wort
+  &quot;not&quot; nach dem &quot;if&quot; verwendet
+  wird. Beispiel: <code class="blue">&lt;%if not
+  cp_greeting%&gt;</code></p>
+
+ <p>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:</p>
+
+ <p><code class="blue">&lt;%if var1 == &quot;Wert&quot;%&gt;</code>
+  testet die Variable &quot;var1&quot; auf Übereinstimmung mit der
+  Zeichenkette &quot;Wert&quot;. Mittels &quot;!=&quot; anstelle von
+  &quot;==&quot; würde auf Ungleichheit getestet.</p>
+
+ <p><code class="blue">&lt;%if var1 == var2%&gt;</code> testet die
+  Variable &quot;var1&quot; auf Übereinstimmung mit der Variablen
+  &quot;var2&quot;. Mittels &quot;!=&quot; anstelle von &quot;==&quot;
+  würde auf Ungleichheit getestet.</p>
+
+ <p>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 &quot;=~&quot; und &quot;!~&quot;
+  als Vergleichsoperatoren.</p>
+
+ <p>Beispiel für einen Test, ob die Variable &quot;intnotes&quot;
+  (interne Bemerkungen) das Wort &quot;schwierig&quot; enthält:
+  <code class="blue">&lt;%if intnotes =~
+  &quot;schwierig&quot;%&gt;</code></p>
 
  <h3><a name="bloecke_foreach">Die <code>foreach</code>-Schleife</a></h3>
 
  <p class="blue"><code>&lt;%foreach variablenname%&gt;<br>
    ...<br>
-   &lt;%end&gt;</code></p>
+   &lt;%end%&gt;</code></p>
 
  <p>F&uuml;gt die Zeilen zwischen den beiden Anweisungen so oft ein, wie das
   Perl-Array der Variablen "variablenname" Elemente enth&auml;t. Dieses
@@ -1071,20 +1346,20 @@ td {
    Artikelnummer: &lt;%number%&gt;<br>
    Beschreibung: &lt;%description%&gt;<br>
    ...<br>
-   &lt;%end&gt;</code></p>
+   &lt;%end%&gt;</code></p>
 
  <p>Besonderheit in OpenDocument-Vorlagen: Tritt ein
-  <code>&lt;foreach&gt;</code>-Block innerhalb einer Tabellenzelle
+  <code>&lt;%foreach%&gt;</code>-Block innerhalb einer Tabellenzelle
   auf, so wird die komplette Tabellenzeile so oft wiederholt wie
   notwendig. Tritt er au&szlig;erhalb auf, so wird nur der Inhalt
-  zwischen <code>&lt;foreach&gt;</code> und <code>&lt;end&gt;</code>
+  zwischen <code>&lt;%foreach%&gt;</code> und <code>&lt;%end%&gt;</code>
   wiederholt, nicht aber die komplette Zeile, in der er steht.</p>
 
  <h3><a name="bloecke_pagebreak">Der <code>pagebreak</code>-Block</a></h3>
 
  <p class="blue"><code>&lt;%pagebreak ZpZ ZeS ZzS%&gt;<br>
    ...<br>
-   &lt;%end&gt;</code></p>
+   &lt;%end%&gt;</code></p>
 
  <p>Dieser Block existiert nur in LaTeX-Vorlagen.</p>
 
@@ -1173,8 +1448,8 @@ td {
   href="dokumentenvorlagen-und-variablen.html#bloecke_pagebreak">pagebreak-Block</a>
   voreingestellten Werte einen Seitenumbruch nach der aktuellen
   Rechnungsposition. Dementsprechend funktioniert er nur innerhalb von
-  <code>&lt;foreach...&gt;</code>-Schleifen. Weiterhin ben&ouml;tigt er kein
-  Endtag.</p>
+  <code>&lt;%foreach...%&gt;</code>-Schleifen. Weiterhin ben&ouml;tigt
+  er kein Endtag.</p>
 
  <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
    zum Inhaltsverzeichnis</a></small><br>