X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=inline;f=doc%2Fdokumentenvorlagen-und-variablen.html;h=1e0503292a08a3a70cffe181aa4563cc0072a87a;hb=e36cc2a647f25b9b8f1b9b8965f9fdef09a5cd8b;hp=d29b73714541e9a0184a27be707068343792d712;hpb=f84763177341da274dd63d6fe8c2f2bf52532c02;p=kivitendo-erp.git diff --git a/doc/dokumentenvorlagen-und-variablen.html b/doc/dokumentenvorlagen-und-variablen.html index d29b73714..1e0503292 100644 --- a/doc/dokumentenvorlagen-und-variablen.html +++ b/doc/dokumentenvorlagen-und-variablen.html @@ -48,6 +48,9 @@ td {
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. +
+Früher wurde hier nur über LaTeX gesprochen. Inzwischen
unterstützt Lx-Office aber auch OpenDocument-Vorlagen. Sofern
es nicht ausdrücklich eingeschränkt wird, gilt das im
@@ -185,6 +192,43 @@ td {
zum Inhaltsverzeichnis
Um eine Variable auszugeben, müssen sie einfach nur zwischen die
+ Tags geschrieben werden, also
+ z.B. <%variablenname%>
.
+ Optional kann man auch mit Leerzeichen getrennte Flags angeben, die
+ man aber nur selten brauchen wird. Die Syntax sieht also so
+ aus: <%variablenname FLAG1 FLAG2%>
. Momentan werden
+ die folgenden Flags unterstützt:
+
NOFORMAT
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.
+ NOESCAPE
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.
+
+ Beispiel: <%quototal NOFORMAT%>
+
<!-- config: tag-stye=($ $)>
<!-- config: tag-style=($ $) -->
packing_list.ext
pick_list.ext
Angeforderte Sprache und Druckerkürzel in den Dateinamen mit eingearbeitet. So wird aus der Vorlage sales_order.ext
bei Sprache de
und Druckerkürzel lpr2
der Vorlagenname sales_order_de_lpr2.ext
. Zusätzlich können für E-Mails andere Vorlagen erstellt werden, diese bekommen dann noch das Kürzel _email
, der vollständige Vorlagenname wäre dann sales_order_email_de_lpr2.ext
. In allen Fällen kann eine Standarddatei default.ext
hinterlegt werden. Diese wird verwendet, wenn keine der anderen Varianten gefunden wird.
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:
++
Reihenfolge der möglichen Vorlagennamen |
---|
sales_order_email_de_lpr2.tex |
sales_order_de_lpr2.tex |
sales_order.tex |
default.tex |
Die kurzen Varianten dieser Vorlagentitel müssen dann entweder Standardwerte anzeigen, oder die angeforderten Werte selbst auswerten, siehe dazu Metadaten in Vorlagen
+ zum InhaltsverzeichnisDiese 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.
+ ++
Variablenname | Bedeutung |
---|---|
template_meta.formname |
+ Basisname der Vorlage. Identisch mit der Zurordnung zu den Dateinamen ohne die Erweiterung. Ein Verkaufsauftrag enthält hier sales_order . |
+
template_meta.language.description |
+ Beschreibung der verwendeten Sprache | +
template_meta.language.template_code |
+ Vorlagenürzel der verwendeten Sprache, identisch mit dem Kürzel das im Dateinamen verwendetet wird. | +
template_meta.language.output_numberformat |
+ Zahlenformat der verwendeten Sprache in der Form "1.000,00". Experimentell!. Nur interessant für Vorlagen die mit unformatierten Werten arbeiten. | +
template_meta.language.output_dateformat |
+ Datumsformat der verwendeten Sprache in der Form "dd.mm.yyyy". Experimentell!. Nur interessant für Vorlagen die mit unformatierten Werten arbeiten. | +
template_meta.format |
+ Das angeforderte Format. Kann im Moment die Werte pdf , postscript , html , opendocument , opendocument_pdf und excel enthalten. |
+
template_meta.extension |
+ Dateierweiterung, wie im Dateinamen. Wird aus format entschieden. |
+
template_meta.media |
+ Ausgabemedium. Kann zur Zeit die Werte screen für Bildschirm, email für E-Mmail (triggert das _email Kürzel im Dateinamen), printer für Drucker, und queue für Warteschlange enthalten. |
+
template_meta.printer.description |
+ Beschreibung des ausgewählten Druckers | +
template_meta.printer.template_code |
+ Vorlagenürzel des ausgewählten Druckers, identisch mit dem Kürzel das im Dateinamen verwendetet wird. | +
bic
business
homepage
iban
language
name
payment_description
payment_terms
taxnumber
ustid
vendoremail
globalprojectnumber |
Projektnummer des ganzen Beleges | +||||||||
globalprojectdescription |
+ Projekbeschreibung des ganzen Beleges | +||||||||
intnotes |
Interne Bemerkungen | @@ -705,6 +834,10 @@ td {ordnumber |
Auftragsnummer, wenn die Rechnung aus einem Auftrag erstellt wurde | ||||||
payment_description |
+ Name der Zahlart | +||||||||
payment_terms |
Zahlungskonditionen | @@ -726,15 +859,9 @@ td {Transportmittel | |||||||
subtotal |
+ subtotal[_nofmt] |
Zwischensumme aller Posten ohne Steuern | |||||||
sumcarriedforward |
- Zwischensumme aller bisher ausgegebenen Posten. Sollte nur in einem
-
- pagebreak -Block verwendet werden. |
- ||||||||
total |
Restsumme der Rechnung (Summe abzüglich bereits bezahlter Posten) | @@ -765,11 +892,11 @@ td {Artikelbeschreibung | |||||||
discount |
+ discount[_nofmt] |
Rabatt als Betrag | |||||||
discount_sub |
+ discount_sub[_nofmt] |
Zwischensumme mit Rabatt | |||||||
Grafik | |||||||||
linetotal |
+ linetotal[_nofmt] |
Zeilensumme (Anzahl * Einzelpreis) | |||||||
Mikrofilm | |||||||||
netprice |
+ netprice[_nofmt] |
Nettopreis | |||||||
nodiscount_linetotal |
+ nodiscount_linetotal[_nofmt] |
Zeilensumme ohne Rabatt | |||||||
nodiscount_sub |
+ nodiscount_sub[_nofmt] |
Zwischensumme ohne Rabatt | |||||||
Projektnummer | |||||||||
qty |
+ projectdescription |
+ Projektbeschreibung | +|||||||
qty[_nofmt] |
Anzahl | ||||||||
Position auf der Rechnung (1, 2, 3...) | |||||||||
sellprice |
+ sellprice[_nofmt] |
Verkaufspreis | |||||||
serialnumber |
Seriennummer | ||||||||
tax_rate |
+ Steuersatz | +||||||||
transdate_oe |
Auftragsdatum des Originalauftrags, wenn die Rechnung aus einem Sammelauftrag erstellt wurde | @@ -980,6 +1115,10 @@ td {dunning_duedate |
Fälligkeitsdatum für diese Mahhnung | ||||||
dunning_id |
+ Mahnungsnummer | +||||||||
fee |
Kummulative Mahngebühren | @@ -1174,6 +1313,10 @@ td {
Variablenname | Bedeutung |
---|---|
cusordnumber |
+ Bestellnummer des Kunden (im Verkauf) bzw. Bestellnummer des Lieferanten (im Einkauf) | +
donumber |
Lieferscheinnummer | @@ -1185,6 +1328,14 @@ td {
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 foreach
-Schleife ausgegeben werden. Diese
+ Variablen sind:
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 @@ -1203,6 +1354,10 @@ td {
si_chargenumber
si_bestbefore
si_number
+
Variablenname | Bedeutung |
---|---|
c0total |
+ Gesamtbetrag aller Rechnungen mit Fälligkeit < 30 Tage | +
c30total |
+ Gesamtbetrag aller Rechnungen mit Fälligkeit >= 30 und < 60 Tage | +
c60total |
+ Gesamtbetrag aller Rechnungen mit Fälligkeit >= 60 und < 90 Tage | +
c90total |
+ Gesamtbetrag aller Rechnungen mit Fälligkeit >= 90 Tage | +
total |
+ Gesamtbetrag aller Rechnungen | +
+
Variablenname | Bedeutung |
---|---|
invnumber |
+ Rechnungsnummer | +
invdate |
+ Rechnungsdatum | +
duedate |
+ Fälligkeitsdatum | +
amount |
+ Summe der Rechnung | +
open |
+ Noch offener Betrag der Rechnung | +
c0 |
+ Noch offener Rechnungsbetrag mit Fälligkeit < 30 Tage | +
c30 |
+ Noch offener Rechnungsbetrag mit Fälligkeit >= 30 und < 60 Tage | +
c60 |
+ Noch offener Rechnungsbetrag mit Fälligkeit >= 60 und < 90 Tage | +
c90 |
+ Noch offener Rechnungsbetrag mit Fälligkeit >= 90 Tage | +
Der Parser kennt neben den Variablen einige weitere Konstrukte, die
- gesondert behandelt werden. Diese sind wie Variablennamen in spezieller
- Weise markiert: <%anweisung%>
if not
-Block<%if not variablenname%>
- ...
- <%end>
Eine normale "if-not-then"-Bedingung. Die Zeilen zwischen dem "if not" und - dem "end" werden nur ausgegeben, wenn die Variable "variablenname" nicht - gesetzt oder gleich 0 ist.
+Der Parser kennt neben den Variablen einige weitere Konstrukte,
+ die gesondert behandelt werden. Diese sind wie Variablennamen in
+ spezieller Weise markiert: <%anweisung%>
+ ... <%end%>
Anmerkung zum <%end%>
: Der besseren
+ Verständlichkeit halber kann man nach dem end
noch
+ beliebig weitere Wörter schreiben, um so zu markieren, welche
+ Anweisung (z.B. if
oder foreach
) damit
+ abgeschlossen wird.
Beispiel: Lautet der Beginn eines Blockes
+ z.B. <%if type ==
+ "sales_quotation"%>
, so könnte er mit
+ <%end%>
genauso abgeschlossen werden
+ wie mit
+ <%end if%>
oder auch
+ <%end type ==
+ "sales_quotation"%>
.
if
-Block<%if variablenname%>
...
- <%end>
Eine normale "if-then"-Bedingung. Die Zeilen zwischen dem "if" und dem - "end" werden nur ausgegeben, wenn die Variable "variablenname" gesetzt und - ungleich 0 ist.
+ <%end%> + +Eine normale "if-then"-Bedingung. Die Zeilen zwischen + dem "if" und dem "end" werden nur ausgegeben, + wenn die Variable "variablenname" gesetzt und ungleich 0 + ist.
+ +Die Bedingung kann auch negiert werden, indem das Wort
+ "not" nach dem "if" verwendet
+ wird. Beispiel: <%if not
+ cp_greeting%>
Zusätzlich zu dem einfachen Test, ob eine Variable gesetzt ist + oder nicht, bietet dieser Block auch die Möglichkeit, den Inhalt + einer Variablen mit einer festen Zeichenkette oder einer anderen + Variablen zu vergleichen. Ob der Vergleich mit einer Zeichenkette + oder einer anderen Variablen vorgenommen wird, hängt davon ab, ob + die rechte Seite des Vergleichsoperators in Anführungszeichen + gesetzt wird (Vergleich mit Zeichenkette) oder nicht (Vergleich mit + anderer Variablen). Zwei Beispiele, die beide Vergleiche zeigen:
+ +<%if var1 == "Wert"%>
+ testet die Variable "var1" auf Übereinstimmung mit der
+ Zeichenkette "Wert". Mittels "!=" anstelle von
+ "==" würde auf Ungleichheit getestet.
<%if var1 == var2%>
testet die
+ Variable "var1" auf Übereinstimmung mit der Variablen
+ "var2". Mittels "!=" anstelle von "=="
+ würde auf Ungleichheit getestet.
Erfahrere Benutzer können neben der Tests auf (Un-)Gleichheit auch + Tests auf Übereinstimmung mit regulären Ausdrücken ohne + Berücksichtung der Groß- und Kleinschreibung durchführen. Dazu dient + dieselbe Syntax wie oben nur mit "=~" und "!~" + als Vergleichsoperatoren.
+ +Beispiel für einen Test, ob die Variable "intnotes"
+ (interne Bemerkungen) das Wort "schwierig" enthält:
+ <%if intnotes =~
+ "schwierig"%>
foreach
-Schleife<%foreach variablenname%>
...
- <%end>
Fügt die Zeilen zwischen den beiden Anweisungen so oft ein, wie das
Perl-Array der Variablen "variablenname" Elemente enthät. Dieses
@@ -1279,56 +1551,15 @@ td {
Artikelnummer: <%number%>
Beschreibung: <%description%>
...
- <%end>
Besonderheit in OpenDocument-Vorlagen: Tritt ein
- <foreach>
-Block innerhalb einer Tabellenzelle
+ <%foreach%>
-Block innerhalb einer Tabellenzelle
auf, so wird die komplette Tabellenzeile so oft wiederholt wie
notwendig. Tritt er außerhalb auf, so wird nur der Inhalt
- zwischen <foreach>
und <end>
+ zwischen <%foreach%>
und <%end%>
wiederholt, nicht aber die komplette Zeile, in der er steht.
pagebreak
-Block<%pagebreak ZpZ ZeS ZzS%>
- ...
- <%end>
Dieser Block existiert nur in LaTeX-Vorlagen.
- -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 foreach
-Block auswertet, weil hier die
- manuellen Seitenumbrüche erforderlich werden. Dafür benötigt
- der Parser aber drei Informationen:
-
Diese Parameter sind drei Zahlen, die manuell durch Verwendung von langen - Warenbezeichnungen und Rechnungen mit vielen Posten bestimmt werden - müssen.
- -Ü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.
- -Wird kein manueller Seitenumbruch gewüscht, so kann dieser Block - komplett entfallen.
- zum Inhaltsverzeichnis<pagebreak>
<bullet>
Eine Besonderheit ist der Befehl <pagebreak>
,
der nur in LaTeX-Vorlagen funktioniert und in anderen Vorlagen
- einfach gelöscht wird. Dieser erzwingt unabhängig von der
- im pagebreak-Block
- voreingestellten Werte einen Seitenumbruch nach der aktuellen
- Rechnungsposition. Dementsprechend funktioniert er nur innerhalb von
- <foreach...>
-Schleifen. Weiterhin benötigt er kein
- Endtag.
<%foreach...%>
-Schleifen. Weiterhin benötigt
+ er kein Endtag.
+
+ Auch <bullet>
funktioniert momentan auch nur in Latex-Vorlagen.