geschrieben von Moritz Bunkus. Version: $Id$
Dies ist eine Auflistung der Standard-LaTeX-Vorlagen und aller zur
  Bearbeitung verfügbare Variablen. Eine Variable wird in einer Vorlage
  durch ihren Inhalt ersetzt, wenn sie in der Form
  <%variablenname%> verwendet wird.
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:
SL/Form.pm öffnen und am Anfang die Zeile
   "use Data::Dumper;"einfügen.
Form.pm die Funktion parse_template
   suchen und hier die Zeile print(STDERR Dumper($self));einfügen.
error.log vom Apache steht die Ausgabe der Variablen
   $self in der Form 'key' => 'value',. Alle
   keys sind verfügbar.Diese kurze Auflistung zeigt, welche Vorlage bei welcher Funktion ausgelesen wird:
bin_list.tex -- Lagerlistecheck.tex -- ?invoice.tex -- Rechnungpacking_list.tex -- Verpackungslistepick_list.tex -- Sammellistepurcharse_order.tex -- Bestellung an Lieferantenrequest_quotation.tex -- Anfrage an Lieferantensales_order.tex -- Bestellungsales_quotation.tex -- Angebot an Kunden
| Variablenname | Bedeutung | 
|---|---|
account_number | 
    Kontonummer | 
bank | 
    Name der Bank | 
bank_code | 
    Bankleitzahl | 
business | 
    Kundentyp | 
city | 
    Stadt | 
contact | 
    Kontakt | 
country | 
    Land | 
cp_email | 
    Email des Ansprechpartners | 
cp_givenname | 
    Vorname des Ansprechpartners | 
cp_greeting | 
    Anrede des Ansprechpartners | 
cp_name | 
    Name des Ansprechpartners | 
cp_phone1 | 
    Telefonnummer 1 des Ansprechpartners | 
cp_phone2 | 
    Telefonnummer 2 des Ansprechpartners | 
cp_title | 
    Titel des Ansprechpartners | 
creditlimit | 
    Kreditlimit | 
customernumber | 
    Kundennummer; nur für Kunden | 
customernotes | 
    Bemerkungen beim Kunden; nur für Kunden | 
discount | 
    Rabatt | 
email | 
    Emailadresse | 
fax | 
    Faxnummer | 
homepage | 
    Homepage | 
language | 
    Sprache | 
name | 
    Firmenname | 
phone | 
    Telefonnummer | 
shiptocity | 
    Stadt (Lieferadresse) * | 
shiptocontact | 
    Kontakt (Lieferadresse) * | 
shiptocountry | 
    Land (Lieferadresse) * | 
shiptoemail | 
    Email (Lieferadresse) * | 
shiptofax | 
    Fax (Lieferadresse) * | 
shiptoname | 
    Firmenname (Lieferadresse) * | 
shiptophone | 
    Telefonnummer (Lieferadresse) * | 
shiptostreet | 
    Straße und Hausnummer (Lieferadresse) * | 
shiptozipcode | 
    Postleitzahl (Lieferadresse) * | 
street | 
    Straße und Hausnummer | 
taxnumber | 
    Steuernummer | 
terms | 
    Zahlungsziel | 
vendoremail | 
    Email des Lieferanten; nur für Lieferanten | 
vendorfax | 
    Faxnummer des Lieferanten; nur für Lieferanten | 
vendornotes | 
    Bemerkungen beim Lieferanten; nur für Lieferanten | 
vendornumber | 
    Lieferantennummer; nur für Lieferanten | 
vendorphone | 
    Telefonnummer des Lieferanten; nur für Lieferanten | 
zipcode | 
    Postleitzahl | 
Anmerkung: Sind die
  shipto*-Felder in den Stammdaten nicht eingetragen, so haben
  die Variablen shipto* den gleichen Wert wie die die
  entsprechenden Variablen der Lieferdaten. Das bedeutet, dass sich einige
  shipto*-Variablen so nicht in den Stammdaten wiederfinden
  sondern schlicht Kopien der Lieferdatenvariablen sind
  (z.B. shiptocontact).
| Variablenname | Bedeutung | 
|---|---|
employee_email | 
    |
employee_fax | 
    Fax | 
employee_name | 
    voller Name | 
employee_signature | 
    Signatur | 
employee_tel | 
    Telefonnummer | 
| Variablenname | Bedeutung | 
|---|---|
tax | 
    Steuer | 
taxbase | 
    zu versteuernder Betrag | 
taxdescription | 
    Name der Steuer | 
taxrate | 
    Steuersatz | 
