Projekt

Allgemein

Profil

Herunterladen (82,9 KB) Statistiken
| Zweig: | Markierung: | Revision:
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>3.3. Dokumentenvorlagen und verfügbare Variablen</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch03.html" title="Kapitel 3. Features und Funktionen"><link rel="prev" href="ch03s02.html" title="3.2. Bankerweiterung"><link rel="next" href="ch03s04.html" title="3.4. Excel-Vorlagen"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">3.3. Dokumentenvorlagen und verfügbare Variablen</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s02.html">Zurück</a>&nbsp;</td><th width="60%" align="center">Kapitel 3. Features und Funktionen</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch03s04.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="3.3. Dokumentenvorlagen und verfügbare Variablen"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="dokumentenvorlagen-und-variablen"></a>3.3. Dokumentenvorlagen und verfügbare Variablen</h2></div></div></div><div class="sect2" title="3.3.1. Einführung"><div class="titlepage"><div><div><h3 class="title"><a name="dokumentenvorlagen-und-variablen.einf%C3%BChrung"></a>3.3.1. Einführung</h3></div></div></div><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 class="function">&lt;%variablenname%&gt;</code> verwendet wird. Für
LaTeX- und HTML-Vorlagen kann man die Form dieser Tags auch verändern
(siehe <a class="xref" href="ch03s03.html#dokumentenvorlagen-und-variablen.tag-style" title="3.3.4. Anfang und Ende der Tags verändern">Anfang und Ende der Tags verändern</a>).</p><p>kivitendo unterstützt LaTeX-, HTML- und OpenDocument-Vorlagen.
Sofern es nicht ausdrücklich eingeschränkt wird, gilt das im Folgenden
gesagte für alle Vorlagenarten.</p><p>Insgesamt sind technisch gesehen eine ganze Menge mehr Variablen
verfügbar als hier aufgelistet werden. Die meisten davon können
allerdings innerhalb einer solchen Vorlage nicht sinnvoll verwendet
werden. Wenn eine Auflistung dieser Variablen gewollt ist, so kann
diese wie folgt erhalten werden:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
<code class="filename">SL/Form.pm</code> öffnen und am Anfang die
Zeile "<span class="command"><strong>use Data::Dumper;</strong></span>" einfügen.</p></li><li class="listitem"><p>In <code class="filename">Form.pm</code> die Funktion
<code class="function">parse_template</code> suchen und hier die Zeile
<span class="command"><strong>print(STDERR Dumper($self));</strong></span> einfügen.</p></li><li class="listitem"><p>Einmal per Browser die gewünschte Vorlage "benutzen", z.B.
ein PDF für eine Rechnung erzeugen.</p></li><li class="listitem"><p>Im <code class="filename">error.log</code> Apache steht die Ausgabe
der Variablen <code class="varname">$self</code> in der Form <code class="varname">'key'
=&gt; 'value',</code>. Alle <code class="varname">key</code>s sind
verfügbar.</p></li></ul></div></div><div class="sect2" title="3.3.2. Variablen ausgeben"><div class="titlepage"><div><div><h3 class="title"><a name="dokumentenvorlagen-und-variablen.variablen-ausgeben"></a>3.3.2. Variablen ausgeben</h3></div></div></div><p>Um eine Variable auszugeben, müssen sie einfach nur zwischen die
Tags geschrieben werden, also z.B.
<code class="varname">&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 class="varname">&lt;%variablenname FLAG1 FLAG2%&gt;</code>. Momentan
werden die folgenden Flags unterstützt:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
<code class="option">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.</p></li><li class="listitem"><p>
<code class="option">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.</p></li></ul></div><p>Beispiel:</p><pre class="programlisting">&lt;%quototal NOFORMAT%&gt;</pre></div><div class="sect2" title="3.3.3. Verwendung in Druckbefehlen"><div class="titlepage"><div><div><h3 class="title"><a name="dokumentenvorlagen-und-variablen.verwendung-in-druckbefehlen"></a>3.3.3. Verwendung in Druckbefehlen</h3></div></div></div><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 class="function">`...`</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><pre class="programlisting">send_fax --number &lt;%if cp_phone2%&gt;&lt;%cp_phone2%&gt;&lt;%else%&gt;&lt;%cp_phone1%&gt;&lt;%end%&gt;</pre></div><div class="sect2" title="3.3.4. Anfang und Ende der Tags verändern"><div class="titlepage"><div><div><h3 class="title"><a name="dokumentenvorlagen-und-variablen.tag-style"></a>3.3.4. Anfang und Ende der Tags verändern</h3></div></div></div><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 class="function">&lt;%customer%&gt;</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 class="function">config:</code> enthalten, die entsprechende Option
setzen und bei HTML-Dokumentenvorlagen mit dem Kommentarendzeichen
enden. Beispiel für LaTeX:</p><pre class="programlisting">% config: tag-style=($ $)</pre><p>Dies würde kivitendo dazu veranlassen, Variablen zu ersetzen,
wenn sie wie folgt aussehen: <code class="function">($customer$)</code>. Das
äquivalente Beispiel für HTML-Dokumentenvorlagen sieht so aus:</p><pre class="programlisting">&lt;!-- config: tag-style=($ $) --&gt;</pre></div><div class="sect2" title="3.3.5. Zuordnung von den Dateinamen zu den Funktionen"><div class="titlepage"><div><div><h3 class="title"><a name="dokumentenvorlagen-und-variablen.zuordnung-dateinamen"></a>3.3.5. Zuordnung von den Dateinamen zu den Funktionen</h3></div></div></div><p>Diese folgende kurze Auflistung zeigt, welche Vorlage bei
welcher Funktion ausgelesen wird. Dabei ist die Dateiendung
"<code class="filename">.ext</code>" geeignet zu ersetzen:
"<code class="filename">.tex</code>" für LaTeX-Vorlagen und
"<code class="filename">.odt</code>" für OpenDocument-Vorlagen.</p><div class="variablelist"><dl><dt><span class="term">
<code class="filename">bin_list.ext</code>
</span></dt><dd><p>Lagerliste</p></dd><dt><span class="term">
<code class="filename">check.ext</code>
</span></dt><dd><p>?</p></dd><dt><span class="term">
<code class="filename">invoice.ext</code>
</span></dt><dd><p>Rechnung</p></dd><dt><span class="term">
<code class="filename">packing_list.ext</code>
</span></dt><dd><p>Packliste</p></dd><dt><span class="term">
<code class="filename">pick_list.ext</code>
</span></dt><dd><p>Sammelliste</p></dd><dt><span class="term">
<code class="filename">purchase_delivery_order.ext</code>
</span></dt><dd><p>Lieferschein (Einkauf)</p></dd><dt><span class="term">
<code class="filename">purcharse_order.ext</code>
</span></dt><dd><p>Bestellung an Lieferanten</p></dd><dt><span class="term">
<code class="filename">request_quotation.ext</code>
</span></dt><dd><p>Anfrage an Lieferanten</p></dd><dt><span class="term">
<code class="filename">sales_delivery_order.ext</code>
</span></dt><dd><p>Lieferschein (Verkauf)</p></dd><dt><span class="term">
<code class="filename">sales_order.ext</code>
</span></dt><dd><p>Bestellung</p></dd><dt><span class="term">
<code class="filename">sales_quotation.ext</code>
</span></dt><dd><p>Angebot an Kunden</p></dd><dt><span class="term">
<code class="filename">zahlungserinnerung.ext</code>
</span></dt><dd><p>Mahnung (Dateiname im Programm konfigurierbar)</p></dd><dt><span class="term">
<code class="filename">zahlungserinnerung_invoice.ext</code>
</span></dt><dd><p>Rechnung über Mahngebühren (Dateiname im Programm
konfigurierbar)</p></dd></dl></div></div><div class="sect2" title="3.3.6. Sprache, Drucker und E-Mail"><div class="titlepage"><div><div><h3 class="title"><a name="dokumentenvorlagen-und-variablen.dateinamen-erweitert"></a>3.3.6. Sprache, Drucker und E-Mail</h3></div></div></div><p>Angeforderte Sprache und Druckerkürzel in den Dateinamen mit
eingearbeitet. So wird aus der Vorlage
<code class="filename">sales_order.ext</code> bei Sprache
<code class="function">de</code> und Druckerkürzel <code class="function">lpr2</code>
der Vorlagenname <code class="filename">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 class="filename">_email</code>, der
vollständige Vorlagenname wäre dann
<code class="filename">sales_order_email_de_lpr2.ext</code>. In allen Fällen
kann eine Standarddatei <code class="filename">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><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
<code class="filename">sales_order_email_de_lpr2.tex</code>
</p></li><li class="listitem"><p>
<code class="filename">sales_order_de_lpr2.tex</code>
</p></li><li class="listitem"><p>
<code class="filename">sales_order.tex</code>
</p></li><li class="listitem"><p>
<code class="filename">default.tex</code>
</p></li></ol></div><p>Die kurzen Varianten dieser Vorlagentitel müssen dann entweder
Standardwerte anzeigen, oder die angeforderten Werte selbst auswerten,
siehe dazu <a class="xref" href="ch03s03.html#dokumentenvorlagen-und-variablen.allgemeine-variablen.meta" title="3.3.7.1. Metainformationen zur angeforderten Vorlage">Metainformationen zur angeforderten Vorlage</a>.</p></div><div class="sect2" title="3.3.7. Allgemeine Variablen, die in allen Vorlagen vorhanden sind"><div class="titlepage"><div><div><h3 class="title"><a name="dokumentenvorlagen-und-variablen.allgemeine-variablen"></a>3.3.7. Allgemeine Variablen, die in allen Vorlagen vorhanden
sind</h3></div></div></div><div class="sect3" title="3.3.7.1. Metainformationen zur angeforderten Vorlage"><div class="titlepage"><div><div><h4 class="title"><a name="dokumentenvorlagen-und-variablen.allgemeine-variablen.meta"></a>3.3.7.1. Metainformationen zur angeforderten Vorlage</h4></div></div></div><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><div class="variablelist"><dl><dt><span class="term">
<code class="varname">template_meta.formname</code>
</span></dt><dd><p>Basisname der Vorlage. Identisch mit der <a class="link" href="ch03s03.html#dokumentenvorlagen-und-variablen.zuordnung-dateinamen" title="3.3.5. Zuordnung von den Dateinamen zu den Funktionen">Zurordnung
zu den Dateinamen</a> ohne die Erweiterung. Ein
Verkaufsauftrag enthält hier
<code class="constant">sales_order</code>.</p></dd><dt><span class="term">
<code class="varname">template_meta.language.description</code>
</span></dt><dd><p>Beschreibung der verwendeten Sprache</p></dd><dt><span class="term">
<code class="varname">template_meta.language.template_code</code>
</span></dt><dd><p>Vorlagenkürzel der verwendeten Sprache, identisch mit
dem Kürzel das im Dateinamen verwendetet wird.</p></dd><dt><span class="term">
<code class="varname">template_meta.language.output_numberformat</code>
</span></dt><dd><p>Zahlenformat der verwendeten Sprache in der Form
"<code class="constant">1.000,00</code>". Experimentell! Nur
interessant für Vorlagen die mit unformatierten Werten
arbeiten.</p></dd><dt><span class="term">
<code class="varname">template_meta.language.output_dateformat</code>
</span></dt><dd><p>Datumsformat der verwendeten Sprache in der Form
"<code class="constant">dd.mm.yyyy</code>". Experimentell! Nur
interessant für Vorlagen die mit unformatierten Werten
arbeiten.</p></dd><dt><span class="term">
<code class="varname">template_meta.format</code>
</span></dt><dd><p>Das angeforderte Format. Kann im Moment die Werte
<code class="constant">pdf</code>, <code class="constant">postscript</code>,
<code class="constant">html</code>, <code class="constant">opendocument</code>,
<code class="constant">opendocument_pdf</code> und
<code class="constant">excel</code> enthalten.</p></dd><dt><span class="term">
<code class="varname">template_meta.extension</code>
</span></dt><dd><p>Dateierweiterung, wie im Dateinamen. Wird aus
<code class="constant">format</code> entschieden.</p></dd><dt><span class="term">
<code class="varname">template_meta.media</code>
</span></dt><dd><p>Ausgabemedium. Kann zur Zeit die Werte
<code class="constant">screen</code> für Bildschirm,
<code class="constant">email</code> für E-Mail (triggert das
<code class="constant">_email</code> Kürzel im Dateinamen),
<code class="constant">printer</code> für Drucker, und
<code class="constant">queue</code> für Warteschlange enthalten.</p></dd><dt><span class="term">
<code class="varname">template_meta.printer.description</code>
</span></dt><dd><p>Beschreibung des ausgewählten Druckers</p></dd><dt><span class="term">
<code class="varname">template_meta.printer.template_code</code>
</span></dt><dd><p>Vorlagenürzel des ausgewählten Druckers, identisch mit
dem Kürzel das im Dateinamen verwendetet wird.</p></dd><dt><span class="term">
<code class="varname">template_meta.tmpfile</code>
</span></dt><dd><p>Datei-Prefix für temporäre Dateien.</p></dd></dl></div></div><div class="sect3" title="3.3.7.2. Stammdaten von Kunden und Lieferanten"><div class="titlepage"><div><div><h4 class="title"><a name="dokumentenvorlagen-und-variablen.allgemeine-variablen.kunden-lieferanten"></a>3.3.7.2. Stammdaten von Kunden und Lieferanten</h4></div></div></div><div class="variablelist"><dl><dt><span class="term">
<code class="varname">account_number</code>
</span></dt><dd><p>Kontonummer</p></dd><dt><span class="term">
<code class="varname">bank</code>
</span></dt><dd><p>Name der Bank</p></dd><dt><span class="term">
<code class="varname">bank_code</code>
</span></dt><dd><p>Bankleitzahl</p></dd><dt><span class="term">
<code class="varname">bic</code>
</span></dt><dd><p>Bank-Identifikations-Code (Bank Identifier Code,
BIC)</p></dd><dt><span class="term">
<code class="varname">business</code>
</span></dt><dd><p>Kunden-/Lieferantentyp</p></dd><dt><span class="term">
<code class="varname">city</code>
</span></dt><dd><p>Stadt</p></dd><dt><span class="term">
<code class="varname">contact</code>
</span></dt><dd><p>Kontakt</p></dd><dt><span class="term">
<code class="varname">country</code>
</span></dt><dd><p>Land</p></dd><dt><span class="term">
<code class="varname">c_vendor_id</code>
</span></dt><dd><p>Lieferantennummer beim Kunden (nur Kunden)</p></dd><dt><span class="term">
<code class="varname">v_customer_id</code>
</span></dt><dd><p>Kundennummer beim Lieferanten (nur Lieferanten)</p></dd><dt><span class="term">
<code class="varname">cp_email</code>
</span></dt><dd><p>Email des Ansprechpartners</p></dd><dt><span class="term">
<code class="varname">cp_givenname</code>
</span></dt><dd><p>Vorname des Ansprechpartners</p></dd><dt><span class="term">
<code class="varname">cp_greeting</code>
</span></dt><dd><p>Anrede des Ansprechpartners</p></dd><dt><span class="term">
<code class="varname">cp_name</code>
</span></dt><dd><p>Name des Ansprechpartners</p></dd><dt><span class="term">
<code class="varname">cp_phone1</code>
</span></dt><dd><p>Telefonnummer 1 des Ansprechpartners</p></dd><dt><span class="term">
<code class="varname">cp_phone2</code>
</span></dt><dd><p>Telefonnummer 2 des Ansprechpartners</p></dd><dt><span class="term">
<code class="varname">cp_title</code>
</span></dt><dd><p>Titel des Ansprechpartners</p></dd><dt><span class="term">
<code class="varname">creditlimit</code>
</span></dt><dd><p>Kreditlimit</p></dd><dt><span class="term">
<code class="varname">customeremail</code>
</span></dt><dd><p>Email des Kunden; nur für Kunden</p></dd><dt><span class="term">
<code class="varname">customerfax</code>
</span></dt><dd><p>Faxnummer des Kunden; nur für Kunden</p></dd><dt><span class="term">
<code class="varname">customernotes</code>
</span></dt><dd><p>Bemerkungen beim Kunden; nur für Kunden</p></dd><dt><span class="term">
<code class="varname">customernumber</code>
</span></dt><dd><p>Kundennummer; nur für Kunden</p></dd><dt><span class="term">
<code class="varname">customerphone</code>
</span></dt><dd><p>Telefonnummer des Kunden; nur für Kunden</p></dd><dt><span class="term">
<code class="varname">discount</code>
</span></dt><dd><p>Rabatt</p></dd><dt><span class="term">
<code class="varname">email</code>
</span></dt><dd><p>Emailadresse</p></dd><dt><span class="term">
<code class="varname">fax</code>
</span></dt><dd><p>Faxnummer</p></dd><dt><span class="term">
<code class="varname">gln</code>
</span></dt><dd><p>GLN (Globale Lokationsnummer)</p></dd><dt><span class="term">
<code class="varname">greeting</code>
</span></dt><dd><p>Anrede</p></dd><dt><span class="term">
<code class="varname">homepage</code>
</span></dt><dd><p>Homepage</p></dd><dt><span class="term">
<code class="varname">iban</code>
</span></dt><dd><p>Internationale Kontonummer (International Bank Account
Number, IBAN)</p></dd><dt><span class="term">
<code class="varname">language</code>
</span></dt><dd><p>Sprache</p></dd><dt><span class="term">
<code class="varname">name</code>
</span></dt><dd><p>Firmenname</p></dd><dt><span class="term">
<code class="varname">natural_person</code>
</span></dt><dd><p>Flag "natürliche Person"; Siehe auch
<a class="xref" href="ch03s03.html#dokumentenvorlagen-und-variablen.anrede" title="3.3.13. Hinweise zur Anrede">Hinweise zur Anrede</a>
</p></dd><dt><span class="term">
<code class="varname">payment_description</code>
</span></dt><dd><p>Name der Zahlart</p></dd><dt><span class="term">
<code class="varname">payment_terms</code>
</span></dt><dd><p>Zahlungskonditionen</p></dd><dt><span class="term">
<code class="varname">phone</code>
</span></dt><dd><p>Telefonnummer</p></dd><dt><span class="term">
<code class="varname">shiptocity</code>
</span></dt><dd><p>Stadt (Lieferadresse) <a class="link" href="ch03s03.html#dokumentenvorlagen-und-variablen.anmerkung-shipto" title="Anmerkung">*</a>
</p></dd><dt><span class="term">
"ch03s03.html#L267" data-txt="267">
<code class="varname">shiptozipcode</code>
</span></dt><dd><p>Postleitzahl (Lieferadresse) <a class="link" href="ch03s03.html#dokumentenvorlagen-und-variablen.anmerkung-shipto" title="Anmerkung">*</a>
</p></dd><dt><span class="term">
<code class="varname">street</code>
</span></dt><dd><p>Straße und Hausnummer</p></dd><dt><span class="term">
<code class="varname">taxnumber</code>
</span></dt><dd><p>Steuernummer</p></dd><dt><span class="term">
<code class="varname">ustid</code>
</span></dt><dd><p>Umsatzsteuer-Identifikationsnummer</p></dd><dt><span class="term">
<code class="varname">vendoremail</code>
</span&