3 <title>Dokumentenvorlagen und verfügbare Variablen</title>
4 <style type="text/css">
8 background-color: #b0ecff;
9 border: 1px solid blue;
16 background-color: #fae8b8;
17 border: 1px solid #be5303;
18 border-collapse: collapse;
22 border: 1px solid #be5303;
32 <h1>Dokumentenvorlagen und verfügbare Variablen</h1>
34 <p>geschrieben von <a href="mailto:m.bunkus@linet-services.de">Moritz
35 Bunkus</a>. Version: $Id$ </p>
39 <h2><a name="inhaltsverzeichnis">Inhaltsverzeichnis</a></h2>
42 <li><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
43 Inhaltsverzeichnis</a></li>
45 <li><a href="dokumentenvorlagen-und-variablen.html#einfuehrung">Einführung</a>
48 <li><a href="dokumentenvorlagen-und-variablen.html#zuordnung_dateinamen">
49 Zuordnung von Dateinamen zu den Funktionen</a></li>
51 <li><a href="dokumentenvorlagen-und-variablen.html#tag_style">
52 Anfang und Ende der Tags verändern</a></li>
54 <li><a href="dokumentenvorlagen-und-variablen.html#allgemeine_variablen">
55 Allgemeine Variablen, die in allen Vorlagen vorhanden sind</a><br>
58 <li><a href="dokumentenvorlagen-und-variablen.html#allgemein_stammdaten">
59 Stammdaten von Kunden und Lieferanten</a></li>
61 <li><a href="dokumentenvorlagen-und-variablen.html#allgemein_bearbeiter">
62 Informationen über den Bearbeiter</a></li>
64 <li><a href="dokumentenvorlagen-und-variablen.html#allgemein_verkaeufer">
65 Informationen über den Verkäufer</a></li>
67 <li><a href="dokumentenvorlagen-und-variablen.html#allgemein_steuern">
68 Variablen für jede Steuer</a></li>
72 <li><a href="dokumentenvorlagen-und-variablen.html#invoice">
73 Variablen in Rechnungen</a>
76 <li><a href="dokumentenvorlagen-und-variablen.html#invoice_allgemein">
77 Allgemeine Variablen</a></li>
79 <li><a href="dokumentenvorlagen-und-variablen.html#invoice_posten">
80 Variablen für jeden Posten auf der Rechnung</a></li>
82 <li><a href="dokumentenvorlagen-und-variablen.html#invoice_zahlungen">
83 Variablen für die Zahlungseingänge</a></li>
85 <li><a href="dokumentenvorlagen-und-variablen.html#invoice_benutzerdefinierte_variablen_vc">
86 Benutzerdefinierte Kunden- und Lieferantenvariablen</a></li>
90 <li><a href="dokumentenvorlagen-und-variablen.html#dunning">
91 Variablen in Mahnungen und Rechnungen über Mahngebühren</a>
94 <li><a href="dokumentenvorlagen-und-variablen.html#dunning_vorlagennamen">
95 Namen der Vorlagen</a></li>
97 <li><a href="dokumentenvorlagen-und-variablen.html#dunning_allgemein">
98 Allgemeine Variablen in Mahnungen</a></li>
100 <li><a href="dokumentenvorlagen-und-variablen.html#dunning_details">
101 Variablen für jede gemahnte Rechnung in einer Mahnung</a></li>
103 <li><a href="dokumentenvorlagen-und-variablen.html#dunning_invoice">
104 Variablen in automatisch erzeugten Rechnungen über Mahngebühren</a></li>
108 <li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen">
109 Variablen in anderen Vorlagen</a>
112 <li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen_quotations">Angebote und Preisanfragen</a></li>
113 <li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen_orders">Auftragsbestätigungen und Lieferantenaufträge</a></li>
114 <li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen_delivery_orders">Lieferscheine (Verkauf und Einkauf)</a></li>
118 <li><a href="dokumentenvorlagen-und-variablen.html#bloecke">
119 Blöcke, bedingte Anweisungen und Schleifen</a>
122 <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_if">
123 Der <code>if</code>-Block</a></li>
125 <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_foreach">
126 Die <code>foreach</code>-Schleife</a></li>
128 <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_pagebreak">
129 Der <code>pagebreak</code>-Block</a></li>
133 <li><a href="dokumentenvorlagen-und-variablen.html#markup">
134 Markup-Code, der innerhalb von Formularen zur Textformatierung verwendet
141 <h2><a name="einfuehrung">Einführung</a></h2>
143 <p>Dies ist eine Auflistung der Standard-Dokumentenvorlagen und aller
144 zur Bearbeitung verfügbaren Variablen. Eine Variable wird in
145 einer Vorlage durch ihren Inhalt ersetzt, wenn sie in der Form
146 <code><%variablenname%></code> verwendet wird. Für LaTeX-
147 und HTML-Vorlagen kann man die Form dieser Tags auch
148 <a href="dokumentenvorlagen-und-variablen.html#tag_style">
152 <p>Einige Zahlenwerte werden auch in unformatierter Form zur Verfügung
153 gestellt (also z.B. 35 statt 35,00 oder 12.3 statt 12,30). Der Dezimaltrenner
154 ist dabei also immer ein Punkt unabhaengig vom eingestellten Zahlenformat.
155 Diese Variabelen kann man mit der Erweiterung _num (für numeric) aufrufen
156 (also z.B. netprice = 12,30 -- netprice_num = 12.3). Variabeln die zusätzlich
157 unformatiert zur Verfügung stehen sind unten als variable[_num] gelistet.
158 Die Eckigen Klammern weisen also auf eine optionale Verwändung der Erweiterung hin.
161 <p>Früher wurde hier nur über LaTeX gesprochen. Inzwischen
162 unterstützt Lx-Office aber auch OpenDocument-Vorlagen. Sofern
163 es nicht ausdrücklich eingeschränkt wird, gilt das im
164 Folgenden gesagte für alle Vorlagenarten.</p>
166 <p>Insgesamt sind technisch gesehen eine ganze Menge mehr Variablen
167 verfügbar als hier aufgelistet werden. Die meisten davon können
168 allerdings innerhalb einer solchen Vorlage nicht sinnvoll verwendet
169 werden. Wenn eine Auflistung dieser Variablen gewollt ist, so kann diese wie
170 folgt erhalten werden:</p>
174 <li><code>SL/Form.pm</code> öffnen und am Anfang die Zeile
175 <pre>"use Data::Dumper;"</pre> einfügen.</li>
177 <li>In <code>Form.pm</code> die Funktion <code>parse_template</code>
178 suchen und hier die Zeile <pre>print(STDERR Dumper($self));</pre>
181 <li>Einmal per Browser die gewünschte Vorlage "benutzen", z.B. ein PDF
182 für eine Rechnung erzeugen.</li>
184 <li>Im <code>error.log</code> vom Apache steht die Ausgabe der Variablen
185 <code>$self</code> in der Form <code>'key' => 'value',</code>. Alle
186 <code>key</code>s sind verfügbar.</li>
190 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
191 zum Inhaltsverzeichnis</a></small><br>
194 <h2><a name="tag_style">
195 Anfang und Ende der Tags verändern</a></h2>
197 <p>Der Standardstil für Tags sieht vor, dass ein Tag mit dem
198 Kleinerzeichen und einem Prozentzeichen beginnt und mit dem
199 Prozentzeichen und dem Größerzeichen endet,
200 beispielsweise <code><%customer%></code>. Da diese Form aber
201 z.B. in LaTeX zu Problemen führen kann, weil das Prozentzeichen
202 dort Kommentare einleitet, kann pro HTML- oder
203 LaTeX-Dokumentenvorlage der Stil umgestellt werden.</p>
205 <p>Dazu werden in die Datei Zeilen geschrieben, die mit dem für
206 das Format gültigen Kommentarzeichen anfangen,
207 dann <code>config:</code> enthalten, die entsprechende Option setzen
208 und bei HTML-Dokumentenvorlagen mit dem Kommentarendzeichen
209 enden. Beispiel für LaTeX:</p>
211 <p><code>% config: tag-style=($ $)</code></p>
213 <p>Dies würde Lx-Office dazu veranlassen, Variablen zu ersetzen,
214 wenn sie wie folgt aussehen: <code>($customer$)</code>. Das
215 äquivalente Beispiel für HTML-Dokumentenvorlagen sieht so
218 <p><code><!-- config: tag-style=($ $) --></code></p>
220 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
221 zum Inhaltsverzeichnis</a></small><br>
224 <h2><a name="zuordnung_dateinamen">
225 Zuordnung von den Dateinamen zu den Funktionen</a></h2>
227 <p>Diese folgende kurze Auflistung zeigt, welche Vorlage bei welcher
228 Funktion ausgelesen wird. Dabei ist die Dateiendung ".ext"
229 geeignet zu ersetzen: ".tex" fü LaTeX-Vorlagen und
230 ".odt" für OpenDocument-Vorlagen.</p>
239 <td><code>bin_list.ext</code></td>
243 <td><code>check.ext</code></td>
247 <td><code>invoice.ext</code></td>
251 <td><code>packing_list.ext</code></td>
255 <td><code>pick_list.ext</code></td>
259 <td><code>purchase_delivery_order.ext</code></td>
260 <td>Lieferschein (Einkauf)</td>
263 <td><code>purcharse_order.ext</code></td>
264 <td>Bestellung an Lieferanten</td>
267 <td><code>request_quotation.ext</code></td>
268 <td>Anfrage an Lieferanten</td>
271 <td><code>sales_delivery_order.ext</code></td>
272 <td>Lieferschein (Verkauf)</td>
275 <td><code>sales_order.ext</code></td>
279 <td><code>sales_quotation.ext</code></td>
280 <td>Angebot an Kunden</td>
283 <td><code>zahlungserinnerung.ext</code></td>
284 <td>Mahnung (Dateiname im Programm konfigurierbar)</td>
287 <td><code>zahlungserinnerung_invoice.ext</code></td>
288 <td>Rechnung über Mahngebühren (Dateiname im Programm konfigurierbar)</td>
293 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
294 zum Inhaltsverzeichnis</a></small><br>
297 <h2><a name="allgemeine_variablen">
298 Allgemeine Variablen, die in allen Vorlagen vorhanden sind</a></h2>
300 <h3><a name="allgemein_stammdaten">
301 Stammdaten von Kunden und Lieferanten:</a></h3>
305 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
307 <td><code>account_number</code></td>
311 <td><code>bank</code></td>
312 <td>Name der Bank</td>
315 <td><code>bank_code</code></td>
316 <td>Bankleitzahl</td>
319 <td><code>bic</code></td>
320 <td>Bank-Identifikations-Code (Bank Identifier Code, BIC)</td>
323 <td><code>business</code></td>
324 <td>Kunden-/Lieferantentyp</td>
327 <td><code>city</code></td>
331 <td><code>contact</code></td>
335 <td><code>country</code></td>
339 <td><code>cp_email</code></td>
340 <td>Email des Ansprechpartners</td>
343 <td><code>cp_givenname</code></td>
344 <td>Vorname des Ansprechpartners</td>
347 <td><code>cp_greeting</code></td>
348 <td>Anrede des Ansprechpartners</td>
351 <td><code>cp_name</code></td>
352 <td>Name des Ansprechpartners</td>
355 <td><code>cp_phone1</code></td>
356 <td>Telefonnummer 1 des Ansprechpartners</td>
359 <td><code>cp_phone2</code></td>
360 <td>Telefonnummer 2 des Ansprechpartners</td>
363 <td><code>cp_title</code></td>
364 <td>Titel des Ansprechpartners</td>
367 <td><code>creditlimit</code></td>
371 <td><code>customeremail</code></td>
372 <td>Email des Kunden; nur für Kunden</td>
375 <td><code>customerfax</code></td>
376 <td>Faxnummer des Kunden; nur für Kunden</td>
379 <td><code>customernotes</code></td>
380 <td>Bemerkungen beim Kunden; nur für Kunden</td>
383 <td><code>customernumber</code></td>
384 <td>Kundennummer; nur für Kunden</td>
387 <td><code>customerphone</code></td>
388 <td>Telefonnummer des Kunden; nur für Kunden</td>
391 <td><code>discount</code></td>
395 <td><code>email</code></td>
396 <td>Emailadresse</td>
399 <td><code>fax</code></td>
403 <td><code>homepage</code></td>
407 <td><code>iban</code></td>
408 <td>Internationale Kontonummer (International Bank Account Number, IBAN)</td>
411 <td><code>language</code></td>
415 <td><code>name</code></td>
419 <td><code>payment_description</code></td>
420 <td>Name der Zahlart</td>
423 <td><code>payment_terms</code></td>
424 <td>Zahlungskonditionen</td>
427 <td><code>phone</code></td>
428 <td>Telefonnummer</td>
431 <td><code>shiptocity</code></td>
432 <td>Stadt (Lieferadresse)
433 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
436 <td><code>shiptocontact</code></td>
437 <td>Kontakt (Lieferadresse)
438 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
441 <td><code>shiptocountry</code></td>
442 <td>Land (Lieferadresse)
443 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
446 <td><code>shiptodepartment1</code></td>
447 <td>Abteilung 1 (Lieferadresse)
448 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
451 <td><code>shiptodepartment2</code></td>
452 <td>Abteilung 2 (Lieferadresse)
453 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
456 <td><code>shiptoemail</code></td>
457 <td>Email (Lieferadresse)
458 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
461 <td><code>shiptofax</code></td>
462 <td>Fax (Lieferadresse)
463 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
466 <td><code>shiptoname</code></td>
467 <td>Firmenname (Lieferadresse)
468 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
471 <td><code>shiptophone</code></td>
472 <td>Telefonnummer (Lieferadresse)
473 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
476 <td><code>shiptostreet</code></td>
477 <td>Straße und Hausnummer (Lieferadresse)
478 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
481 <td><code>shiptozipcode</code></td>
482 <td>Postleitzahl (Lieferadresse)
483 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
486 <td><code>street</code></td>
487 <td>Straße und Hausnummer</td>
490 <td><code>taxnumber</code></td>
491 <td>Steuernummer</td>
494 <td><code>ustid</code></td>
495 <td>Usatzsteuer-Identifikationsnummer</td>
499 <td><code>vendoremail</code></td>
500 <td>Email des Lieferanten; nur für Lieferanten</td>
503 <td><code>vendorfax</code></td>
504 <td>Faxnummer des Lieferanten; nur für Lieferanten</td>
507 <td><code>vendornotes</code></td>
508 <td>Bemerkungen beim Lieferanten; nur für Lieferanten</td>
511 <td><code>vendornumber</code></td>
512 <td>Lieferantennummer; nur für Lieferanten</td>
515 <td><code>vendorphone</code></td>
516 <td>Telefonnummer des Lieferanten; nur für Lieferanten</td>
519 <td><code>zipcode</code></td>
520 <td>Postleitzahl</td>
525 <p><a name="anmerkung_shipto"><em>Anmerkung</em></a>: Sind die
526 <code>shipto*</code>-Felder in den Stammdaten nicht eingetragen, so haben
527 die Variablen <code>shipto*</code> den gleichen Wert wie die die
528 entsprechenden Variablen der Lieferdaten. Das bedeutet, dass sich einige
529 <code>shipto*</code>-Variablen so nicht in den Stammdaten wiederfinden
530 sondern schlicht Kopien der Lieferdatenvariablen sind
531 (z.B. <code>shiptocontact</code>).</p>
533 <h3><a name="allgemein_bearbeiter">
534 Informationen über den Bearbeiter:</a></h3>
538 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
540 <td><code>employee_address</code></td>
544 <td><code>employee_businessnumber</code></td>
545 <td>Firmennummer</td>
548 <td><code>employee_company</code></td>
552 <td><code>employee_co_ustid</code></td>
553 <td>Usatzsteuer-Identifikationsnummer</td>
556 <td><code>employee_duns</code></td>
560 <td><code>employee_email</code></td>
564 <td><code>employee_fax</code></td>
568 <td><code>employee_name</code></td>
572 <td><code>employee_signature</code></td>
576 <td><code>employee_taxnumber</code></td>
577 <td>Steuernummer</td>
580 <td><code>employee_tel</code></td>
581 <td>Telefonnummer</td>
586 <h3><a name="allgemein_verkaeufer">
587 Informationen über den Verkäufer (nur bei Verkaufsmasken):</a></h3>
591 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
593 <td><code>salesman_address</code></td>
597 <td><code>salesman_businessnumber</code></td>
598 <td>Firmennummer</td>
601 <td><code>salesman_company</code></td>
605 <td><code>salesman_co_ustid</code></td>
606 <td>Usatzsteuer-Identifikationsnummer</td>
609 <td><code>salesman_duns</code></td>
613 <td><code>salesman_email</code></td>
617 <td><code>salesman_fax</code></td>
621 <td><code>salesman_name</code></td>
625 <td><code>salesman_signature</code></td>
629 <td><code>salesman_taxnumber</code></td>
630 <td>Steuernummer</td>
633 <td><code>salesman_tel</code></td>
634 <td>Telefonnummer</td>
639 <h3><a name="allgemein_steuern">
640 Variablen für die einzelnen Steuern:</a></h3>
644 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
646 <td><code>tax</code></td>
650 <td><code>taxbase</code></td>
651 <td>zu versteuernder Betrag</td>
654 <td><code>taxdescription</code></td>
655 <td>Name der Steuer</td>
658 <td><code>taxrate</code></td>
664 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
665 zum Inhaltsverzeichnis</a></small><br>
668 <h2><a name="invoice">Variablen in Rechnungen</a></h2>
670 <h3><a name="invoice_allgemein">Allgemeine Variablen:</a></h3>
674 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
676 <td><code>creditremaining</code></td>
677 <td>Verbleibender Kredit</td>
680 <td><code>currency</code></td>
681 <td>Währung</td>
684 <td><code>cusordnumber</code></td>
685 <td>Bestellnummer beim Kunden</td>
688 <td><code>deliverydate</code></td>
692 <td><code>duedate</code></td>
693 <td>Fälligkeitsdatum</td>
696 <td><code>globalprojectnumber</code></td>
697 <td>Projektnummer des ganzen Beleges</td>
700 <td><code>globalprojectdescription</code></td>
701 <td>Projekbeschreibung des ganzen Beleges</td>
704 <td><code>intnotes</code></td>
705 <td>Interne Bemerkungen</td>
708 <td><code>invdate</code></td>
709 <td>Rechnungsdatum</td>
712 <td><code>invnumber</code></td>
713 <td>Rechnungsnummer</td>
716 <td><code>invtotal</code></td>
717 <td>gesamter Rechnungsbetrag</td>
720 <td><code>notes</code></td>
721 <td>Bemerkungen der Rechnung</td>
724 <td><code>orddate</code></td>
725 <td>Auftragsdatum</td>
728 <td><code>ordnumber</code></td>
729 <td>Auftragsnummer, wenn die Rechnung aus einem Auftrag erstellt wurde</td>
732 <td><code>payment_description</code></td>
733 <td>Name der Zahlart</td>
736 <td><code>payment_terms</code></td>
737 <td>Zahlungskonditionen</td>
740 <td><code>quodate</code></td>
741 <td>Angebotsdatum</td>
744 <td><code>quonumber</code></td>
745 <td>Angebotsnummer</td>
748 <td><code>shippingpoint</code></td>
752 <td><code>shipvia</code></td>
753 <td>Transportmittel</td>
756 <td><code>subtotal</code></td>
757 <td>Zwischensumme aller Posten ohne Steuern</td>
760 <td><code>sumcarriedforward</code></td>
761 <td>Zwischensumme aller bisher ausgegebenen Posten. Sollte nur in einem
762 <a href="dokumentenvorlagen-und-variablen.html#bloecke_pagebreak">
763 <code>pagebreak</code></a>-Block verwendet werden.</td>
766 <td><code>total</code></td>
767 <td>Restsumme der Rechnung (Summe abzüglich bereits bezahlter Posten)</td>
770 <td><code>transaction_description</code></td>
771 <td>Vorgangsbezeichnung</td>
774 <td><code>transdate</code></td>
775 <td>Auftragsdatum wenn die Rechnung aus einem Auftrag erstellt wurde</td>
780 <h3><a name="invoice_posten">
781 Variablen für jeden Posten auf der Rechnung:</a></h3>
785 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
787 <td><code>bin</code></td>
791 <td><code>description</code></td>
792 <td>Artikelbeschreibung</td>
795 <td><code>discount[_num]</code></td>
796 <td>Rabatt als Betrag</td>
799 <td><code>discount_sub[_num]</code></td>
800 <td>Zwischensumme mit Rabatt</td>
803 <td><code>drawing</code></td>
807 <td><code>ean</code></td>
811 <td><code>image</code></td>
815 <td><code>linetotal[_num]</code></td>
816 <td>Zeilensumme (Anzahl * Einzelpreis)</td>
819 <td><code>linetotal_raw[_num]</code></td>
820 <td>Zeilensumme (Anzahl * Einzelpreis) gerundet auf 8 Stellen nach dem Komma (statt 2)</td>
823 <td><code>longdescription</code></td>
827 <td><code>microfiche</code></td>
831 <td><code>netprice[_num]</code></td>
835 <td><code>nodiscount_linetotal[_num]</code></td>
836 <td>Zeilensumme ohne Rabatt</td>
839 <td><code>nodiscount_sub[_num]</code></td>
840 <td>Zwischensumme ohne Rabatt</td>
843 <td><code>number</code></td>
844 <td>Artikelnummer</td>
847 <td><code>ordnumber_oe</code></td>
848 <td>Auftragsnummer des Originalauftrags, wenn die Rechnung aus einem Sammelauftrag erstellt wurde</td>
851 <td><code>p_discount</code></td>
852 <td>Rabatt in Prozent</td>
855 <td><code>partnotes</code></td>
856 <td>Die beim Artikel gespeicherten Bemerkungen</td>
859 <td><code>partsgroup</code></td>
863 <td><code>price_factor</code></td>
864 <td>Der Preisfaktor als Zahl, sofern einer eingestellt ist</td>
867 <td><code>price_factor_name</code></td>
868 <td>Der Name des Preisfaktors, sofern einer eingestellt ist</td>
871 <td><code>projectnumber</code></td>
872 <td>Projektnummer</td>
875 <td><code>projectdescription</code></td>
876 <td>Projektbeschreibung</td>
879 <td><code>qty[_num]</code></td>
883 <td><code>reqdate</code></td>
887 <td><code>runningnumber</code></td>
888 <td>Position auf der Rechnung (1, 2, 3...)</td>
891 <td><code>sellprice</code></td>
892 <td>Verkaufspreis</td>
895 <td><code>serialnumber</code></td>
896 <td>Seriennummer</td>
899 <td><code>tax_rate</code></td>
903 <td><code>transdate_oe</code></td>
904 <td>Auftragsdatum des Originalauftrags, wenn die Rechnung aus einem Sammelauftrag erstellt wurde</td>
907 <td><code>unit</code></td>
911 <td><code>weight</code></td>
917 <p>Für jeden Posten gibt es ein Unterarray mit den Informationen über
918 Lieferanten und Lieferantenartikelnummer. Diese müssen mit
919 einer <code>foreach</code>-Schleife ausgegeben werden, da für jeden
920 Artikel mehrere Lieferanteninformationen hinterlegt sein können. Die
921 Variablen dafür lauten:</p>
925 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
927 <td><code>make</code></td>
931 <td><code>model</code></td>
932 <td>Lieferantenartikelnummer</td>
937 <h3><a name="invoice_zahlungen">
938 Variablen für die einzelnen Zahlungseingänge:</a></h3>
942 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
944 <td><code>payment</code></td>
948 <td><code>paymentaccount</code></td>
952 <td><code>paymentdate</code></td>
956 <td><code>paymentmemo</code></td>
960 <td><code>paymentsource</code></td>
966 <h3><a name="invoice_benutzerdefinierte_variablen_vc">
967 Benutzerdefinierte Kunden- und Lieferantenvariablen:</a></h3>
970 Die vom Benutzer definierten Variablen für Kunden und
971 Lieferanten stehen beim Ausdruck von Einkaufs- und Verkaufsbelegen
972 ebenfalls zur Verfügung. Ihre Namen setzen sich aus dem
973 Präfix <code>vc_cvar_</code> und dem vom Benutzer festgelegten
974 Variablennamen zusammen.</p>
976 <p>Beispiel: Der Benutzer hat eine Variable
977 namens <code>number_of_employees</code> definiert, die die Anzahl
978 der Mitarbeiter des Unternehmens enthält. Diese Variable steht
979 dann unter dem Namen <code>vc_cvar_number_of_employees</code> zur
982 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
983 zum Inhaltsverzeichnis</a></small><br>
986 <h2><a name="dunning">Variablen in Mahnungen und Rechnungen über Mahngebühren</a></h2>
988 <h3><a name="dunning_vorlagennamen">Namen der Vorlagen</a></h3>
990 <p>Die Namen der Vorlagen werden im System-Menü vom Benutzer
991 eingegeben. Wird für ein Mahnlevel die Option zur automatischen
992 Erstellung einer Rechnung über die Mahngebühren und Zinsen
993 aktiviert, so wird der Name der Vorlage für diese Rechnung aus
994 dem Vorlagenname für diese Mahnstufe mit dem
995 Zusatz <code>_invoice</code> gebildet. Weiterhin werden die
996 Kürzel für die ausgewählte Sprache und den
997 ausgewählten Drucker angehängt.</p>
999 <h3><a name="dunning_allgemein">Allgemeine Variablen in Mahnungen:</a></h3>
1001 <p>Die Variablen des Verkäufers stehen wie gewohnt
1002 als <code>employee_...</code> zur Verfügung. Die Adressdaten des
1003 Kunden stehen als Variablen <code>name</code>, <code>street</code>,
1004 <code>zipcode</code>, <code>city</code>, <code>country</code>,
1005 <code>department_1</code>, <code>department_2</code>, und
1006 <code>email</code> zur Verfügung.
1009 <p>Weitere Variablen beinhalten:</p>
1013 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
1015 <td><code>dunning_date</code></td>
1016 <td>Datum der Mahnung</td>
1019 <td><code>dunning_duedate</code></td>
1020 <td>Fälligkeitsdatum für diese Mahhnung</td>
1023 <td><code>dunning_id</code></td>
1024 <td>Mahnungsnummer</td>
1027 <td><code>fee</code></td>
1028 <td>Kummulative Mahngebühren</td>
1031 <td><code>interest_rate</code></td>
1032 <td>Zinssatz per anno in Prozent</td>
1035 <td><code>total_amount</code></td>
1036 <td>Gesamter noch zu zahlender Betrag als <code>fee</code> + <code>total_interest</code> + <code>total_open_amount</code></td>
1039 <td><code>total_interest</code></td>
1040 <td>Zinsen per anno über alle Rechnungen</td>
1043 <td><code>total_open_amount</code></td>
1044 <td>Summe über alle offene Beträge der Rechnungen</td>
1049 <h3><a name="dunning_details">
1050 Variablen für jede gemahnte Rechnung in einer Mahnung:</a></h3>
1054 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
1056 <td><code>dn_amount</code></td>
1057 <td>Rechnungssumme (brutto)</td>
1060 <td><code>dn_duedate</code></td>
1061 <td>Originales Fälligkeitsdatum der Rechnung</td>
1064 <td><code>dn_dunning_date</code></td>
1065 <td>Datum der Mahnung</td>
1068 <td><code>dn_dunning_duedate</code></td>
1069 <td>Fälligkeitsdatum der Mahnung</td>
1072 <td><code>dn_fee</code></td>
1073 <td>Kummulative Mahngebühr</td>
1076 <td><code>dn_interest</code></td>
1077 <td>Zinsen per anno für diese Rechnung</td>
1080 <td><code>dn_invnumber</code></td>
1081 <td>Rechnungsnummer</td>
1084 <td><code>dn_linetotal</code></td>
1085 <td>Noch zu zahlender Betrag (ergibt sich aus <code>dn_open_amount + dn_fee + dn_interest</code>)</td>
1088 <td><code>dn_netamount</code></td>
1089 <td>Rechnungssumme (netto)</td>
1092 <td><code>dn_open_amount</code></td>
1093 <td>Offener Rechnungsbetrag</td>
1096 <td><code>dn_ordnumber</code></td>
1097 <td>Bestellnummer</td>
1100 <td><code>dn_transdate</code></td>
1101 <td>Rechnungsdatum</td>
1106 <h3><a name="dunning_invoice">Variablen in automatisch erzeugten
1107 Rechnungen über Mahngebühren</a></h3>
1109 <p>Die Variablen des Verkäufers stehen wie gewohnt
1110 als <code>employee_...</code> zur Verfügung. Die Adressdaten des
1111 Kunden stehen als Variablen <code>name</code>, <code>street</code>,
1112 <code>zipcode</code>, <code>city</code>, <code>country</code>,
1113 <code>department_1</code>, <code>department_2</code>, und
1114 <code>email</code> zur Verfügung.
1117 <p>Weitere Variablen beinhalten:</p>
1121 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
1123 <td><code>duedate</code></td>
1124 <td>Fälligkeitsdatum der Rechnung</td>
1127 <td><code>dunning_id</code></td>
1128 <td>Mahnungsnummer</td>
1131 <td><code>fee</code></td>
1132 <td>Mahngebühren</td>
1135 <td><code>interest</code></td>
1139 <td><code>invamount</code></td>
1140 <td>Rechnungssumme (ergibt sich aus <code>fee + interest</code>)</td>
1143 <td><code>invdate</code></td>
1144 <td>Rechnungsdatum</td>
1147 <td><code>invnumber</code></td>
1148 <td>Rechnungsnummer</td>
1153 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
1154 zum Inhaltsverzeichnis</a></small><br>
1157 <h2><a name="anderevorlagen">
1158 Variablen in anderen Vorlagen</a></h2>
1160 <p>Die Variablen in anderen Vorlagen sind ähnlich wie in der
1161 Rechnung. Allerdings heißen die Variablen, die mit <code>inv</code>
1162 beginnen, jetzt anders. Bei den Angeboten fangen sie mit <code>quo</code>
1163 für "quotation" an: <code>quodate</code> für Angebotsdatum
1164 etc. Bei Bestellungen wiederum fangen sie mit <code>ord</code> für
1165 "order" an: <code>ordnumber</code> für Bestellnummer etc.</p>
1167 <p>Manche Variablen sind in anderen Vorlagen hingegen gar nicht vorhanden wie
1168 z.B. die für bereits verbuchte Zahlungseingänge. Dies sind
1169 Variablen, die vom Geschäftsablauf her in der entsprechenden Vorlage
1170 keine Bedeutung haben oder noch nicht belegt sein können.</p>
1172 <p>Im Folgenden werden nur wichtige Unterschiede zu den Variablen in
1173 Rechnungen aufgeführt.</p>
1175 <h3><a name="anderevorlagen_quotations">Angebote und Preisanfragen</a></h3>
1179 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
1181 <td><code>quonumber</code></td>
1182 <td>Angebots- bzw. Anfragenummer</td>
1185 <td><code>reqdate</code></td>
1186 <td>Gültigkeitsdatum (bei Angeboten) bzw. Lieferdatum (bei Preisanfragen)</td>
1189 <td><code>transdate</code></td>
1190 <td>Angebots- bzw. Anfragedatum</td>
1195 <h3><a name="anderevorlagen_orders">Auftragsbestätigungen und Lieferantenaufträge</a></h3>
1199 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
1201 <td><code>ordnumber</code></td>
1202 <td>Auftragsnummer</td>
1205 <td><code>reqdate</code></td>
1206 <td>Lieferdatum</td>
1209 <td><code>transdate</code></td>
1210 <td>Auftragsdatum</td>
1215 <h3><a name="anderevorlagen_delivery_orders">Lieferscheine (Verkauf und Einkauf)</a></h3>
1219 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
1221 <td><code>cusordnumber</code></td>
1222 <td>Bestellnummer des Kunden (im Verkauf) bzw. Bestellnummer des Lieferanten (im Einkauf)</td>
1225 <td><code>donumber</code></td>
1226 <td>Lieferscheinnummer</td>
1229 <td><code>transdate</code></td>
1230 <td>Lieferscheindatum</td>
1235 <p>Für jede Position eines Lieferscheines gibt es ein Unterarray mit
1236 den Informationen darüber, von welchem Lager und Lagerplatz aus die
1237 Waren verschickt wurden (Verkaufslieferscheine) bzw. auf welchen
1238 Lagerplatz sie eingelagert wurden. Diese müssen mittels
1239 einer <code>foreach</code>-Schleife ausgegeben werden. Diese
1244 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
1246 <td><code>si_bin</code></td>
1250 <td><code>si_chargenumber</code></td>
1251 <td>Chargennummer</td>
1254 <td><code>si_bestbefore</code></td>
1255 <td>Mindesthaltbarkeit</td>
1258 <td><code>si_number</code></td>
1259 <td>Artikelnummer</td>
1262 <td><code>si_qty</code></td>
1263 <td>Anzahl bzw. Menge</td>
1266 <td><code>si_runningnumber</code></td>
1267 <td>Positionsnummer (1, 2, 3 etc)</td>
1270 <td><code>si_unit</code></td>
1274 <td><code>si_warehouse</code></td>
1280 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
1281 zum Inhaltsverzeichnis</a></small><br>
1284 <h2><a name="bloecke">
1285 Blöcke, bedingte Anweisungen und Schleifen</a></h2>
1287 <p>Der Parser kennt neben den Variablen einige weitere Konstrukte,
1288 die gesondert behandelt werden. Diese sind wie Variablennamen in
1289 spezieller Weise markiert: <code><%anweisung%>
1290 ... <%end%></code></p>
1292 <p>Anmerkung zum <code><%end%></code>: Der besseren
1293 Verständlichkeit halber kann man nach dem <code>end</code> noch
1294 beliebig weitere Wörter schreiben, um so zu markieren, welche
1295 Anweisung (z.B. <code>if</code> oder <code>foreach</code>) damit
1296 abgeschlossen wird.</p>
1298 <p>Beispiel: Lautet der Beginn eines Blockes
1299 z.B. <code class="blue"><%if type ==
1300 "sales_quotation"%></code>, so könnte er mit
1301 <code class="blue"><%end%></code> genauso abgeschlossen werden
1303 <code class="blue"><%end if%></code> oder auch
1304 <code class="blue"><%end type ==
1305 "sales_quotation"%></code>.</p>
1307 <h3><a name="bloecke_if">Der <code>if</code>-Block</a></h3>
1309 <p class="blue"><code><%if variablenname%><br>
1311 <%end%></code></p>
1313 <p>Eine normale "if-then"-Bedingung. Die Zeilen zwischen
1314 dem "if" und dem "end" werden nur ausgegeben,
1315 wenn die Variable "variablenname" gesetzt und ungleich 0
1318 <p>Die Bedingung kann auch negiert werden, indem das Wort
1319 "not" nach dem "if" verwendet
1320 wird. Beispiel: <code class="blue"><%if not
1321 cp_greeting%></code></p>
1323 <p>Zusätzlich zu dem einfachen Test, ob eine Variable gesetzt ist
1324 oder nicht, bietet dieser Block auch die Möglichkeit, den Inhalt
1325 einer Variablen mit einer festen Zeichenkette oder einer anderen
1326 Variablen zu vergleichen. Ob der Vergleich mit einer Zeichenkette
1327 oder einer anderen Variablen vorgenommen wird, hängt davon ab, ob
1328 die rechte Seite des Vergleichsoperators in Anführungszeichen
1329 gesetzt wird (Vergleich mit Zeichenkette) oder nicht (Vergleich mit
1330 anderer Variablen). Zwei Beispiele, die beide Vergleiche zeigen:</p>
1332 <p><code class="blue"><%if var1 == "Wert"%></code>
1333 testet die Variable "var1" auf Übereinstimmung mit der
1334 Zeichenkette "Wert". Mittels "!=" anstelle von
1335 "==" würde auf Ungleichheit getestet.</p>
1337 <p><code class="blue"><%if var1 == var2%></code> testet die
1338 Variable "var1" auf Übereinstimmung mit der Variablen
1339 "var2". Mittels "!=" anstelle von "=="
1340 würde auf Ungleichheit getestet.</p>
1342 <p>Erfahrere Benutzer können neben der Tests auf (Un-)Gleichheit auch
1343 Tests auf Übereinstimmung mit regulären Ausdrücken ohne
1344 Berücksichtung der Groß- und Kleinschreibung durchführen. Dazu dient
1345 dieselbe Syntax wie oben nur mit "=~" und "!~"
1346 als Vergleichsoperatoren.</p>
1348 <p>Beispiel für einen Test, ob die Variable "intnotes"
1349 (interne Bemerkungen) das Wort "schwierig" enthält:
1350 <code class="blue"><%if intnotes =~
1351 "schwierig"%></code></p>
1353 <h3><a name="bloecke_foreach">Die <code>foreach</code>-Schleife</a></h3>
1355 <p class="blue"><code><%foreach variablenname%><br>
1357 <%end%></code></p>
1359 <p>Fügt die Zeilen zwischen den beiden Anweisungen so oft ein, wie das
1360 Perl-Array der Variablen "variablenname" Elemente enthät. Dieses
1361 Konstrukt wird zur Ausgabe der einzelnen Posten einer Rechnung / eines
1362 Angebots sowie zur Ausgabe der Steuern benutzt. In jedem Durchlauf werden
1363 die <a href="dokumentenvorlagen-und-variablen.html#invoice_posten">zeilenbezogenen
1364 Variablen</a> jeweils auf den Wert für die aktuelle Position
1367 <p>Die Syntax sieht normalerweise wie folgt aus:</p>
1369 <p class="blue"><code><%foreach number%><br>
1370 Position: <%runningnumber%><br>
1371 Anzahl: <%qty%><br>
1372 Artikelnummer: <%number%><br>
1373 Beschreibung: <%description%><br>
1375 <%end%></code></p>
1377 <p>Besonderheit in OpenDocument-Vorlagen: Tritt ein
1378 <code><%foreach%></code>-Block innerhalb einer Tabellenzelle
1379 auf, so wird die komplette Tabellenzeile so oft wiederholt wie
1380 notwendig. Tritt er außerhalb auf, so wird nur der Inhalt
1381 zwischen <code><%foreach%></code> und <code><%end%></code>
1382 wiederholt, nicht aber die komplette Zeile, in der er steht.</p>
1384 <h3><a name="bloecke_pagebreak">Der <code>pagebreak</code>-Block</a></h3>
1386 <p class="blue"><code><%pagebreak ZpZ ZeS ZzS%><br>
1388 <%end%></code></p>
1390 <p>Dieser Block existiert nur in LaTeX-Vorlagen.</p>
1392 <p>Dieser Block legt das Verhalten beim manuellen Einfügen eines
1393 Seitenumbruchs fest. Normalerweise bricht LaTeX die Seiten selber um. Beim
1394 Rechnungsdruck ist das oft nicht gewünscht, oder man möchte im
1395 Falle eines Seitenumbruchs den Übertrag etc. mit ausgeben. Deswegen
1396 versucht der Parser, manuell Seitenumbrüche einzufügen,
1397 während er einen <code>foreach</code>-Block auswertet, weil hier die
1398 manuellen Seitenumbrüche erforderlich werden. Dafür benötigt
1399 der Parser aber drei Informationen:</p>
1403 <li>Wieviele Zeichen passen bei der Variablen "description" pro Posten
1404 in eine Zeile? Das ist der Parameter "ZpZ" (Zeichen pro Zeile).</li>
1405 <li>Wieviele Zeilen/Posten passen auf die erste Seite? Das
1406 ist der Parameter "ZeS" (Zeilen erste Seite).</li>
1407 <li>Wieviele Zeilen/Posten passen auf die zweite und alle nachfolgenden
1408 Seiten? Das ist der Parameter "ZzS" (Zeilen zweite Seite).</li>
1412 <p>Diese Parameter sind drei Zahlen, die manuell durch Verwendung von langen
1413 Warenbezeichnungen und Rechnungen mit vielen Posten bestimmt werden
1416 <p>Üblicherweise wird in diesem Block zuerst die aktuelle Tabelle
1417 geschlossen, eventuell Text eingefügt (z.B. "Fortsetzung auf der
1418 nächsten Seite"), dann ein Seitenumbruch erzwungen, eventuell Text
1419 eingefügt (z.B. "Übertrag von der vorherigen Seite:
1420 <%sumcarriedforward%> EUR") und die Tabelle wieder geöffnet.</p>
1422 <p>Wird kein manueller Seitenumbruch gewüscht, so kann dieser Block
1423 komplett entfallen.</p>
1425 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
1426 zum Inhaltsverzeichnis</a></small><br>
1429 <h2><a name="markup">
1430 Markup-Code, der innerhalb von Formularen zur Textformatierung
1431 verwendet werden kann</a></h2>
1433 <p>Wenn der Benutzer innhalb von Formularen in Lx-Office Text anders
1434 formatiert haben möchte, so ist dies begrenzt möglich. Lx-Office
1435 unterstützt die Textformatierung mit HTML-ähnlichen Tags. Der
1436 Benutzer kann z.B. bei der Artikelbeschreibung auf einer Rechnung Teile des
1437 Texts zwischen Start- und Endtags setzen. Dieser Teil wird dann automatisch
1438 in Anweisungen für das ausgewählte Vorlagenformat (HTML oder
1439 PDF über LaTeX) umgesetzt.</p>
1441 <p>Die unterstützen Formatierungen sind:</p>
1445 <tr><th>Formatierung</th><th>Auswirkung</th></tr>
1447 <td><code><b>Text</b></code></td>
1448 <td>Text wird in <b>fettdruck</b> gesetzt.</td>
1451 <td><code><i>Text</i></code></td>
1452 <td>Text wird <i>kursiv</i> gesetzt.</td>
1455 <td><code><u>Text</u></code></td>
1456 <td>Text wird <u>unterstrichen</u>.</td>
1459 <td><code><s>Text</s></code></td>
1460 <td>Text wird <s>durchgestrichen</s>. Diese Formatierung ist nicht bei der
1461 Ausgabe als PDF über LaTeX verfügbar.</td>
1464 <td><code><pagebreak></code></td>
1465 <td>Erzwingt einen Seitenumbruch (siehe unten).</td>
1470 <p>Eine Besonderheit ist der Befehl <code><pagebreak></code>,
1471 der nur in LaTeX-Vorlagen funktioniert und in anderen Vorlagen
1472 einfach gelöscht wird. Dieser erzwingt unabhängig von der
1474 href="dokumentenvorlagen-und-variablen.html#bloecke_pagebreak">pagebreak-Block</a>
1475 voreingestellten Werte einen Seitenumbruch nach der aktuellen
1476 Rechnungsposition. Dementsprechend funktioniert er nur innerhalb von
1477 <code><%foreach...%></code>-Schleifen. Weiterhin benötigt
1480 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
1481 zum Inhaltsverzeichnis</a></small><br>