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#allgemeine_variablen">
52 Allgemeine Variablen, die in allen Vorlagen vorhanden sind</a><br>
55 <li><a href="dokumentenvorlagen-und-variablen.html#allgemein_stammdaten">
56 Stammdaten von Kunden und Lieferanten</a></li>
58 <li><a href="dokumentenvorlagen-und-variablen.html#allgemein_bearbeiter">
59 Informationen über den Bearbeiter</a></li>
61 <li><a href="dokumentenvorlagen-und-variablen.html#allgemein_verkaeufer">
62 Informationen über den Verkäufer</a></li>
64 <li><a href="dokumentenvorlagen-und-variablen.html#allgemein_steuern">
65 Variablen für jede Steuer</a></li>
69 <li><a href="dokumentenvorlagen-und-variablen.html#invoice">
70 Variablen in Rechnungen</a>
73 <li><a href="dokumentenvorlagen-und-variablen.html#invoice_allgemein">
74 Allgemeine Variablen</a></li>
76 <li><a href="dokumentenvorlagen-und-variablen.html#invoice_posten">
77 Variablen für jeden Posten auf der Rechnung</a></li>
79 <li><a href="dokumentenvorlagen-und-variablen.html#invoice_zahlungen">
80 Variablen für die Zahlungseingänge</a></li>
84 <li><a href="dokumentenvorlagen-und-variablen.html#dunning">
85 Variablen in Mahnungen</a>
88 <li><a href="dokumentenvorlagen-und-variablen.html#dunning_allgemein">
89 Allgemeine Variablen</a></li>
91 <li><a href="dokumentenvorlagen-und-variablen.html#dunning_details">
92 Variablen für jede gemahnte Rechnung</a></li>
96 <li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen">
97 Variablen in anderen Vorlagen</a></li>
99 <li><a href="dokumentenvorlagen-und-variablen.html#bloecke">
100 Blöcke, bedingte Anweisungen und Schleifen</a>
103 <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_ifnot">
104 Der <code>if not</code>-Block</a></li>
106 <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_if">
107 Der <code>if</code>-Block</a></li>
109 <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_foreach">
110 Die <code>foreach</code>-Schleife</a></li>
112 <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_pagebreak">
113 Der <code>pagebreak</code>-Block</a></li>
117 <li><a href="dokumentenvorlagen-und-variablen.html#markup">
118 Markup-Code, der innerhalb von Formularen zur Textformatierung verwendet
125 <h2><a name="einfuehrung">Einführung</a></h2>
127 <p>Dies ist eine Auflistung der Standard-Dokumentenvorlagen und aller
128 zur Bearbeitung verfügbaren Variablen. Eine Variable wird in
129 einer Vorlage durch ihren Inhalt ersetzt, wenn sie in der Form
130 <code><%variablenname%></code> verwendet wird.</p>
132 <p>Früher wurde hier nur über LaTeX gesprochen. Inzwischen
133 unterstützt Lx-Office aber auch OpenDocument-Vorlagen. Sofern
134 es nicht ausdrücklich eingeschränkt wird, gilt das im
135 Folgenden gesagte für alle Vorlagenarten.</p>
137 <p>Insgesamt sind technisch gesehen eine ganze Menge mehr Variablen
138 verfügbar als hier aufgelistet werden. Die meisten davon können
139 allerdings innerhalb einer solchen Vorlage nicht sinnvoll verwendet
140 werden. Wenn eine Auflistung dieser Variablen gewollt ist, so kann diese wie
141 folgt erhalten werden:</p>
145 <li><code>SL/Form.pm</code> öffnen und am Anfang die Zeile
146 <pre>"use Data::Dumper;"</pre> einfügen.</li>
148 <li>In <code>Form.pm</code> die Funktion <code>parse_template</code>
149 suchen und hier die Zeile <pre>print(STDERR Dumper($self));</pre>
152 <li>Einmal per Browser die gewünschte Vorlage "benutzen", z.B. ein PDF
153 für eine Rechnung erzeugen.</li>
155 <li>Im <code>error.log</code> vom Apache steht die Ausgabe der Variablen
156 <code>$self</code> in der Form <code>'key' => 'value',</code>. Alle
157 <code>key</code>s sind verfügbar.</li>
161 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
162 zum Inhaltsverzeichnis</a></small><br>
165 <h2><a name="zuordnung_dateinamen">
166 Zuordnung von den Dateinamen zu den Funktionen</a></h2>
168 <p>Diese folgende kurze Auflistung zeigt, welche Vorlage bei welcher
169 Funktion ausgelesen wird. Dabei ist die Dateiendung ".ext"
170 geeignet zu ersetzen: ".tex" fü LaTeX-Vorlagen und
171 ".odt" für OpenDocument-Vorlagen.</p>
174 <li><code>bin_list.ext</code> -- Lagerliste</li>
175 <li><code>check.ext</code> -- ?</li>
176 <li><code>invoice.ext</code> -- Rechnung</li>
177 <li><code>packing_list.ext</code> -- Verpackungsliste</li>
178 <li><code>pick_list.ext</code> -- Sammelliste</li>
179 <li><code>purcharse_order.ext</code> -- Bestellung an Lieferanten</li>
180 <li><code>request_quotation.ext</code> -- Anfrage an Lieferanten</li>
181 <li><code>sales_order.ext</code> -- Bestellung</li>
182 <li><code>sales_quotation.ext</code> -- Angebot an Kunden</li>
185 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
186 zum Inhaltsverzeichnis</a></small><br>
189 <h2><a name="allgemeine_variablen">
190 Allgemeine Variablen, die in allen Vorlagen vorhanden sind</a></h2>
192 <h3><a name="allgemein_stammdaten">
193 Stammdaten von Kunden und Lieferanten:</a></h3>
197 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
199 <td><code>account_number</code></td>
203 <td><code>bank</code></td>
204 <td>Name der Bank</td>
207 <td><code>bank_code</code></td>
208 <td>Bankleitzahl</td>
211 <td><code>business</code></td>
212 <td>Kunden-/Lieferantentyp</td>
215 <td><code>city</code></td>
219 <td><code>contact</code></td>
223 <td><code>country</code></td>
227 <td><code>cp_email</code></td>
228 <td>Email des Ansprechpartners</td>
231 <td><code>cp_givenname</code></td>
232 <td>Vorname des Ansprechpartners</td>
235 <td><code>cp_greeting</code></td>
236 <td>Anrede des Ansprechpartners</td>
239 <td><code>cp_name</code></td>
240 <td>Name des Ansprechpartners</td>
243 <td><code>cp_phone1</code></td>
244 <td>Telefonnummer 1 des Ansprechpartners</td>
247 <td><code>cp_phone2</code></td>
248 <td>Telefonnummer 2 des Ansprechpartners</td>
251 <td><code>cp_title</code></td>
252 <td>Titel des Ansprechpartners</td>
255 <td><code>creditlimit</code></td>
259 <td><code>customeremail</code></td>
260 <td>Email des Kunden; nur für Kunden</td>
263 <td><code>customerfax</code></td>
264 <td>Faxnummer des Kunden; nur für Kunden</td>
267 <td><code>customernotes</code></td>
268 <td>Bemerkungen beim Kunden; nur für Kunden</td>
271 <td><code>customernumber</code></td>
272 <td>Kundennummer; nur für Kunden</td>
275 <td><code>customerphone</code></td>
276 <td>Telefonnummer des Kunden; nur für Kunden</td>
279 <td><code>discount</code></td>
283 <td><code>email</code></td>
284 <td>Emailadresse</td>
287 <td><code>fax</code></td>
291 <td><code>homepage</code></td>
295 <td><code>language</code></td>
299 <td><code>name</code></td>
303 <td><code>payment_terms</code></td>
304 <td>Zahlungskonditionen</td>
307 <td><code>phone</code></td>
308 <td>Telefonnummer</td>
311 <td><code>shiptocity</code></td>
312 <td>Stadt (Lieferadresse)
313 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
316 <td><code>shiptocontact</code></td>
317 <td>Kontakt (Lieferadresse)
318 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
321 <td><code>shiptocountry</code></td>
322 <td>Land (Lieferadresse)
323 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
326 <td><code>shiptodepartment1</code></td>
327 <td>Abteilung 1 (Lieferadresse)
328 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
331 <td><code>shiptodepartment2</code></td>
332 <td>Abteilung 2 (Lieferadresse)
333 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
336 <td><code>shiptoemail</code></td>
337 <td>Email (Lieferadresse)
338 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
341 <td><code>shiptofax</code></td>
342 <td>Fax (Lieferadresse)
343 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
346 <td><code>shiptoname</code></td>
347 <td>Firmenname (Lieferadresse)
348 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
351 <td><code>shiptophone</code></td>
352 <td>Telefonnummer (Lieferadresse)
353 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
356 <td><code>shiptostreet</code></td>
357 <td>Straße und Hausnummer (Lieferadresse)
358 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
361 <td><code>shiptozipcode</code></td>
362 <td>Postleitzahl (Lieferadresse)
363 <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
366 <td><code>street</code></td>
367 <td>Straße und Hausnummer</td>
370 <td><code>taxnumber</code></td>
371 <td>Steuernummer</td>
374 <td><code>vendoremail</code></td>
375 <td>Email des Lieferanten; nur für Lieferanten</td>
378 <td><code>vendorfax</code></td>
379 <td>Faxnummer des Lieferanten; nur für Lieferanten</td>
382 <td><code>vendornotes</code></td>
383 <td>Bemerkungen beim Lieferanten; nur für Lieferanten</td>
386 <td><code>vendornumber</code></td>
387 <td>Lieferantennummer; nur für Lieferanten</td>
390 <td><code>vendorphone</code></td>
391 <td>Telefonnummer des Lieferanten; nur für Lieferanten</td>
394 <td><code>zipcode</code></td>
395 <td>Postleitzahl</td>
400 <p><a name="anmerkung_shipto"><em>Anmerkung</em></a>: Sind die
401 <code>shipto*</code>-Felder in den Stammdaten nicht eingetragen, so haben
402 die Variablen <code>shipto*</code> den gleichen Wert wie die die
403 entsprechenden Variablen der Lieferdaten. Das bedeutet, dass sich einige
404 <code>shipto*</code>-Variablen so nicht in den Stammdaten wiederfinden
405 sondern schlicht Kopien der Lieferdatenvariablen sind
406 (z.B. <code>shiptocontact</code>).</p>
408 <h3><a name="allgemein_bearbeiter">
409 Informationen über den Bearbeiter:</a></h3>
413 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
415 <td><code>employee_address</code></td>
419 <td><code>employee_businessnumber</code></td>
420 <td>Firmennummer</td>
423 <td><code>employee_company</code></td>
427 <td><code>employee_co_ustid</code></td>
428 <td>Usatzsteuer-Identifikationsnummer</td>
431 <td><code>employee_duns</code></td>
435 <td><code>employee_email</code></td>
439 <td><code>employee_fax</code></td>
443 <td><code>employee_name</code></td>
447 <td><code>employee_signature</code></td>
451 <td><code>employee_taxnumber</code></td>
452 <td>Steuernummer</td>
455 <td><code>employee_tel</code></td>
456 <td>Telefonnummer</td>
461 <h3><a name="allgemein_verkaeufer">
462 Informationen über den Verkäfer (nur bei Verkaufsmasken):</a></h3>
466 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
468 <td><code>salesman_address</code></td>
472 <td><code>salesman_businessnumber</code></td>
473 <td>Firmennummer</td>
476 <td><code>salesman_company</code></td>
480 <td><code>salesman_co_ustid</code></td>
481 <td>Usatzsteuer-Identifikationsnummer</td>
484 <td><code>salesman_duns</code></td>
488 <td><code>salesman_email</code></td>
492 <td><code>salesman_fax</code></td>
496 <td><code>salesman_name</code></td>
500 <td><code>salesman_signature</code></td>
504 <td><code>salesman_taxnumber</code></td>
505 <td>Steuernummer</td>
508 <td><code>salesman_tel</code></td>
509 <td>Telefonnummer</td>
514 <h3><a name="allgemein_steuern">
515 Variablen für die einzelnen Steuern:</a></h3>
519 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
521 <td><code>tax</code></td>
525 <td><code>taxbase</code></td>
526 <td>zu versteuernder Betrag</td>
529 <td><code>taxdescription</code></td>
530 <td>Name der Steuer</td>
533 <td><code>taxrate</code></td>
539 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
540 zum Inhaltsverzeichnis</a></small><br>
543 <h2><a name="invoice">Variablen in Rechnungen</a></h2>
545 <h3><a name="invoice_allgemein">Allgemeine Variablen:</a></h3>
549 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
551 <td><code>creditremaining</code></td>
552 <td>Verbleibender Kredit</td>
555 <td><code>currency</code></td>
559 <td><code>cusordnumber</code></td>
560 <td>Bestellnummer beim Kunden</td>
563 <td><code>deliverydate</code></td>
567 <td><code>duedate</code></td>
568 <td>Fälligkeitsdatum</td>
571 <td><code>globalprojectnumber</code></td>
572 <td>Projektnummer des ganzen Beleges</td>
575 <td><code>intnotes</code></td>
576 <td>Interne Bemerkungen</td>
579 <td><code>invdate</code></td>
580 <td>Rechnungsdatum</td>
583 <td><code>invnumber</code></td>
584 <td>Rechnungsnummer</td>
587 <td><code>invtotal</code></td>
588 <td>gesamter Rechnungsbetrag</td>
591 <td><code>notes</code></td>
592 <td>Bemerkungen der Rechnung</td>
595 <td><code>orddate</code></td>
596 <td>Auftragsdatum</td>
599 <td><code>ordnumber</code></td>
600 <td>Auftragsnummer, wenn die Rechnung aus einem Auftrag erstellt wurde</td>
603 <td><code>payment_terms</code></td>
604 <td>Zahlungskonditionen</td>
607 <td><code>quodate</code></td>
608 <td>Angebotsdatum</td>
611 <td><code>quonumber</code></td>
612 <td>Angebotsnummer</td>
615 <td><code>shippingpoint</code></td>
619 <td><code>shipvia</code></td>
620 <td>Transportmittel</td>
623 <td><code>subtotal</code></td>
624 <td>Zwischensumme aller Posten ohne Steuern</td>
627 <td><code>sumcarriedforward</code></td>
628 <td>Zwischensumme aller bisher ausgegebenen Posten. Sollte nur in einem
629 <a href="dokumentenvorlagen-und-variablen.html#bloecke_pagebreak">
630 <code>pagebreak</code></a>-Block verwendet werden.</td>
633 <td><code>total</code></td>
634 <td>Restsumme der Rechnung (Summe abzüglich bereits bezahlter Posten)</td>
637 <td><code>transaction_description</code></td>
638 <td>Vorgangsbezeichnung</td>
641 <td><code>transdate</code></td>
642 <td>Auftragsdatum wenn die Rechnung aus einem Auftrag erstellt wurde</td>
647 <h3><a name="invoice_posten">
648 Variablen für jeden Posten auf der Rechnung:</a></h3>
652 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
654 <td><code>assembly</code></td>
658 <td><code>bin</code></td>
662 <td><code>deliverydate_oe</code></td>
666 <td><code>description</code></td>
667 <td>Artikelbeschreibung</td>
670 <td><code>discount</code></td>
671 <td>Rabatt als Betrag</td>
674 <td><code>linetotal</code></td>
675 <td>Zeilensumme (Anzahl * Einzelpreis)</td>
678 <td><code>listprice</code></td>
682 <td><code>netprice</code></td>
686 <td><code>number</code></td>
687 <td>Artikelnummer</td>
690 <td><code>ordnumber_oe</code></td>
691 <td>Auftragsnummer des Originalauftrags, wenn die Rechnung aus einem Sammelauftrag erstellt wurde</td>
694 <td><code>p_discount</code></td>
695 <td>Rabatt in Prozent</td>
698 <td><code>partnotes</code></td>
699 <td>Die beim Artikel gespeicherten Bemerkungen</td>
702 <td><code>partsgroup</code></td>
706 <td><code>projectnumber</code></td>
707 <td>Projektnummer</td>
710 <td><code>qty</code></td>
714 <td><code>runningnumber</code></td>
715 <td>Position auf der Rechnung (1, 2, 3...)</td>
718 <td><code>sellprice</code></td>
719 <td>Verkaufspreis</td>
722 <td><code>serialnumber</code></td>
723 <td>Seriennummer</td>
726 <td><code>transdate_oe</code></td>
727 <td>Auftragsdatum des Originalauftrags, wenn die Rechnung aus einem Sammelauftrag erstellt wurde</td>
730 <td><code>unit</code></td>
736 <h3><a name="invoice_zahlungen">
737 Variablen für die einzelnen Zahlungseingänge:</a></h3>
741 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
743 <td><code>datepaid</code></td>
747 <td><code>memo</code></td>
751 <td><code>paid</code></td>
755 <td><code>source</code></td>
759 <td><code>exchangerate</code></td>
763 <td><code>forex</code></td>
769 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
770 zum Inhaltsverzeichnis</a></small><br>
773 <h2><a name="dunning">Variablen in Mahnungen</a></h2>
775 <h3><a name="dunning_allgemein">Allgemeine Variablen:</a></h3>
777 <p>Die Variablen des Verkäufers stehen wie gewohnt
778 als <code>employee_...</code> zur Verfügung. Die Adressdaten des
779 Kunden stehen als Variablen <code>name</code>, <code>street</code>,
780 <code>zipcode</code>, <code>city</code>, <code>country</code>,
781 <code>department_1</code>, <code>department_2</code>, und
782 <code>email</code> zur Verfügung.
785 <p>Weitere Variablen beinhalten:</p>
789 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
791 <td><code>dunning_date</code></td>
792 <td>Datum der Mahnung</td>
795 <td><code>dunning_duedate</code></td>
796 <td>Fälligkeitsdatum für diese Mahhnung</td>
799 <td><code>fee</code></td>
800 <td>Kummulative Mahngebühren</td>
803 <td><code>interest_rate</code></td>
804 <td>Zinssatz per anno in Prozent</td>
807 <td><code>total_amount</code></td>
808 <td>Gesamter noch zu zahlender Betrag als <code>fee</code> + <code>total_interest</code> + <code>total_open_amount</code></td>
811 <td><code>total_interest</code></td>
812 <td>Zinsen per anno über alle Rechnungen</td>
815 <td><code>total_open_amount</code></td>
816 <td>Summe über alle offene Beträge der Rechnungen</td>
821 <h3><a name="dunning_details">
822 Variablen für jede gemahnte Rechnung:</a></h3>
826 <tr><th>Variablenname</th><th>Bedeutung</th></tr>
828 <td><code>dn_amount</code></td>
829 <td>Rechnungssumme (brutto)</td>
832 <td><code>dn_duedate</code></td>
833 <td>Originales Fälligkeitsdatum der Rechnung</td>
836 <td><code>dn_dunning_date</code></td>
837 <td>Datum der Mahnung</td>
840 <td><code>dn_dunning_duedate</code></td>
841 <td>Fälligkeitsdatum der Mahnung</td>
844 <td><code>dn_fee</code></td>
845 <td>Kummulative Mahngebühr (ist die gleiche wie für die ganze Mahnung, da die Gebühr nur einmal pro Mahnung erhoben wird)</td>
848 <td><code>dn_interest</code></td>
849 <td>Zinsen per anno f&uum;r diese Rechnung</td>
852 <td><code>dn_invnumber</code></td>
853 <td>Rechnungsnummer</td>
856 <td><code>dn_netamount</code></td>
857 <td>Rechnungssumme (netto)</td>
860 <td><code>dn_open_amount</code></td>
861 <td>Offener Rechnungsbetrag</td>
864 <td><code>dn_ordnumber</code></td>
865 <td>Bestellnummer</td>
868 <td><code>dn_transdate</code></td>
869 <td>Rechnungsdatum</td>
874 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
875 zum Inhaltsverzeichnis</a></small><br>
878 <h2><a name="anderevorlagen">
879 Variablen in anderen Vorlagen</a></h2>
881 <p>Die Variablen in anderen Vorlagen sind ähnlich wie in der
882 Rechnung. Allerdings heißen die Variablen, die mit <code>inv</code>
883 beginnen, jetzt anders. Bei den Angeboten fangen sie mit <code>quo</code>
884 für "quotation" an: <code>quodate</code> für Angebotsdatum
885 etc. Bei Bestellungen wiederum fangen sie mit <code>ord</code> für
886 "order" an: <code>ordnumber</code> für Bestellnummer etc.</p>
888 <p>Manche Variablen sind in anderen Vorlagen hingegen gar nicht vorhanden wie
889 z.B. die für bereits verbuchte Zahlungseingänge. Dies sind
890 Variablen, die vom Geschäftsablauf her in der entsprechenden Vorlage
891 keine Bedeutung haben oder noch nicht belegt sein können.</p>
893 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
894 zum Inhaltsverzeichnis</a></small><br>
897 <h2><a name="bloecke">
898 Blöcke, bedingte Anweisungen und Schleifen</a></h2>
900 <p>Der Parser kennt neben den Variablen einige weitere Konstrukte, die
901 gesondert behandelt werden. Diese sind wie Variablennamen in spezieller
902 Weise markiert: <code><%anweisung%></code></p>
904 <h3><a name="bloecke_ifnot">Der <code>if not</code>-Block</a></h3>
906 <p class="blue"><code><%if not variablenname%><br>
908 <%end></code></p>
910 <p>Eine normale "if-not-then"-Bedingung. Die Zeilen zwischen dem "if not" und
911 dem "end" werden nur ausgegeben, wenn die Variable "variablenname" nicht
912 gesetzt oder gleich 0 ist.</p>
914 <h3><a name="bloecke_if">Der <code>if</code>-Block</a></h3>
916 <p class="blue"><code><%if variablenname%><br>
918 <%end></code></p>
920 <p>Eine normale "if-then"-Bedingung. Die Zeilen zwischen dem "if" und dem
921 "end" werden nur ausgegeben, wenn die Variable "variablenname" gesetzt und
924 <h3><a name="bloecke_foreach">Die <code>foreach</code>-Schleife</a></h3>
926 <p class="blue"><code><%foreach variablenname%><br>
928 <%end></code></p>
930 <p>Fügt die Zeilen zwischen den beiden Anweisungen so oft ein, wie das
931 Perl-Array der Variablen "variablenname" Elemente enthät. Dieses
932 Konstrukt wird zur Ausgabe der einzelnen Posten einer Rechnung / eines
933 Angebots sowie zur Ausgabe der Steuern benutzt. In jedem Durchlauf werden
934 die <a href="dokumentenvorlagen-und-variablen.html#invoice_posten">zeilenbezogenen
935 Variablen</a> jeweils auf den Wert für die aktuelle Position
938 <p>Die Syntax sieht normalerweise wie folgt aus:</p>
940 <p class="blue"><code><%foreach number%><br>
941 Position: <%runningnumber%><br>
942 Anzahl: <%qty%><br>
943 Artikelnummer: <%number%><br>
944 Beschreibung: <%description%><br>
946 <%end></code></p>
948 <p>Besonderheit in OpenDocument-Vorlagen: Tritt ein
949 <code><foreach></code>-Block innerhalb einer Tabellenzelle
950 auf, so wird die komplette Tabellenzeile so oft wiederholt wie
951 notwendig. Tritt er außerhalb auf, so wird nur der Inhalt
952 zwischen <code><foreach></code> und <code><end></code>
953 wiederholt, nicht aber die komplette Zeile, in der er steht.</p>
955 <h3><a name="bloecke_pagebreak">Der <code>pagebreak</code>-Block</a></h3>
957 <p class="blue"><code><%pagebreak ZpZ ZeS ZzS%><br>
959 <%end></code></p>
961 <p>Dieser Block existiert nur in LaTeX-Vorlagen.</p>
963 <p>Dieser Block legt das Verhalten beim manuellen Einfügen eines
964 Seitenumbruchs fest. Normalerweise bricht LaTeX die Seiten selber um. Beim
965 Rechnungsdruck ist das oft nicht gewünscht, oder man möchte im
966 Falle eines Seitenumbruchs den Übertrag etc. mit ausgeben. Deswegen
967 versucht der Parser, manuell Seitenumbrüche einzufügen,
968 während er einen <code>foreach</code>-Block auswertet, weil hier die
969 manuellen Seitenumbrüche erforderlich werden. Dafür benötigt
970 der Parser aber drei Informationen:</p>
974 <li>Wieviele Zeichen passen bei der Variablen "description" pro Posten
975 in eine Zeile? Das ist der Parameter "ZpZ" (Zeichen pro Zeile).</li>
976 <li>Wieviele Zeilen/Posten passen auf die erste Seite? Das
977 ist der Parameter "ZeS" (Zeilen erste Seite).</li>
978 <li>Wieviele Zeilen/Posten passen auf die zweite und alle nachfolgenden
979 Seiten? Das ist der Parameter "ZzS" (Zeilen zweite Seite).</li>
983 <p>Diese Parameter sind drei Zahlen, die manuell durch Verwendung von langen
984 Warenbezeichnungen und Rechnungen mit vielen Posten bestimmt werden
987 <p>Üblicherweise wird in diesem Block zuerst die aktuelle Tabelle
988 geschlossen, eventuell Text eingefügt (z.B. "Fortsetzung auf der
989 nächsten Seite"), dann ein Seitenumbruch erzwungen, eventuell Text
990 eingefügt (z.B. "Übertrag von der vorherigen Seite:
991 <%sumcarriedforward%> EUR") und die Tabelle wieder geöffnet.</p>
993 <p>Wird kein manueller Seitenumbruch gewüscht, so kann dieser Block
994 komplett entfallen.</p>
996 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
997 zum Inhaltsverzeichnis</a></small><br>
1000 <h2><a name="markup">
1001 Markup-Code, der innerhalb von Formularen zur Textformatierung
1002 verwendet werden kann</a></h2>
1004 <p>Wenn der Benutzer innhalb von Formularen in Lx-Office Text anders
1005 formatiert haben möchte, so ist dies begrenzt möglich. Lx-Office
1006 unterstützt die Textformatierung mit HTML-ähnlichen Tags. Der
1007 Benutzer kann z.B. bei der Artikelbeschreibung auf einer Rechnung Teile des
1008 Texts zwischen Start- und Endtags setzen. Dieser Teil wird dann automatisch
1009 in Anweisungen für das ausgewählte Vorlagenformat (HTML oder
1010 PDF über LaTeX) umgesetzt.</p>
1012 <p>Die unterstützen Formatierungen sind:</p>
1016 <tr><th>Formatierung</th><th>Auswirkung</th></tr>
1018 <td><code><b>Text</b></code></td>
1019 <td>Text wird in <b>fettdruck</b> gesetzt.</td>
1022 <td><code><i>Text</i></code></td>
1023 <td>Text wird <i>kursiv</i> gesetzt.</td>
1026 <td><code><u>Text</u></code></td>
1027 <td>Text wird <u>unterstrichen</u>.</td>
1030 <td><code><s>Text</s></code></td>
1031 <td>Text wird <s>durchgestrichen</s>. Diese Formatierung ist nicht bei der
1032 Ausgabe als PDF über LaTeX verfügbar.</td>
1035 <td><code><pagebreak></code></td>
1036 <td>Erzwingt einen Seitenumbruch (siehe unten).</td>
1041 <p>Eine Besonderheit ist der Befehl <code><pagebreak></code>,
1042 der nur in LaTeX-Vorlagen funktioniert und in anderen Vorlagen
1043 einfach gelöscht wird. Dieser erzwingt unabhängig von der
1045 href="dokumentenvorlagen-und-variablen.html#bloecke_pagebreak">pagebreak-Block</a>
1046 voreingestellten Werte einen Seitenumbruch nach der aktuellen
1047 Rechnungsposition. Dementsprechend funktioniert er nur innerhalb von
1048 <code><foreach...></code>-Schleifen. Weiterhin benötigt er kein
1051 <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
1052 zum Inhaltsverzeichnis</a></small><br>