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 {
  • Zuordnung von Dateinamen zu den Funktionen
  • +
  • Variablen ausgeben +
  • +
  • Anfang und Ende der Tags verändern
  • @@ -112,6 +115,7 @@ td {
  • Angebote und Preisanfragen
  • Auftragsbestätigungen und Lieferantenaufträge
  • Lieferscheine (Verkauf und Einkauf)
  • +
  • Sammelrechnung
  • @@ -119,17 +123,11 @@ td { Blöcke, bedingte Anweisungen und Schleifen
      -
    1. - Der if not-Block
    2. -
    3. Der if-Block
    4. Die foreach-Schleife
    5. - -
    6. - Der pagebreak-Block
    @@ -152,6 +150,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 @@ -185,6 +192,43 @@ 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
    +
    +

    Anfang und Ende der Tags verändern

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

    -

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

    +

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

    zum Inhaltsverzeichnis
    @@ -243,7 +287,7 @@ td { packing_list.ext - Verpackungsliste + Packliste pick_list.ext @@ -284,6 +328,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

    @@ -291,6 +352,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:

    @@ -311,7 +423,7 @@ td { bic - Internationaler Bank-Identifikations-Code (BIC) + Bank-Identifikations-Code (Bank Identifier Code, BIC) business @@ -397,6 +509,10 @@ td { homepage Homepage + + iban + Internationale Kontonummer (International Bank Account Number, IBAN) + language Sprache @@ -405,6 +521,10 @@ td { name Firmenname + + payment_description + Name der Zahlart + payment_terms Zahlungskonditionen @@ -476,6 +596,11 @@ td { taxnumber Steuernummer + + ustid + Usatzsteuer-Identifikationsnummer + + vendoremail Email des Lieferanten; nur für Lieferanten @@ -565,7 +690,7 @@ td {

    - Informationen über den Verkäfer (nur bei Verkaufsmasken):

    + Informationen über den Verkäufer (nur bei Verkaufsmasken):

    @@ -677,6 +802,10 @@ td { + + + + @@ -705,6 +834,10 @@ td { + + + + @@ -726,15 +859,9 @@ td { - + - - - - @@ -765,11 +892,11 @@ td { - + - + @@ -785,7 +912,7 @@ td { - + @@ -797,15 +924,15 @@ td { - + - + - + @@ -841,7 +968,11 @@ td { - + + + + + @@ -853,13 +984,17 @@ td { - + + + + + @@ -980,6 +1115,10 @@ td { + + + + @@ -1174,6 +1313,10 @@ td {

    globalprojectnumber Projektnummer des ganzen Beleges
    globalprojectdescriptionProjekbeschreibung des ganzen Beleges
    intnotes Interne Bemerkungenordnumber Auftragsnummer, wenn die Rechnung aus einem Auftrag erstellt wurde
    payment_descriptionName der Zahlart
    payment_terms ZahlungskonditionenTransportmittel
    subtotalsubtotal[_nofmt] Zwischensumme aller Posten ohne Steuern
    sumcarriedforwardZwischensumme aller bisher ausgegebenen Posten. Sollte nur in einem - - pagebreak-Block verwendet werden.
    total Restsumme der Rechnung (Summe abzüglich bereits bezahlter Posten)Artikelbeschreibung
    discountdiscount[_nofmt] Rabatt als Betrag
    discount_subdiscount_sub[_nofmt] Zwischensumme mit Rabatt
    Grafik
    linetotallinetotal[_nofmt] Zeilensumme (Anzahl * Einzelpreis)
    Mikrofilm
    netpricenetprice[_nofmt] Nettopreis
    nodiscount_linetotalnodiscount_linetotal[_nofmt] Zeilensumme ohne Rabatt
    nodiscount_subnodiscount_sub[_nofmt] Zwischensumme ohne Rabatt
    Projektnummer
    qtyprojectdescriptionProjektbeschreibung
    qty[_nofmt] Anzahl
    Position auf der Rechnung (1, 2, 3...)
    sellpricesellprice[_nofmt] Verkaufspreis
    serialnumber Seriennummer
    tax_rateSteuersatz
    transdate_oe Auftragsdatum des Originalauftrags, wenn die Rechnung aus einem Sammelauftrag erstellt wurdedunning_duedate Fälligkeitsdatum für diese Mahhnung
    dunning_idMahnungsnummer
    fee Kummulative Mahngebühren
    + + + + @@ -1185,6 +1328,14 @@ td {
    VariablennameBedeutung
    cusordnumberBestellnummer des Kunden (im Verkauf) bzw. Bestellnummer des Lieferanten (im Einkauf)
    donumber Lieferscheinnummer

    +

    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 Chargennummer + + si_bestbefore + Mindesthaltbarkeit + si_number Artikelnummer @@ -1226,6 +1381,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

    @@ -1233,35 +1463,77 @@ td {

    Blöcke, bedingte Anweisungen und Schleifen

    -

    Der Parser kennt neben den Variablen einige weitere Konstrukte, die - gesondert behandelt werden. Diese sind wie Variablennamen in spezieller - Weise markiert: <%anweisung%>

    - -

    Der 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"%>.

    Der 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"%>

    Die foreach-Schleife

    <%foreach variablenname%>
    ...
    - <%end>

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

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

    -

    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

    @@ -1371,18 +1602,22 @@ 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 - <foreach...>-Schleifen. Weiterhin benötigt er kein - Endtag.

    + 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