| Variablenname | Bedeutung | 
|---|---|
creditremaining | 
    Verbleibender Kredit | 
currency | 
    Währung | 
cusordnumber | 
    Bestellnummer beim Kunden | 
duedate | 
    Fälligkeitsdatum | 
intnotes | 
    Interne Bemerkungen | 
invdate | 
    Rechnungsdatum | 
invnumber | 
    Rechnungsnummer | 
invtotal | 
    gesamter Rechnungsbetrag | 
notes | 
    Bemerkungen der Rechnung | 
ordnumber | 
    Auftragsnummer | 
quonumber | 
    Angebotsnummer | 
shippingdate | 
    Lieferdatum | 
shippingpoint | 
    Versandort | 
shipvia | 
    Transportmittel | 
subtotal | 
    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) | 
| Variablenname | Bedeutung | 
|---|---|
assembly | 
    Erzeugnis | 
bin | 
    Stellage | 
deliverydate | 
    Lieferdatum | 
description | 
    Artikelbeschreibung | 
linetotal | 
    Zeilensumme (Anzahl * Einzelpreis) | 
listprice | 
    Listenpreis | 
netprice | 
    Nettopreis | 
number | 
    Artikelnummer | 
partnotes | 
    Die beim Artikel gespeicherten Bemerkungen | 
partsgroup | 
    Warengruppe | 
projectnumber | 
    Projektnummer | 
qty | 
    Anzahl | 
runningnumber | 
    Position auf der Rechnung (1, 2, 3...) | 
sellprice | 
    Verkaufspreis | 
serialnumber | 
    Seriennummer | 
unit | 
    Einheit | 
| Variablenname | Bedeutung | 
|---|---|
datepaid | 
    Datum | 
memo | 
    Memo | 
paid | 
    Betrag | 
source | 
    Beleg | 
exchangerate | 
    Wechselkurs | 
forex | 
    Konto | 
Die Variablen in anderen Vorlagen sind ähnlich wie in der
  Rechnung. Allerdings heißen die Variablen, die mit inv
  beginnen, jetzt anders. Bei den Angeboten fangen sie mit quo
  für "quotation" an: quodate für Angebotsdatum
  etc. Bei Bestellungen wiederum fangen sie mit ord für
  "order" an: ordnumber für Bestellnummer etc.
Manche Variablen sind in anderen Vorlagen hingegen gar nicht vorhanden wie z.B. die für bereits verbuchte Zahlungseingänge. Dies sind Variablen, die vom Geschäftsablauf her in der entsprechenden Vorlage keine Bedeutung haben oder noch nicht belegt sein können.
zum InhaltsverzeichnisDer Parser kennt neben den Variablen einige weitere Konstrukte, die
  gesondert behandelt werden. Diese sind wie Variablennamen in spezieller
  Weise markiert: <%anweisung%>
Achtung: Blöcke können momentan nicht verschachtelt
   werden. Das bedeutet, dass innerhalb einer
   <%foreach%>-Schleife keine
   <%if%>-Abfragen verwendet werden können. Dieses
   kann man aber mit LaTeX-Bordmitteln selber nachgebildet werden. Dazu muss
   im Vorspann das Paket ifthen eingebunden werden. Das Konstrukt
   selber sieht dann wie folgt aus:
\ifthenelse{\equal{<%variable%>}{}}{}{Dieser
   Text erscheint nur, wenn <%variable%> nicht leer ist.}
include-Anweisung<%include dateiname.ext%>
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.
if not-Block<%if not variablenname%>
   ...
   <%end if>
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.
if-Block<%if variablenname%>
   ...
   <%end if>
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.
foreach-Schleife<%foreach variablenname%>
   ...
   <%end foreach>
Fügt die Zeilen zwischen den beiden Anweisungen so oft ein, wie das Perl-Array der Variablen "variablenname" Elemente enthät. Dieses Konstrukt wird zur Ausgabe der einzelnen Posten einer Rechnung / eines Angebots sowie zur Ausgabe der Steuern benutzt. In jedem Durchlauf werden die zeilenbezogenen Variablen jeweils auf den Wert für die aktuelle Position gesetzt.
Die Syntax sieht normalerweise wie folgt aus:
<%foreach number%>
   Position: <%runningnumber%>
   Anzahl: <%qty%>
   Artikelnummer: <%number%>
   Beschreibung: <%description%>
   ...
   <%end foreach>
pagebreak-Block<%pagebreak ZpZ ZeS ZzS%>
   ...
   <%end pagebreak%>
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