<title>Dokumentenvorlagen und verfügbare Variablen</title>
<style type="text/css">
<!--
-.blue {
+.blue {
color: #000000;
background-color: #b0ecff;
border: 1px solid blue;
border-collapse: collapse;
}
-td {
+td {
border: 1px solid #be5303;
padding: 3px;
}
<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ändern</a></li>
+
<li><a href="dokumentenvorlagen-und-variablen.html#allgemeine_variablen">
Allgemeine Variablen, die in allen Vorlagen vorhanden sind</a><br>
<li><a href="dokumentenvorlagen-und-variablen.html#allgemein_stammdaten">
Stammdaten von Kunden und Lieferanten</a></li>
+ <li><a href="dokumentenvorlagen-und-variablen.html#allgemein_bearbeiter">
+ Informationen über den Bearbeiter</a></li>
+
<li><a href="dokumentenvorlagen-und-variablen.html#allgemein_verkaeufer">
Informationen über den Verkäufer</a></li>
<li><a href="dokumentenvorlagen-und-variablen.html#invoice_zahlungen">
Variablen für die Zahlungseingänge</a></li>
+
+ <li><a href="dokumentenvorlagen-und-variablen.html#invoice_benutzerdefinierte_variablen_vc">
+ Benutzerdefinierte Kunden- und Lieferantenvariablen</a></li>
</ol>
</li>
- <li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen">
- Variablen in anderen Vorlagen</a></li>
-
- <li><a href="dokumentenvorlagen-und-variablen.html#bloecke">
- Blöcke, bedingte Anweisungen und Schleifen</a>
+ <li><a href="dokumentenvorlagen-und-variablen.html#dunning">
+ Variablen in Mahnungen und Rechnungen über Mahngebühren</a>
<ol>
- <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_einschr_latex">
- Einschänkungen für Blöcke in LaTeX-Vorlagen</a></li>
+ <li><a href="dokumentenvorlagen-und-variablen.html#dunning_vorlagennamen">
+ Namen der Vorlagen</a></li>
+
+ <li><a href="dokumentenvorlagen-und-variablen.html#dunning_allgemein">
+ Allgemeine Variablen in Mahnungen</a></li>
+
+ <li><a href="dokumentenvorlagen-und-variablen.html#dunning_details">
+ Variablen für jede gemahnte Rechnung in einer Mahnung</a></li>
+
+ <li><a href="dokumentenvorlagen-und-variablen.html#dunning_invoice">
+ Variablen in automatisch erzeugten Rechnungen über Mahngebühren</a></li>
+ </ol>
+ </li>
- <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_einschr_opendocument">
- Einschänkungen für Blöcke in OpenDocument-Vorlagen</a></li>
+ <li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen">
+ Variablen in anderen Vorlagen</a>
- <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_include">
- Die <code>include</code>-Anweisung</a></li>
+ <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ätigungen und Lieferantenaufträ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>
- <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">
+ Blöcke, bedingte Anweisungen und Schleifen</a>
+ <ol>
<li><a href="dokumentenvorlagen-und-variablen.html#bloecke_if">
Der <code>if</code>-Block</a></li>
<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>
<p>Dies ist eine Auflistung der Standard-Dokumentenvorlagen und aller
zur Bearbeitung verfügbaren Variablen. Eine Variable wird in
einer Vorlage durch ihren Inhalt ersetzt, wenn sie in der Form
- <code><%variablenname%></code> verwendet wird.</p>
+ <code><%variablenname%></code> verwendet wird. Für LaTeX-
+ und HTML-Vorlagen kann man die Form dieser Tags auch
+ <a href="dokumentenvorlagen-und-variablen.html#tag_style">
+ verändern</a>.
+ </p>
+
+ <p>Einige Zahlenwerte werden auch in unformatierter Form zur Verfü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ür no-format) aufrufen
+ (also z.B. netprice = 12,30 -- netprice_nofmt = 12.3). Variabeln die zusätzlich
+ unformatiert zur Verfügung stehen sind unten als variable[_nofmt] gelistet.
+ Die Eckigen Klammern weisen also auf eine optionale Verwändung der Erweiterung hin.
+ </p>
<p>Früher wurde hier nur über LaTeX gesprochen. Inzwischen
unterstützt Lx-Office aber auch OpenDocument-Vorlagen. Sofern
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><%variablenname%></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><%variablenname FLAG1 FLAG2%></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"><%quototal NOFORMAT%></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 <%if cp_phone2%><%cp_phone2%><%else%><%cp_phone1%><%end%></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ändern</a></h2>
+
+ <p>Der Standardstil für Tags sieht vor, dass ein Tag mit dem
+ Kleinerzeichen und einem Prozentzeichen beginnt und mit dem
+ Prozentzeichen und dem Größerzeichen endet,
+ beispielsweise <code><%customer%></code>. Da diese Form aber
+ z.B. in LaTeX zu Problemen führen kann, weil das Prozentzeichen
+ dort Kommentare einleitet, kann pro HTML- oder
+ LaTeX-Dokumentenvorlage der Stil umgestellt werden.</p>
+
+ <p>Dazu werden in die Datei Zeilen geschrieben, die mit dem für
+ das Format gültigen Kommentarzeichen anfangen,
+ dann <code>config:</code> enthalten, die entsprechende Option setzen
+ und bei HTML-Dokumentenvorlagen mit dem Kommentarendzeichen
+ enden. Beispiel für LaTeX:</p>
+
+ <p><code>% config: tag-style=($ $)</code></p>
+
+ <p>Dies würde Lx-Office dazu veranlassen, Variablen zu ersetzen,
+ wenn sie wie folgt aussehen: <code>($customer$)</code>. Das
+ äquivalente Beispiel für HTML-Dokumentenvorlagen sieht so
+ aus:</p>
+
+ <p><code><!-- config: tag-style=($ $) --></code></p>
+
+ <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
+ zum Inhaltsverzeichnis</a></small><br>
+ <hr>
+
<h2><a name="zuordnung_dateinamen">
Zuordnung von den Dateinamen zu den Funktionen</a></h2>
geeignet zu ersetzen: ".tex" fü LaTeX-Vorlagen und
".odt" fü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 über Mahngebühren (Dateiname im Programm konfigurierbar)</td>
+ </tr>
+ </table>
+ </p>
+
+ <a name="#dateinamen_erweitert"<h3>Sprache, Drucker und E-Mail</h3>
+
+ <p>Angeforderte Sprache und Druckerkürzel in den Dateinamen mit eingearbeitet. So wird aus der Vorlage <code>sales_order.ext</code> bei Sprache <code>de</code> und Druckerkürzel <code>lpr2</code> der Vorlagenname <code>sales_order_de_lpr2.ext</code>. Zusätzlich können für E-Mails andere Vorlagen erstellt werden, diese bekommen dann noch das Kürzel <code>_email</code>, der vollständige Vorlagenname wäre dann <code>sales_order_email_de_lpr2.ext</code>. In allen Fällen kann eine Standarddatei <code>default.ext</code> hinterlegt werden. Diese wird verwendet, wenn keine der anderen Varianten gefunden wird.</p>
+
+ <p>Die vollständige Suchreihenfolge fü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ö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ü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>
<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über welche Variante einer Vorlage der Benutzer angefragt hat. Sie sind nützlich für Vorlagenautoren, die aus einer zentralen Layoutvorlage die einzelnen Formulare einbinden mö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ä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ürzel der verwendeten Sprache, identisch mit dem Kü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ü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ü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ür Bildschirm, <code>email</code> für E-Mmail (triggert das <code>_email</code> Kürzel im Dateinamen), <code>printer</code> für Drucker, und <code>queue</code> für Warteschlange enthalten.</td>
+ </tr>
+ <tr>
+ <td><code>template_meta.printer.description</code></td>
+ <td>Beschreibung des ausgewählten Druckers</td>
+ </tr>
+ <tr>
+ <td><code>template_meta.printer.template_code</code></td>
+ <td>Vorlagenürzel des ausgewählten Druckers, identisch mit dem Kürzel das im Dateinamen verwendetet wird.</td>
+ </tr>
+ </table>
+ </p>
+
<h3><a name="allgemein_stammdaten">
Stammdaten von Kunden und Lieferanten:</a></h3>
<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>Kundentyp</td>
+ <td>Kunden-/Lieferantentyp</td>
</tr>
<tr>
<td><code>city</code></td>
<td>Kreditlimit</td>
</tr>
<tr>
- <td><code>customernumber</code></td>
- <td>Kundennummer; nur für Kunden</td>
+ <td><code>customeremail</code></td>
+ <td>Email des Kunden; nur für Kunden</td>
+ </tr>
+ <tr>
+ <td><code>customerfax</code></td>
+ <td>Faxnummer des Kunden; nur für Kunden</td>
</tr>
<tr>
<td><code>customernotes</code></td>
<td>Bemerkungen beim Kunden; nur für Kunden</td>
</tr>
+ <tr>
+ <td><code>customernumber</code></td>
+ <td>Kundennummer; nur für Kunden</td>
+ </tr>
+ <tr>
+ <td><code>customerphone</code></td>
+ <td>Telefonnummer des Kunden; nur für Kunden</td>
+ </tr>
<tr>
<td><code>discount</code></td>
<td>Rabatt</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>
<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>
+ </tr>
<tr>
<td><code>phone</code></td>
<td>Telefonnummer</td>
</tr>
<tr>
<td><code>shiptostreet</code></td>
- <td>Straße und Hausnummer (Lieferadresse)
+ <td>Straße und Hausnummer (Lieferadresse)
<a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
</tr>
<tr>
</tr>
<tr>
<td><code>street</code></td>
- <td>Straße und Hausnummer</td>
+ <td>Straße und Hausnummer</td>
</tr>
<tr>
<td><code>taxnumber</code></td>
<td>Steuernummer</td>
</tr>
<tr>
- <td><code>terms</code></td>
- <td>Zahlungsziel</td>
+ <td><code>ustid</code></td>
+ <td>Umsatzsteuer-Identifikationsnummer</td>
</tr>
+ <tr>
<tr>
<td><code>vendoremail</code></td>
<td>Email des Lieferanten; nur für Lieferanten</td>
sondern schlicht Kopien der Lieferdatenvariablen sind
(z.B. <code>shiptocontact</code>).</p>
- <h3><a name="allgemein_verkaeufer">
- Informationen über den Verkäufer:</a></h3>
+ <h3><a name="allgemein_bearbeiter">
+ Informationen über den Bearbeiter:</a></h3>
<p>
<table border="1">
<td><code>employee_company</code></td>
<td>Firmenname</td>
</tr>
+ <tr>
+ <td><code>employee_co_ustid</code></td>
+ <td>Usatzsteuer-Identifikationsnummer</td>
+ </tr>
+ <tr>
+ <td><code>employee_duns</code></td>
+ <td>DUNS-Nummer</td>
+ </tr>
<tr>
<td><code>employee_email</code></td>
<td>Email</td>
<td><code>employee_signature</code></td>
<td>Signatur</td>
</tr>
+ <tr>
+ <td><code>employee_taxnumber</code></td>
+ <td>Steuernummer</td>
+ </tr>
<tr>
<td><code>employee_tel</code></td>
<td>Telefonnummer</td>
</table>
</p>
+ <h3><a name="allgemein_verkaeufer">
+ Informationen über den Verkäufer (nur bei Verkaufsmasken):</a></h3>
+
+ <p>
+ <table border="1">
+ <tr><th>Variablenname</th><th>Bedeutung</th></tr>
+ <tr>
+ <td><code>salesman_address</code></td>
+ <td>Adressfeld</td>
+ </tr>
+ <tr>
+ <td><code>salesman_businessnumber</code></td>
+ <td>Firmennummer</td>
+ </tr>
+ <tr>
+ <td><code>salesman_company</code></td>
+ <td>Firmenname</td>
+ </tr>
+ <tr>
+ <td><code>salesman_co_ustid</code></td>
+ <td>Usatzsteuer-Identifikationsnummer</td>
+ </tr>
+ <tr>
+ <td><code>salesman_duns</code></td>
+ <td>DUNS-Nummer</td>
+ </tr>
+ <tr>
+ <td><code>salesman_email</code></td>
+ <td>Email</td>
+ </tr>
+ <tr>
+ <td><code>salesman_fax</code></td>
+ <td>Fax</td>
+ </tr>
+ <tr>
+ <td><code>salesman_name</code></td>
+ <td>voller Name</td>
+ </tr>
+ <tr>
+ <td><code>salesman_signature</code></td>
+ <td>Signatur</td>
+ </tr>
+ <tr>
+ <td><code>salesman_taxnumber</code></td>
+ <td>Steuernummer</td>
+ </tr>
+ <tr>
+ <td><code>salesman_tel</code></td>
+ <td>Telefonnummer</td>
+ </tr>
+ </table>
+ </p>
+
<h3><a name="allgemein_steuern">
Variablen für die einzelnen Steuern:</a></h3>
</tr>
<tr>
<td><code>currency</code></td>
- <td>Währung</td>
+ <td>Währung</td>
</tr>
<tr>
<td><code>cusordnumber</code></td>
</tr>
<tr>
<td><code>duedate</code></td>
- <td>Fälligkeitsdatum</td>
+ <td>Fä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><code>notes</code></td>
<td>Bemerkungen der Rechnung</td>
</tr>
+ <tr>
+ <td><code>orddate</code></td>
+ <td>Auftragsdatum</td>
+ </tr>
<tr>
<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>
+ </tr>
+ <tr>
+ <td><code>quodate</code></td>
+ <td>Angebotsdatum</td>
+ </tr>
<tr>
<td><code>quonumber</code></td>
<td>Angebotsnummer</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üglich bereits bezahlter Posten)</td>
</tr>
+ <tr>
+ <td><code>transaction_description</code></td>
+ <td>Vorgangsbezeichnung</td>
+ </tr>
<tr>
<td><code>transdate</code></td>
<td>Auftragsdatum wenn die Rechnung aus einem Auftrag erstellt wurde</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>
</tr>
- <tr>
- <td><code>deliverydate_oe</code></td>
- <td>Lieferdatum</td>
- </tr>
<tr>
<td><code>description</code></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>linetotal</code></td>
+ <td><code>discount_sub[_nofmt]</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[_nofmt]</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><code>netprice[_nofmt]</code></td>
<td>Nettopreis</td>
</tr>
+ <tr>
+ <td><code>nodiscount_linetotal[_nofmt]</code></td>
+ <td>Zeilensumme ohne Rabatt</td>
+ </tr>
+ <tr>
+ <td><code>nodiscount_sub[_nofmt]</code></td>
+ <td>Zwischensumme ohne Rabatt</td>
+ </tr>
<tr>
<td><code>number</code></td>
<td>Artikelnummer</td>
<td><code>partsgroup</code></td>
<td>Warengruppe</td>
</tr>
+ <tr>
+ <td><code>price_factor</code></td>
+ <td>Der Preisfaktor als Zahl, sofern einer eingestellt ist</td>
+ </tr>
+ <tr>
+ <td><code>price_factor_name</code></td>
+ <td>Der Name des Preisfaktors, sofern einer eingestellt ist</td>
+ </tr>
<tr>
<td><code>projectnumber</code></td>
<td>Projektnummer</td>
</tr>
<tr>
- <td><code>qty</code></td>
+ <td><code>projectdescription</code></td>
+ <td>Projektbeschreibung</td>
+ </tr>
+ <tr>
+ <td><code>qty[_nofmt]</code></td>
<td>Anzahl</td>
</tr>
+ <tr>
+ <td><code>reqdate</code></td>
+ <td>Lieferdatum</td>
+ </tr>
<tr>
<td><code>runningnumber</code></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>
<td><code>serialnumber</code></td>
<td>Seriennummer</td>
</tr>
+ <tr>
+ <td><code>tax_rate</code></td>
+ <td>Steuersatz</td>
+ </tr>
<tr>
<td><code>transdate_oe</code></td>
<td>Auftragsdatum des Originalauftrags, wenn die Rechnung aus einem Sammelauftrag erstellt wurde</td>
<td><code>unit</code></td>
<td>Einheit</td>
</tr>
+ <tr>
+ <td><code>weight</code></td>
+ <td>Gewicht</td>
+ </tr>
+ </table>
+ </p>
+
+ <p>Für jeden Posten gibt es ein Unterarray mit den Informationen über
+ Lieferanten und Lieferantenartikelnummer. Diese müssen mit
+ einer <code>foreach</code>-Schleife ausgegeben werden, da für jeden
+ Artikel mehrere Lieferanteninformationen hinterlegt sein können. Die
+ Variablen dafü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ür die einzelnen Zahlungseingänge:</a></h3>
+ Variablen für die einzelnen Zahlungseingänge:</a></h3>
<p>
<table border="1">
<tr><th>Variablenname</th><th>Bedeutung</th></tr>
<tr>
- <td><code>datepaid</code></td>
+ <td><code>payment</code></td>
+ <td>Betrag</td>
+ </tr>
+ <tr>
+ <td><code>paymentaccount</code></td>
+ <td>Konto</td>
+ </tr>
+ <tr>
+ <td><code>paymentdate</code></td>
<td>Datum</td>
</tr>
<tr>
- <td><code>memo</code></td>
+ <td><code>paymentmemo</code></td>
<td>Memo</td>
</tr>
<tr>
- <td><code>paid</code></td>
- <td>Betrag</td>
+ <td><code>paymentsource</code></td>
+ <td>Beleg</td>
+ </tr>
+ </table>
+ </p>
+
+ <h3><a name="invoice_benutzerdefinierte_variablen_vc">
+ Benutzerdefinierte Kunden- und Lieferantenvariablen:</a></h3>
+
+ <p>
+ Die vom Benutzer definierten Variablen für Kunden und
+ Lieferanten stehen beim Ausdruck von Einkaufs- und Verkaufsbelegen
+ ebenfalls zur Verfügung. Ihre Namen setzen sich aus dem
+ Präfix <code>vc_cvar_</code> und dem vom Benutzer festgelegten
+ Variablennamen zusammen.</p>
+
+ <p>Beispiel: Der Benutzer hat eine Variable
+ namens <code>number_of_employees</code> definiert, die die Anzahl
+ der Mitarbeiter des Unternehmens enthält. Diese Variable steht
+ dann unter dem Namen <code>vc_cvar_number_of_employees</code> zur
+ Verfügung.</p>
+
+ <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
+ zum Inhaltsverzeichnis</a></small><br>
+ <hr>
+
+ <h2><a name="dunning">Variablen in Mahnungen und Rechnungen über Mahngebühren</a></h2>
+
+ <h3><a name="dunning_vorlagennamen">Namen der Vorlagen</a></h3>
+
+ <p>Die Namen der Vorlagen werden im System-Menü vom Benutzer
+ eingegeben. Wird für ein Mahnlevel die Option zur automatischen
+ Erstellung einer Rechnung über die Mahngebühren und Zinsen
+ aktiviert, so wird der Name der Vorlage für diese Rechnung aus
+ dem Vorlagenname für diese Mahnstufe mit dem
+ Zusatz <code>_invoice</code> gebildet. Weiterhin werden die
+ Kürzel für die ausgewählte Sprache und den
+ ausgewählten Drucker angehängt.</p>
+
+ <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
+ 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.
+ </p>
+
+ <p>Weitere Variablen beinhalten:</p>
+
+ <p>
+ <table border="1">
+ <tr><th>Variablenname</th><th>Bedeutung</th></tr>
+ <tr>
+ <td><code>dunning_date</code></td>
+ <td>Datum der Mahnung</td>
</tr>
<tr>
- <td><code>source</code></td>
- <td>Beleg</td>
+ <td><code>dunning_duedate</code></td>
+ <td>Fälligkeitsdatum für diese Mahhnung</td>
</tr>
<tr>
- <td><code>exchangerate</code></td>
- <td>Wechselkurs</td>
+ <td><code>dunning_id</code></td>
+ <td>Mahnungsnummer</td>
</tr>
<tr>
- <td><code>forex</code></td>
- <td>Konto</td>
+ <td><code>fee</code></td>
+ <td>Kummulative Mahngebühren</td>
+ </tr>
+ <tr>
+ <td><code>interest_rate</code></td>
+ <td>Zinssatz per anno in Prozent</td>
+ </tr>
+ <tr>
+ <td><code>total_amount</code></td>
+ <td>Gesamter noch zu zahlender Betrag als <code>fee</code> + <code>total_interest</code> + <code>total_open_amount</code></td>
+ </tr>
+ <tr>
+ <td><code>total_interest</code></td>
+ <td>Zinsen per anno über alle Rechnungen</td>
+ </tr>
+ <tr>
+ <td><code>total_open_amount</code></td>
+ <td>Summe über alle offene Beträge der Rechnungen</td>
+ </tr>
+ </table>
+ </p>
+
+ <h3><a name="dunning_details">
+ Variablen für jede gemahnte Rechnung in einer Mahnung:</a></h3>
+
+ <p>
+ <table border="1">
+ <tr><th>Variablenname</th><th>Bedeutung</th></tr>
+ <tr>
+ <td><code>dn_amount</code></td>
+ <td>Rechnungssumme (brutto)</td>
+ </tr>
+ <tr>
+ <td><code>dn_duedate</code></td>
+ <td>Originales Fälligkeitsdatum der Rechnung</td>
+ </tr>
+ <tr>
+ <td><code>dn_dunning_date</code></td>
+ <td>Datum der Mahnung</td>
+ </tr>
+ <tr>
+ <td><code>dn_dunning_duedate</code></td>
+ <td>Fälligkeitsdatum der Mahnung</td>
+ </tr>
+ <tr>
+ <td><code>dn_fee</code></td>
+ <td>Kummulative Mahngebühr</td>
+ </tr>
+ <tr>
+ <td><code>dn_interest</code></td>
+ <td>Zinsen per anno für diese Rechnung</td>
+ </tr>
+ <tr>
+ <td><code>dn_invnumber</code></td>
+ <td>Rechnungsnummer</td>
+ </tr>
+ <tr>
+ <td><code>dn_linetotal</code></td>
+ <td>Noch zu zahlender Betrag (ergibt sich aus <code>dn_open_amount + dn_fee + dn_interest</code>)</td>
+ </tr>
+ <tr>
+ <td><code>dn_netamount</code></td>
+ <td>Rechnungssumme (netto)</td>
+ </tr>
+ <tr>
+ <td><code>dn_open_amount</code></td>
+ <td>Offener Rechnungsbetrag</td>
+ </tr>
+ <tr>
+ <td><code>dn_ordnumber</code></td>
+ <td>Bestellnummer</td>
+ </tr>
+ <tr>
+ <td><code>dn_transdate</code></td>
+ <td>Rechnungsdatum</td>
+ </tr>
+ <tr>
+ <td><code>dn_curr</code></td>
+ <td>Währung, in der die Rechnung erstellt wurde. (Die Rechnungsbeträge
+ sind aber immer in der Hauptwährung)</td>
+ </tr>
+ </table>
+ </p>
+
+ <h3><a name="dunning_invoice">Variablen in automatisch erzeugten
+ Rechnungen über Mahngebühren</a></h3>
+
+ <p>Die Variablen des Verkäufers stehen wie gewohnt
+ als <code>employee_...</code> zur Verfü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.
+ </p>
+
+ <p>Weitere Variablen beinhalten:</p>
+
+ <p>
+ <table border="1">
+ <tr><th>Variablenname</th><th>Bedeutung</th></tr>
+ <tr>
+ <td><code>duedate</code></td>
+ <td>Fälligkeitsdatum der Rechnung</td>
+ </tr>
+ <tr>
+ <td><code>dunning_id</code></td>
+ <td>Mahnungsnummer</td>
+ </tr>
+ <tr>
+ <td><code>fee</code></td>
+ <td>Mahngebühren</td>
+ </tr>
+ <tr>
+ <td><code>interest</code></td>
+ <td>Zinsen</td>
+ </tr>
+ <tr>
+ <td><code>invamount</code></td>
+ <td>Rechnungssumme (ergibt sich aus <code>fee + interest</code>)</td>
+ </tr>
+ <tr>
+ <td><code>invdate</code></td>
+ <td>Rechnungsdatum</td>
+ </tr>
+ <tr>
+ <td><code>invnumber</code></td>
+ <td>Rechnungsnummer</td>
</tr>
</table>
</p>
Variablen, die vom Geschäftsablauf her in der entsprechenden Vorlage
keine Bedeutung haben oder noch nicht belegt sein können.</p>
- <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
- zum Inhaltsverzeichnis</a></small><br>
- <hr>
+ <p>Im Folgenden werden nur wichtige Unterschiede zu den Variablen in
+ Rechnungen aufgeführt.</p>
- <h2><a name="bloecke">
- Blöcke, bedingte Anweisungen und Schleifen</a></h2>
+ <h3><a name="anderevorlagen_quotations">Angebote und Preisanfragen</a></h3>
- <p>Der Parser kennt neben den Variablen einige weitere Konstrukte, die
- gesondert behandelt werden. Diese sind wie Variablennamen in spezieller
- Weise markiert: <code><%anweisung%></code></p>
+ <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ü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="bloecke_einschr_latex">
- Einschänkungen für Blöcke in LaTeX-Vorlagen</a></h3>
+ <h3><a name="anderevorlagen_orders">Auftragsbestätigungen und Lieferantenaufträge</a></h3>
- <p>Achtung: Blöcke können in LaTeX-Vorlagen momentan nicht
- verschachtelt werden. Das bedeutet, dass innerhalb einer
- <code><%foreach%></code>-Schleife keine
- <code><%if%></code>-Abfragen verwendet werden können. Dieses
- kann man aber mit LaTeX-Bordmitteln selber nachgebildet werden. Dazu muss
- im Vorspann das Paket <code>ifthen</code> eingebunden werden. Das Konstrukt
- selber sieht dann wie folgt aus:</p>
+ <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>
- <p class="blue"><code>\ifthenelse{\equal{<%variable%>}{}}{}{Dieser
- Text erscheint nur, wenn <%variable%> nicht leer ist.}</code></p>
+ <h3><a name="anderevorlagen_delivery_orders">Lieferscheine (Verkauf und Einkauf)</a></h3>
- <h3><a name="bloecke_einschr_opendocument">
- Einschänkungen für Blöcke in OpenDocument-Vorlagen</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ür jede Position eines Lieferscheines gibt es ein Unterarray mit
+ den Informationen darüber, von welchem Lager und Lagerplatz aus die
+ Waren verschickt wurden (Verkaufslieferscheine) bzw. auf welchen
+ Lagerplatz sie eingelagert wurden. Diese müssen mittels
+ einer <code>foreach</code>-Schleife ausgegeben werden. Diese
+ Variablen sind:</p>
+
+
+ <p>Für jede Position eines Lieferscheines gibt es ein Unterarray mit
+ den Informationen darüber, von welchem Lager und Lagerplatz aus die
+ Waren verschickt wurden (Verkaufslieferscheine) bzw. auf welchen
+ Lagerplatz sie eingelagert wurden. Diese müssen mittels
+ einer <code>foreach</code>-Schleife ausgegeben werden. Diese
+ Variablen sind:</p>
- <p>Die eben erwähnten Einschränkungen für
- LaTeX-Vorlagen gelten in abgeschwächter Form auch für
- OpenDocument-Vorlagen. Auch bei OpenDocument-Vorlagen können
- Blöcke nicht verschachtelt werden. Einzige Ausnahme ist, dass
- <code><if></code> und
- <code><ifnot></code>-Blöcke innerhalb von
- <code><foreach></code>-Blöcken auftreten
- dürfen.</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>
+
+ <h3><a name="anderevorlagen_statement">Sammelrechnung</a></h3>
+
+ <h3> Variablen fü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älligkeit < 30 Tage</td>
+ </tr>
+ <tr>
+ <td><code>c30total</code></td>
+ <td>Gesamtbetrag aller Rechnungen mit Fälligkeit >= 30 und < 60 Tage</td>
+ </tr>
+ <tr>
+ <td><code>c60total</code></td>
+ <td>Gesamtbetrag aller Rechnungen mit Fälligkeit >= 60 und < 90 Tage</td>
+ </tr>
+ <tr>
+ <td><code>c90total</code></td>
+ <td>Gesamtbetrag aller Rechnungen mit Fälligkeit >= 90 Tage</td>
+ </tr>
+ <tr>
+ <td><code>total</code></td>
+ <td>Gesamtbetrag aller Rechnungen</td>
+ </tr>
+ </table>
+ </p>
- <h3><a name="bloecke_include">Die <code>include</code>-Anweisung</a></h3>
+ <h3> Variablen fü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ä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älligkeit < 30 Tage</td>
+ </tr>
+ <tr>
+ <td><code>c30</code></td>
+ <td>Noch offener Rechnungsbetrag mit Fälligkeit >= 30 und < 60 Tage</td>
+ </tr>
+ <tr>
+ <td><code>c60</code></td>
+ <td>Noch offener Rechnungsbetrag mit Fälligkeit >= 60 und < 90 Tage</td>
+ </tr>
+ <tr>
+ <td><code>c90</code></td>
+ <td>Noch offener Rechnungsbetrag mit Fälligkeit >= 90 Tage</td>
+ </tr>
+ </table>
+ </p>
- <p class="blue"><code><%include dateiname.ext%></code></p>
- <p>Dieser Block funktioniert nur in LaTeX- und HTML-Vorlagen.</p>
- <p>Fügt den Inhalt einer Datei an der entsprechenden Stelle ein. Der
- eingefügte Text wird ganz normal durch den Parser behandelt und kann
- Variablen und Blöcke enthalten.</p>
- <h3><a name="bloecke_ifnot">Der <code>if not</code>-Block</a></h3>
+ <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
+ zum Inhaltsverzeichnis</a></small><br>
+ <hr>
- <p class="blue"><code><%if not variablenname%><br>
- ...<br>
- <%end if></code></p>
+ <h2><a name="bloecke">
+ Blöcke, bedingte Anweisungen und Schleifen</a></h2>
- <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><%anweisung%>
+ ... <%end%></code></p>
+
+ <p>Anmerkung zum <code><%end%></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"><%if type ==
+ "sales_quotation"%></code>, so könnte er mit
+ <code class="blue"><%end%></code> genauso abgeschlossen werden
+ wie mit
+ <code class="blue"><%end if%></code> oder auch
+ <code class="blue"><%end type ==
+ "sales_quotation"%></code>.</p>
<h3><a name="bloecke_if">Der <code>if</code>-Block</a></h3>
<p class="blue"><code><%if variablenname%><br>
...<br>
- <%end if></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>
+ <%end%></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>
+
+ <p>Die Bedingung kann auch negiert werden, indem das Wort
+ "not" nach dem "if" verwendet
+ wird. Beispiel: <code class="blue"><%if not
+ cp_greeting%></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"><%if var1 == "Wert"%></code>
+ testet die Variable "var1" auf Übereinstimmung mit der
+ Zeichenkette "Wert". Mittels "!=" anstelle von
+ "==" würde auf Ungleichheit getestet.</p>
+
+ <p><code class="blue"><%if var1 == var2%></code> testet die
+ Variable "var1" auf Übereinstimmung mit der Variablen
+ "var2". Mittels "!=" anstelle von "=="
+ 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 "=~" und "!~"
+ als Vergleichsoperatoren.</p>
+
+ <p>Beispiel für einen Test, ob die Variable "intnotes"
+ (interne Bemerkungen) das Wort "schwierig" enthält:
+ <code class="blue"><%if intnotes =~
+ "schwierig"%></code></p>
<h3><a name="bloecke_foreach">Die <code>foreach</code>-Schleife</a></h3>
<p class="blue"><code><%foreach variablenname%><br>
...<br>
- <%end foreach></code></p>
+ <%end%></code></p>
<p>Fügt die Zeilen zwischen den beiden Anweisungen so oft ein, wie das
Perl-Array der Variablen "variablenname" Elemente enthät. Dieses
Artikelnummer: <%number%><br>
Beschreibung: <%description%><br>
...<br>
- <%end foreach></code></p>
+ <%end%></code></p>
<p>Besonderheit in OpenDocument-Vorlagen: Tritt ein
- <code><foreach></code>-Blcok innerhalb einer Tabellenzelle
+ <code><%foreach%></code>-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 <code><foreach></code> und <code><end
- foreach></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><%pagebreak ZpZ ZeS ZzS%><br>
- ...<br>
- <%end pagebreak%></code></p>
-
- <p>Dieser Block existiert nur in LaTeX-Vorlagen.</p>
-
- <p>Dieser Block legt das Verhalten beim manuellen Einfügen eines
- Seitenumbruchs fest. Normalerweise bricht LaTeX die Seiten selber um. Beim
- Rechnungsdruck ist das oft nicht gewünscht, oder man möchte im
- Falle eines Seitenumbruchs den Übertrag etc. mit ausgeben. Deswegen
- versucht der Parser, manuell Seitenumbrüche einzufügen,
- während er einen <code>foreach</code>-Block auswertet, weil hier die
- manuellen Seitenumbrüche erforderlich werden. Dafür benö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üssen.</p>
-
- <p>Üblicherweise wird in diesem Block zuerst die aktuelle Tabelle
- geschlossen, eventuell Text eingefügt (z.B. "Fortsetzung auf der
- nächsten Seite"), dann ein Seitenumbruch erzwungen, eventuell Text
- eingefügt (z.B. "Übertrag von der vorherigen Seite:
- <%sumcarriedforward%> EUR") und die Tabelle wieder geöffnet.</p>
-
- <p>Wird kein manueller Seitenumbruch gewüscht, so kann dieser Block
- komplett entfallen.</p>
+ zwischen <code><%foreach%></code> und <code><%end%></code>
+ wiederholt, nicht aber die komplette Zeile, in der er steht.</p>
<small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
zum Inhaltsverzeichnis</a></small><br>
<td><code><pagebreak></code></td>
<td>Erzwingt einen Seitenumbruch (siehe unten).</td>
</tr>
+ <tr>
+ <td><code><bullet></code></td>
+ <td>Erzeugt einen ausgefüllten Kreis für Aufzählungen (•) (siehe unten).</td>
+ </tr>
</table>
</p>
<p>Eine Besonderheit ist der Befehl <code><pagebreak></code>,
der nur in LaTeX-Vorlagen funktioniert und in anderen Vorlagen
- einfach gelöscht wird. Dieser erzwingt unabhä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
- <code><foreach...></code>-Schleifen. Weiterhin benötigt er kein
- Endtag.</p>
+ einfach gelöscht wird. Dieser erzwingt einen Seitenumbruch nach
+ der aktuellen Rechnungsposition. Dementsprechend funktioniert er nur
+ innerhalb von
+ <code><%foreach...%></code>-Schleifen. Weiterhin benötigt
+ er kein Endtag.</p>
+
+ <p>Auch <code><bullet></code> funktioniert momentan auch nur in Latex-Vorlagen.</p>
<small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
zum Inhaltsverzeichnis</a></small><br>