X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=doc%2Fdokumentenvorlagen-und-variablen.html;h=e1dac111be62efa5429a829f9ed122474fcf2c84;hb=4ba806ac9da862d3a8d96d2f560696c22492a622;hp=9bf5a10837e682bd341791d43a480a0a87945a8d;hpb=92d28f856f4dd9eee0b35f30bbf876744b9426aa;p=kivitendo-erp.git diff --git a/doc/dokumentenvorlagen-und-variablen.html b/doc/dokumentenvorlagen-und-variablen.html index 9bf5a1083..e1dac111b 100644 --- a/doc/dokumentenvorlagen-und-variablen.html +++ b/doc/dokumentenvorlagen-und-variablen.html @@ -48,6 +48,12 @@ td {
  • Zuordnung von Dateinamen zu den Funktionen
  • +
  • Variablen ausgeben +
  • + +
  • Verwendung in Druckbefehlen +
  • +
  • Anfang und Ende der Tags verändern
  • @@ -112,6 +118,7 @@ td {
  • Angebote und Preisanfragen
  • Auftragsbestätigungen und Lieferantenaufträge
  • Lieferscheine (Verkauf und Einkauf)
  • +
  • Sammelrechnung
  • @@ -124,9 +131,6 @@ td {
  • Die foreach-Schleife
  • - -
  • - Der pagebreak-Block
  • @@ -149,6 +153,15 @@ td { verändern.

    +

    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 @@ -182,6 +195,68 @@ td { zum Inhaltsverzeichnis


    +

    Variablen ausgeben

    + +

    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: +

    + + + +

    + Beispiel: <%quototal NOFORMAT%> +

    + + + zum Inhaltsverzeichnis
    +
    + +

    Verwendung in Druckbefehlen

    + +

    + 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 `...` nicht zu unerwünschtem Verhalten führen. +

    + +

    + 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: +

    + +

    + send_fax --number <%if cp_phone2%><%cp_phone2%><%else%><%cp_phone1%><%end%> +

    + + + zum Inhaltsverzeichnis
    +
    +

    Anfang und Ende der Tags verändern

    @@ -206,7 +281,7 @@ td { äquivalente Beispiel für HTML-Dokumentenvorlagen sieht so aus:

    -

    <!-- config: tag-stye=($ $)>

    +

    <!-- config: tag-style=($ $) -->

    zum Inhaltsverzeichnis
    @@ -281,6 +356,23 @@ td {

    + Sprache, Drucker und E-Mail + +

    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 Inhaltsverzeichnis

    @@ -288,6 +380,57 @@ td {

    Allgemeine Variablen, die in allen Vorlagen vorhanden sind

    +

    + Metainformationen zur angeforderten Vorlage:

    + +

    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.

    + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    VariablennameBedeutung
    template_meta.formnameBasisname der Vorlage. Identisch mit der Zurordnung zu den Dateinamen ohne die Erweiterung. Ein Verkaufsauftrag enthält hier sales_order.
    template_meta.language.descriptionBeschreibung der verwendeten Sprache
    template_meta.language.template_codeVorlagenürzel der verwendeten Sprache, identisch mit dem Kürzel das im Dateinamen verwendetet wird.
    template_meta.language.output_numberformatZahlenformat der verwendeten Sprache in der Form "1.000,00". Experimentell!. Nur interessant für Vorlagen die mit unformatierten Werten arbeiten.
    template_meta.language.output_dateformatDatumsformat der verwendeten Sprache in der Form "dd.mm.yyyy". Experimentell!. Nur interessant für Vorlagen die mit unformatierten Werten arbeiten.
    template_meta.formatDas angeforderte Format. Kann im Moment die Werte pdf, postscript, html, opendocument, opendocument_pdf und excel enthalten.
    template_meta.extensionDateierweiterung, wie im Dateinamen. Wird aus format entschieden.
    template_meta.mediaAusgabemedium. 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.descriptionBeschreibung des ausgewählten Druckers
    template_meta.printer.template_codeVorlagenürzel des ausgewählten Druckers, identisch mit dem Kürzel das im Dateinamen verwendetet wird.
    +

    +

    Stammdaten von Kunden und Lieferanten:

    @@ -406,6 +549,10 @@ td { name Firmenname + + payment_description + Name der Zahlart + payment_terms Zahlungskonditionen @@ -477,6 +624,11 @@ td { taxnumber Steuernummer + + ustid + Umsatzsteuer-Identifikationsnummer + + vendoremail Email des Lieferanten; nur für Lieferanten @@ -678,6 +830,10 @@ td { globalprojectnumber Projektnummer des ganzen Beleges + + globalprojectdescription + Projekbeschreibung des ganzen Beleges + intnotes Interne Bemerkungen @@ -706,6 +862,10 @@ td { ordnumber Auftragsnummer, wenn die Rechnung aus einem Auftrag erstellt wurde + + payment_description + Name der Zahlart + payment_terms Zahlungskonditionen @@ -727,15 +887,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) @@ -766,11 +920,11 @@ td { Artikelbeschreibung - discount + discount[_nofmt] Rabatt als Betrag - discount_sub + discount_sub[_nofmt] Zwischensumme mit Rabatt @@ -786,7 +940,7 @@ td { Grafik - linetotal + linetotal[_nofmt] Zeilensumme (Anzahl * Einzelpreis) @@ -798,15 +952,15 @@ td { Mikrofilm - netprice + netprice[_nofmt] Nettopreis - nodiscount_linetotal + nodiscount_linetotal[_nofmt] Zeilensumme ohne Rabatt - nodiscount_sub + nodiscount_sub[_nofmt] Zwischensumme ohne Rabatt @@ -842,7 +996,11 @@ td { Projektnummer - qty + projectdescription + Projektbeschreibung + + + qty[_nofmt] Anzahl @@ -854,13 +1012,17 @@ td { 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 @@ -1062,6 +1224,11 @@ td { dn_transdate Rechnungsdatum + + dn_curr + Währung, in der die Rechnung erstellt wurde. (Die Rechnungsbeträge + sind aber immer in der Hauptwährung) +

    @@ -1194,6 +1361,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 @@ -1212,6 +1387,10 @@ td { si_chargenumber Chargennummer + + si_bestbefore + Mindesthaltbarkeit + si_number Artikelnummer @@ -1235,6 +1414,81 @@ td {

    +

    Sammelrechnung

    + +

    Variablen für Sammelrechnung:

    +

    + + + + + + + + + + + + + + + + + + + + + + +
    VariablennameBedeutung
    c0totalGesamtbetrag aller Rechnungen mit Fälligkeit < 30 Tage
    c30totalGesamtbetrag aller Rechnungen mit Fälligkeit >= 30 und < 60 Tage
    c60totalGesamtbetrag aller Rechnungen mit Fälligkeit >= 60 und < 90 Tage
    c90totalGesamtbetrag aller Rechnungen mit Fälligkeit >= 90 Tage
    totalGesamtbetrag aller Rechnungen
    +

    + +

    Variablen für jede Rechnungsposition in Sammelrechnung:

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    VariablennameBedeutung
    invnumberRechnungsnummer
    invdateRechnungsdatum
    duedateFälligkeitsdatum
    amountSumme der Rechnung
    openNoch offener Betrag der Rechnung
    c0Noch offener Rechnungsbetrag mit Fälligkeit < 30 Tage
    c30Noch offener Rechnungsbetrag mit Fälligkeit >= 30 und < 60 Tage
    c60Noch offener Rechnungsbetrag mit Fälligkeit >= 60 und < 90 Tage
    c90Noch offener Rechnungsbetrag mit Fälligkeit >= 90 Tage
    +

    + + + + zum Inhaltsverzeichnis

    @@ -1248,14 +1502,14 @@ td { ... <%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 + 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 + "sales_quotation"%>, so könnte er mit <%end%> genauso abgeschlossen werden wie mit <%end if%> oder auch @@ -1278,33 +1532,33 @@ td { 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 +

    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 + 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 + testet die Variable "var1" auf Übereinstimmung mit der Zeichenkette "Wert". Mittels "!=" anstelle von - "==" würde auf Ungleichheit getestet.

    + "==" würde auf Ungleichheit getestet.

    <%if var1 == var2%> testet die - Variable "var1" auf Übereinstimmung mit der Variablen + Variable "var1" auf Übereinstimmung mit der Variablen "var2". Mittels "!=" anstelle von "==" - würde auf Ungleichheit getestet.

    + 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 +

    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: +

    Beispiel für einen Test, ob die Variable "intnotes" + (interne Bemerkungen) das Wort "schwierig" enthält: <%if intnotes =~ "schwierig"%>

    @@ -1339,47 +1593,6 @@ td { zwischen <%foreach%> und <%end%> wiederholt, nicht aber die komplette Zeile, in der er steht.

    -

    Der 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:

    - -

    -

      -
    1. Wieviele Zeichen passen bei der Variablen "description" pro Posten - in eine Zeile? Das ist der Parameter "ZpZ" (Zeichen pro Zeile).
    2. -
    3. Wieviele Zeilen/Posten passen auf die erste Seite? Das - ist der Parameter "ZeS" (Zeilen erste Seite).
    4. -
    5. Wieviele Zeilen/Posten passen auf die zweite und alle nachfolgenden - Seiten? Das ist der Parameter "ZzS" (Zeilen zweite Seite).
    6. -
    -

    - -

    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

    @@ -1422,19 +1635,23 @@ td { <pagebreak> Erzwingt einen Seitenumbruch (siehe unten). + + <bullet> + Erzeugt einen ausgefüllten Kreis für Aufzählungen (•) (siehe unten). +

    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 + einfach gelöscht wird. Dieser erzwingt einen Seitenumbruch nach + der aktuellen Rechnungsposition. Dementsprechend funktioniert er nur + innerhalb von <%foreach...%>-Schleifen. Weiterhin benötigt er kein Endtag.

    +

    Auch <bullet> funktioniert momentan auch nur in Latex-Vorlagen.

    + zum Inhaltsverzeichnis