Merge branch 'master' of vc.linet-services.de:public/lx-office-erp
[kivitendo-erp.git] / doc / dokumentenvorlagen-und-variablen.html
index 24df114..e1dac11 100644 (file)
@@ -48,6 +48,12 @@ td {
   <li><a href="dokumentenvorlagen-und-variablen.html#zuordnung_dateinamen">
     Zuordnung von Dateinamen zu den Funktionen</a></li>
 
+  <li><a href="#variablen_ausgeben">Variablen ausgeben</a>
+  </li>
+
+  <li><a href="#verwendung_in_druckbefehlen">Verwendung in Druckbefehlen</a>
+  </li>
+
   <li><a href="dokumentenvorlagen-und-variablen.html#tag_style">
     Anfang und Ende der Tags ver&auml;ndern</a></li>
 
@@ -112,6 +118,7 @@ td {
     <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>
+    <li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen_statement">Sammelrechnung</a></li>
    </ol>
   </li>
 
@@ -124,9 +131,6 @@ td {
 
     <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_foreach">
       Die <code>foreach</code>-Schleife</a></li>
-
-    <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_pagebreak">
-      Der <code>pagebreak</code>-Block</a></li>
    </ol>
   </li>
 
@@ -149,6 +153,15 @@ td {
    ver&auml;ndern</a>.
  </p>
 
+ <p>Einige Zahlenwerte werden auch in unformatierter Form zur Verf&uuml;gung
+  gestellt (also z.B. 35 statt 35,00 oder 12.3 statt 12,30). Der Dezimaltrenner
+  ist dabei also immer ein Punkt unabhaengig vom eingestellten Zahlenformat.
+  Diese Variabelen kann man mit der Erweiterung _nofmt (f&uuml;r  no-format) aufrufen
+  (also z.B. netprice = 12,30 -- netprice_nofmt = 12.3). Variabeln die zus&auml;tzlich
+  unformatiert zur Verf&uuml;gung stehen sind unten als variable[_nofmt] gelistet.
+  Die Eckigen Klammern weisen also auf eine optionale Verw&auml;ndung der Erweiterung hin.
+  </p>
+
  <p>Fr&uuml;her wurde hier nur &uuml;ber LaTeX gesprochen. Inzwischen
   unterst&uuml;tzt Lx-Office aber auch OpenDocument-Vorlagen. Sofern
   es nicht ausdr&uuml;cklich eingeschr&auml;nkt wird, gilt das im
@@ -182,6 +195,68 @@ td {
    zum Inhaltsverzeichnis</a></small><br>
  <hr>
 
+ <h2><a name="variablen_ausgeben">Variablen ausgeben</a></h2>
+
+ <p>Um eine Variable auszugeben, müssen sie einfach nur zwischen die
+  Tags geschrieben werden, also
+  z.B. <code>&lt;%variablenname%&gt;</code>.</p>
+
+ <p>
+  Optional kann man auch mit Leerzeichen getrennte Flags angeben, die
+  man aber nur selten brauchen wird. Die Syntax sieht also so
+  aus: <code>&lt;%variablenname FLAG1 FLAG2%&gt;</code>. Momentan werden
+  die folgenden Flags unterstützt:
+ </p>
+
+ <ul>
+  <li>
+   <code>NOFORMAT</code> gilt nur für Zahlenwerte und gibt den Wert
+   ohne Formatierung, also ohne Tausendertrennzeichen mit mit einem
+   Punkt als Dezimaltrennzeichen aus. Nützlich z.B., wenn damit in der
+   Vorlage z.B. von LaTeX gerechnet werden soll.
+  </li>
+
+  <li>
+   <code>NOESCAPE</code> unterdrückt das Escapen von Sonderzeichen für
+   die Vorlagensprache. Wenn also in einer Variablen bereits gültiger
+   LaTeX-Code steht und dieser von LaTeX auch ausgewertet und nicht
+   wortwörtlich angezeigt werden soll, so ist dieses Flag sinnvoll.
+  </li>
+ </ul>
+
+ <p>
+  Beispiel: <code class="blue">&lt;%quototal NOFORMAT%&gt;</code>
+ </p>
+
+ <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
+   zum Inhaltsverzeichnis</a></small><br>
+ <hr>
+
+ <h2><a name="verwendung_in_druckbefehlen">Verwendung in Druckbefehlen</a></h2>
+
+ <p>
+  In der Admininstration können Drucker definiert werden. Auch im dort
+  eingebbaren Druckbefehl können die hier aufgelisteten Variablen und
+  Kontrollstrukturen verwendet werden. Ihr Inhalt wird dabei nach den
+  Regeln der gängigen Shells formatiert, sodass Sonderzeichen
+  wie <code>`...`</code> nicht zu unerwünschtem Verhalten führen.
+ </p>
+
+ <p>
+  Dies erlaubt z.B. die Definition eines Faxes als Druckerbefehl, für
+  das die Telefonnummer eines Ansprechpartners als Teil der
+  Kommandozeile verwendet wird. Für ein fiktives Kommando könnte das
+  z.B. wie folgt aussehen:
+ </p>
+
+ <p>
+  <code>send_fax --number &lt;%if cp_phone2%&gt;&lt;%cp_phone2%&gt;&lt;%else%&gt;&lt;%cp_phone1%&gt;&lt;%end%&gt;</code>
+ </p>
+
+ <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
+   zum Inhaltsverzeichnis</a></small><br>
+ <hr>
+
  <h2><a name="tag_style">
    Anfang und Ende der Tags ver&auml;ndern</a></h2>
 
@@ -281,6 +356,23 @@ td {
   </table>
  </p>
 
+ <a name="#dateinamen_erweitert"<h3>Sprache, Drucker und E-Mail</h3>
+
+ <p>Angeforderte Sprache und Druckerk&uuml;rzel in den Dateinamen mit eingearbeitet. So wird aus der Vorlage <code>sales_order.ext</code> bei Sprache <code>de</code> und Druckerk&uuml;rzel <code>lpr2</code> der Vorlagenname <code>sales_order_de_lpr2.ext</code>. Zus&auml;tzlich k&ouml;nnen f&uuml;r E-Mails andere Vorlagen erstellt werden, diese bekommen dann noch das K&uuml;rzel <code>_email</code>, der vollst&auml;ndige Vorlagenname w&auml;re dann <code>sales_order_email_de_lpr2.ext</code>. In allen F&auml;llen kann eine Standarddatei <code>default.ext</code> hinterlegt werden. Diese wird verwendet, wenn keine der anderen Varianten gefunden wird.</p>
+
+ <p>Die vollst&auml;ndige Suchreihenfolge f&uuml;r einen Verkaufsauftrag mit der Sprache "de" und dem Drucker "lpr2", der per E-Mail im Format PDF verschickt wird, ist:</p>
+ <p>
+  <table border='1'>
+   <tr><th>Reihenfolge der m&ouml;glichen Vorlagennamen</th></tr>
+   <tr><td><code>sales_order_email_de_lpr2.tex</code></td></tr>
+   <tr><td><code>sales_order_de_lpr2.tex</code></td></tr>
+   <tr><td><code>sales_order.tex</code></td></tr>
+   <tr><td><code>default.tex</code></td></tr>
+  </table>
+ </p>
+
+ <p>Die kurzen Varianten dieser Vorlagentitel m&uuml;ssen dann entweder Standardwerte anzeigen, oder die angeforderten Werte selbst auswerten, siehe dazu <a href="#allgemein_meta">Metadaten in Vorlagen</a></p>
+
  <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
    zum Inhaltsverzeichnis</a></small><br>
  <hr>
@@ -288,6 +380,57 @@ td {
  <h2><a name="allgemeine_variablen">
    Allgemeine Variablen, die in allen Vorlagen vorhanden sind</a></h2>
 
+ <h3><a name="allgemein_meta">
+   Metainformationen zur angeforderten Vorlage:</a></h3>
+
+ <p>Diese Variablen liefern Informationen dar&uuml;ber welche Variante einer Vorlage der Benutzer angefragt hat. Sie sind n&uuml;tzlich f&uuml;r Vorlagenautoren, die aus einer zentralen Layoutvorlage die einzelnen Formulare einbinden m&ouml;chten.</p>
+
+ <p>
+  <table border="1">
+   <tr><th>Variablenname</th><th>Bedeutung</th></tr>
+   <tr>
+    <td><code>template_meta.formname</code></td>
+    <td>Basisname der Vorlage. Identisch mit der <a href="#zuordnung_dateinamen">Zurordnung zu den Dateinamen</a> ohne die Erweiterung. Ein Verkaufsauftrag enth&auml;lt hier <code>sales_order</code>.</td>
+   </tr>
+   <tr>
+    <td><code>template_meta.language.description</code></td>
+    <td>Beschreibung der verwendeten Sprache</td>
+   </tr>
+   <tr>
+    <td><code>template_meta.language.template_code</code></td>
+    <td>Vorlagen&uuml;rzel der verwendeten Sprache, identisch mit dem K&uuml;rzel das im Dateinamen verwendetet wird.</td>
+   </tr>
+   <tr>
+    <td><code>template_meta.language.output_numberformat</code></td>
+    <td>Zahlenformat der verwendeten Sprache in der Form "1.000,00". <em>Experimentell!</em>. Nur interessant f&uuml;r Vorlagen die mit unformatierten Werten arbeiten.</td>
+   </tr>
+   <tr>
+    <td><code>template_meta.language.output_dateformat</code></td>
+    <td>Datumsformat der verwendeten Sprache in der Form "dd.mm.yyyy". <em>Experimentell!</em>. Nur interessant f&uuml;r Vorlagen die mit unformatierten Werten arbeiten.</td>
+   </tr>
+   <tr>
+    <td><code>template_meta.format</code></td>
+    <td>Das angeforderte Format. Kann im Moment die Werte <code>pdf</code>, <code>postscript</code>, <code>html</code>, <code>opendocument</code>, <code>opendocument_pdf</code> und <code>excel</code> enthalten.</td>
+   </tr>
+   <tr>
+    <td><code>template_meta.extension</code></td>
+    <td>Dateierweiterung, wie im Dateinamen. Wird aus <code>format</code> entschieden.</td>
+   </tr>
+   <tr>
+    <td><code>template_meta.media</code></td>
+    <td>Ausgabemedium. Kann zur Zeit die Werte <code>screen</code> f&uuml;r Bildschirm, <code>email</code> f&uuml;r E-Mmail (triggert das <code>_email</code> K&uuml;rzel im Dateinamen), <code>printer</code> f&uuml;r Drucker, und <code>queue</code> f&uuml;r Warteschlange enthalten.</td>
+   </tr>
+   <tr>
+    <td><code>template_meta.printer.description</code></td>
+    <td>Beschreibung des ausgew&auml;hlten Druckers</td>
+   </tr>
+   <tr>
+    <td><code>template_meta.printer.template_code</code></td>
+    <td>Vorlagen&uuml;rzel des ausgew&auml;hlten Druckers, identisch mit dem K&uuml;rzel das im Dateinamen verwendetet wird.</td>
+   </tr>
+  </table>
+ </p>
+
  <h3><a name="allgemein_stammdaten">
    Stammdaten von Kunden und Lieferanten:</a></h3>
 
@@ -406,6 +549,10 @@ td {
     <td><code>name</code></td>
     <td>Firmenname</td>
    </tr>
+   <tr>
+    <td><code>payment_description</code></td>
+    <td>Name der Zahlart</td>
+   </tr>
    <tr>
     <td><code>payment_terms</code></td>
     <td>Zahlungskonditionen</td>
@@ -479,7 +626,7 @@ td {
    </tr>
    <tr>
     <td><code>ustid</code></td>
-    <td>Usatzsteuer-Identifikationsnummer</td>
+    <td>Umsatzsteuer-Identifikationsnummer</td>
    </tr>
    <tr>
    <tr>
@@ -715,6 +862,10 @@ td {
     <td><code>ordnumber</code></td>
     <td>Auftragsnummer, wenn die Rechnung aus einem Auftrag erstellt wurde</td>
    </tr>
+   <tr>
+    <td><code>payment_description</code></td>
+    <td>Name der Zahlart</td>
+   </tr>
    <tr>
     <td><code>payment_terms</code></td>
     <td>Zahlungskonditionen</td>
@@ -736,15 +887,9 @@ td {
     <td>Transportmittel</td>
    </tr>
    <tr>
-    <td><code>subtotal</code></td>
+    <td><code>subtotal[_nofmt]</code></td>
     <td>Zwischensumme aller Posten ohne Steuern</td>
    </tr>
-   <tr>
-    <td><code>sumcarriedforward</code></td>
-    <td>Zwischensumme aller bisher ausgegebenen Posten. Sollte nur in einem
-     <a href="dokumentenvorlagen-und-variablen.html#bloecke_pagebreak">
-      <code>pagebreak</code></a>-Block verwendet werden.</td>
-   </tr>
    <tr>
     <td><code>total</code></td>
     <td>Restsumme der Rechnung (Summe abz&uuml;glich bereits bezahlter Posten)</td>
@@ -775,11 +920,11 @@ td {
     <td>Artikelbeschreibung</td>
    </tr>
    <tr>
-    <td><code>discount</code></td>
+    <td><code>discount[_nofmt]</code></td>
     <td>Rabatt als Betrag</td>
    </tr>
    <tr>
-    <td><code>discount_sub</code></td>
+    <td><code>discount_sub[_nofmt]</code></td>
     <td>Zwischensumme mit Rabatt</td>
    </tr>
    <tr>
@@ -795,7 +940,7 @@ td {
     <td>Grafik</td>
    </tr>
    <tr>
-    <td><code>linetotal</code></td>
+    <td><code>linetotal[_nofmt]</code></td>
     <td>Zeilensumme (Anzahl * Einzelpreis)</td>
    </tr>
    <tr>
@@ -807,15 +952,15 @@ td {
     <td>Mikrofilm</td>
    </tr>
    <tr>
-    <td><code>netprice</code></td>
+    <td><code>netprice[_nofmt]</code></td>
     <td>Nettopreis</td>
    </tr>
    <tr>
-    <td><code>nodiscount_linetotal</code></td>
+    <td><code>nodiscount_linetotal[_nofmt]</code></td>
     <td>Zeilensumme ohne Rabatt</td>
    </tr>
    <tr>
-    <td><code>nodiscount_sub</code></td>
+    <td><code>nodiscount_sub[_nofmt]</code></td>
     <td>Zwischensumme ohne Rabatt</td>
    </tr>
    <tr>
@@ -855,7 +1000,7 @@ td {
     <td>Projektbeschreibung</td>
    </tr>
    <tr>
-    <td><code>qty</code></td>
+    <td><code>qty[_nofmt]</code></td>
     <td>Anzahl</td>
    </tr>
    <tr>
@@ -867,7 +1012,7 @@ td {
     <td>Position auf der Rechnung (1, 2, 3...)</td>
    </tr>
    <tr>
-    <td><code>sellprice</code></td>
+    <td><code>sellprice[_nofmt]</code></td>
     <td>Verkaufspreis</td>
    </tr>
    <tr>
@@ -1079,6 +1224,11 @@ td {
     <td><code>dn_transdate</code></td>
     <td>Rechnungsdatum</td>
    </tr>
+   <tr>
+    <td><code>dn_curr</code></td>
+    <td>W&auml;hrung, in der die Rechnung erstellt wurde. (Die Rechnungsbetr&auml;ge
+      sind aber immer in der Hauptw&auml;hrung)</td>
+   </tr>
   </table>
  </p>
 
@@ -1211,6 +1361,14 @@ td {
   </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>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
@@ -1256,6 +1414,81 @@ td {
   </table>
  </p>
 
+ <h3><a name="anderevorlagen_statement">Sammelrechnung</a></h3>
+
+ <h3> Variablen f&uuml;r Sammelrechnung:</h3>
+ <p>
+  <table border="1">
+   <tr><th>Variablenname</th><th>Bedeutung</th></tr>
+   <tr>
+    <td><code>c0total</code></td>
+    <td>Gesamtbetrag aller Rechnungen mit F&auml;lligkeit &lt; 30 Tage</td>
+   </tr>
+   <tr>
+    <td><code>c30total</code></td>
+    <td>Gesamtbetrag aller Rechnungen mit F&auml;lligkeit &gt;= 30 und &lt; 60 Tage</td>
+   </tr>
+   <tr>
+    <td><code>c60total</code></td>
+    <td>Gesamtbetrag aller Rechnungen mit F&auml;lligkeit &gt;= 60 und &lt; 90 Tage</td>
+   </tr>
+   <tr>
+    <td><code>c90total</code></td>
+    <td>Gesamtbetrag aller Rechnungen mit F&auml;lligkeit &gt;= 90 Tage</td>
+   </tr>
+   <tr>
+    <td><code>total</code></td>
+    <td>Gesamtbetrag aller Rechnungen</td>
+   </tr>
+  </table>
+ </p>
+
+ <h3> Variablen f&uuml;r jede Rechnungsposition in Sammelrechnung:</h3>
+ <p>
+  <table border="1">
+   <tr><th>Variablenname</th><th>Bedeutung</th></tr>
+   <tr>
+    <td><code>invnumber</code></td>
+    <td>Rechnungsnummer</td>
+   </tr>
+   <tr>
+    <td><code>invdate</code></td>
+    <td>Rechnungsdatum</td>
+   </tr>
+   <tr>
+    <td><code>duedate</code></td>
+    <td>F&auml;lligkeitsdatum</td>
+   </tr>
+   <tr>
+    <td><code>amount</code></td>
+    <td>Summe der Rechnung</td>
+   </tr>
+   <tr>
+    <td><code>open</code></td>
+    <td>Noch offener Betrag der Rechnung</td>
+   </tr>
+   <tr>
+    <td><code>c0</code></td>
+    <td>Noch offener Rechnungsbetrag mit F&auml;lligkeit &lt; 30 Tage</td>
+   </tr>
+   <tr>
+    <td><code>c30</code></td>
+    <td>Noch offener Rechnungsbetrag mit F&auml;lligkeit &gt;= 30 und &lt; 60 Tage</td>
+   </tr>
+   <tr>
+    <td><code>c60</code></td>
+    <td>Noch offener Rechnungsbetrag mit F&auml;lligkeit &gt;= 60 und &lt; 90 Tage</td>
+   </tr>
+   <tr>
+    <td><code>c90</code></td>
+    <td>Noch offener Rechnungsbetrag mit F&auml;lligkeit &gt;= 90 Tage</td>
+   </tr>
+  </table>
+ </p>
+
+
+
+
  <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
    zum Inhaltsverzeichnis</a></small><br>
  <hr>
@@ -1269,14 +1502,14 @@ td {
   ... &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
+  Verst&auml;ndlichkeit halber kann man nach dem <code>end</code> noch
+  beliebig weitere W&ouml;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
+   &quot;sales_quotation&quot;%&gt;</code>, so k&ouml;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
@@ -1299,33 +1532,33 @@ td {
   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
+ <p>Zus&auml;tzlich zu dem einfachen Test, ob eine Variable gesetzt ist
+  oder nicht, bietet dieser Block auch die M&ouml;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
+  oder einer anderen Variablen vorgenommen wird, h&auml;ngt davon ab, ob
+  die rechte Seite des Vergleichsoperators in Anf&uuml;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
+  testet die Variable &quot;var1&quot; auf &Uuml;bereinstimmung mit der
   Zeichenkette &quot;Wert&quot;. Mittels &quot;!=&quot; anstelle von
-  &quot;==&quot; würde auf Ungleichheit getestet.</p>
+  &quot;==&quot; w&uuml;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
+  Variable &quot;var1&quot; auf &Uuml;bereinstimmung mit der Variablen
   &quot;var2&quot;. Mittels &quot;!=&quot; anstelle von &quot;==&quot;
-  würde auf Ungleichheit getestet.</p>
+  w&uuml;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
+ <p>Erfahrere Benutzer k&ouml;nnen neben der Tests auf (Un-)Gleichheit auch
+  Tests auf &Uuml;bereinstimmung mit regul&auml;ren Ausdr&uuml;cken ohne
+  Ber&uuml;cksichtung der Gro&szlig;- und Kleinschreibung durchf&uuml;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:
+ <p>Beispiel f&uuml;r einen Test, ob die Variable &quot;intnotes&quot;
+  (interne Bemerkungen) das Wort &quot;schwierig&quot; enth&auml;lt:
   <code class="blue">&lt;%if intnotes =~
   &quot;schwierig&quot;%&gt;</code></p>
 
@@ -1360,47 +1593,6 @@ td {
   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>
-
- <p>Dieser Block existiert nur in LaTeX-Vorlagen.</p>
-
- <p>Dieser Block legt das Verhalten beim manuellen Einf&uuml;gen eines
-  Seitenumbruchs fest. Normalerweise bricht LaTeX die Seiten selber um. Beim
-  Rechnungsdruck ist das oft nicht gew&uuml;nscht, oder man m&ouml;chte im
-  Falle eines Seitenumbruchs den &Uuml;bertrag etc. mit ausgeben. Deswegen
-  versucht der Parser, manuell Seitenumbr&uuml;che einzuf&uuml;gen,
-  w&auml;hrend er einen <code>foreach</code>-Block auswertet, weil hier die
-  manuellen Seitenumbr&uuml;che erforderlich werden. Daf&uuml;r ben&ouml;tigt
-  der Parser aber drei Informationen:</p>
-
- <p>
-  <ol>
-   <li>Wieviele Zeichen passen bei der Variablen "description" pro Posten
-    in eine Zeile? Das ist der Parameter "ZpZ" (Zeichen pro Zeile).</li>
-   <li>Wieviele Zeilen/Posten passen auf die erste Seite? Das
-    ist der Parameter "ZeS" (Zeilen erste Seite).</li>
-   <li>Wieviele Zeilen/Posten passen auf die zweite und alle nachfolgenden
-    Seiten? Das ist der Parameter "ZzS" (Zeilen zweite Seite).</li>
-  </ol>
- </p>
-
- <p>Diese Parameter sind drei Zahlen, die manuell durch Verwendung von langen
-  Warenbezeichnungen und Rechnungen mit vielen Posten bestimmt werden
-  m&uuml;ssen.</p>
-
- <p>&Uuml;blicherweise wird in diesem Block zuerst die aktuelle Tabelle
-  geschlossen, eventuell Text eingef&uuml;gt (z.B. "Fortsetzung auf der
-  n&auml;chsten Seite"), dann ein Seitenumbruch erzwungen, eventuell Text
-  eingef&uuml;gt (z.B. "&Uuml;bertrag von der vorherigen Seite:
-  &lt;%sumcarriedforward%&gt; EUR") und die Tabelle wieder ge&ouml;ffnet.</p>
-
- <p>Wird kein manueller Seitenumbruch gew&uuml;scht, so kann dieser Block
-  komplett entfallen.</p>
-
  <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
    zum Inhaltsverzeichnis</a></small><br>
  <hr>
@@ -1443,19 +1635,23 @@ td {
     <td><code>&lt;pagebreak&gt;</code></td>
     <td>Erzwingt einen Seitenumbruch (siehe unten).</td>
    </tr>
+   <tr>
+    <td><code>&lt;bullet&gt;</code></td>
+    <td>Erzeugt einen ausgef&uuml;llten Kreis f&uuml;r Aufz&auml;hlungen (&bull;) (siehe unten).</td>
+   </tr>
   </table>
  </p>
 
  <p>Eine Besonderheit ist der Befehl <code>&lt;pagebreak&gt;</code>,
   der nur in LaTeX-Vorlagen funktioniert und in anderen Vorlagen
-  einfach gel&ouml;scht wird. Dieser erzwingt unabh&auml;ngig von der
-  im <a
-  href="dokumentenvorlagen-und-variablen.html#bloecke_pagebreak">pagebreak-Block</a>
-  voreingestellten Werte einen Seitenumbruch nach der aktuellen
-  Rechnungsposition. Dementsprechend funktioniert er nur innerhalb von
+  einfach gel&ouml;scht wird. Dieser erzwingt 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>
 
+ <p>Auch <code>&lt;bullet&gt;</code> funktioniert momentan auch nur in Latex-Vorlagen.</p>
+
  <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
    zum Inhaltsverzeichnis</a></small><br>
  <hr>