Uebernahme der kompletten Version, so wie sie Philip als "Demo-Version" gezeigt hat...
[kivitendo-erp.git] / doc / dokumentenvorlagen-und-variablen.html
1 <html>
2  <head>
3   <title>Dokumentenvorlagen und verf&uuml;gbare Variablen</title>
4   <style type="text/css">
5   <!--
6 .blue { 
7            color: #000000;
8            background-color: #b0ecff;
9            border: 1px solid blue;
10            padding-left: 2px;
11            padding-right: 2px;
12            }
13
14 table {
15         color: #000000;
16         background-color: #fae8b8;
17         border: 1px solid #be5303;
18         border-collapse: collapse;
19         }
20
21 td { 
22      border: 1px solid #be5303;
23      padding: 3px;
24      }
25     -->
26   </style>
27
28  </head>
29
30 <body>
31
32  <h1>Dokumentenvorlagen und verf&uuml;gbare Variablen</h1>
33
34  <p>geschrieben von <a href="mailto:m.bunkus@linet-services.de">Moritz
35    Bunkus</a>. Version: $Id$ </p>
36
37  <hr>
38
39  <h2><a name="inhaltsverzeichnis">Inhaltsverzeichnis</a></h2>
40
41  <ol>
42   <li><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
43     Inhaltsverzeichnis</a></li>
44
45   <li><a href="dokumentenvorlagen-und-variablen.html#einfuehrung">Einf&uuml;hrung</a>
46   </li>
47
48   <li><a href="dokumentenvorlagen-und-variablen.html#zuordnung_dateinamen">
49     Zuordnung von Dateinamen zu den Funktionen</a></li>
50
51   <li><a href="dokumentenvorlagen-und-variablen.html#allgemeine_variablen">
52     Allgemeine Variablen, die in allen Vorlagen vorhanden sind</a><br>
53
54    <ol>
55     <li><a href="dokumentenvorlagen-und-variablen.html#allgemein_stammdaten">
56       Stammdaten von Kunden und Lieferanten</a></li>
57
58     <li><a href="dokumentenvorlagen-und-variablen.html#allgemein_verkaeufer">
59       Informationen &uuml;ber den Verk&auml;ufer</a></li>
60
61     <li><a href="dokumentenvorlagen-und-variablen.html#allgemein_steuern">
62       Variablen f&uuml;r jede Steuer</a></li>
63    </ol>
64   </li>
65
66   <li><a href="dokumentenvorlagen-und-variablen.html#invoice">
67     Variablen in Rechnungen</a>
68
69    <ol>
70     <li><a href="dokumentenvorlagen-und-variablen.html#invoice_allgemein">
71       Allgemeine Variablen</a></li>
72
73     <li><a href="dokumentenvorlagen-und-variablen.html#invoice_posten">
74       Variablen f&uuml;r jeden Posten auf der Rechnung</a></li>
75
76     <li><a href="dokumentenvorlagen-und-variablen.html#invoice_zahlungen">
77       Variablen f&uuml;r die Zahlungseing&auml;nge</a></li>
78    </ol>
79   </li>
80
81   <li><a href="dokumentenvorlagen-und-variablen.html#anderevorlagen">
82     Variablen in anderen Vorlagen</a></li>
83
84   <li><a href="dokumentenvorlagen-und-variablen.html#bloecke">
85     Bl&ouml;cke, bedingte Anweisungen und Schleifen</a>
86
87    <ol>
88     <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_einschr_latex">
89       Einsch&auml;nkungen f&uuml;r Bl&ouml;cke in LaTeX-Vorlagen</a></li>
90
91     <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_einschr_opendocument">
92       Einsch&auml;nkungen f&uuml;r Bl&ouml;cke in OpenDocument-Vorlagen</a></li>
93
94     <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_include">
95       Die <code>include</code>-Anweisung</a></li>
96
97     <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_ifnot">
98       Der <code>if not</code>-Block</a></li>
99
100     <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_if">
101       Der <code>if</code>-Block</a></li>
102
103     <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_foreach">
104       Die <code>foreach</code>-Schleife</a></li>
105
106     <li><a href="dokumentenvorlagen-und-variablen.html#bloecke_pagebreak">
107       Der <code>pagebreak</code>-Block</a></li>
108    </ol>
109   </li>
110
111   <li><a href="dokumentenvorlagen-und-variablen.html#markup">
112     Markup-Code, der innerhalb von Formularen zur Textformatierung verwendet
113     werden kann</a></li>
114
115  </ol>
116
117  <hr>
118
119  <h2><a name="einfuehrung">Einf&uuml;hrung</a></h2>
120
121  <p>Dies ist eine Auflistung der Standard-Dokumentenvorlagen und aller
122   zur Bearbeitung verf&uuml;gbaren Variablen. Eine Variable wird in
123   einer Vorlage durch ihren Inhalt ersetzt, wenn sie in der Form
124   <code>&lt;%variablenname%&gt;</code> verwendet wird.</p>
125
126  <p>Fr&uuml;her wurde hier nur &uuml;ber LaTeX gesprochen. Inzwischen
127   unterst&uuml;tzt Lx-Office aber auch OpenDocument-Vorlagen. Sofern
128   es nicht ausdr&uuml;cklich eingeschr&auml;nkt wird, gilt das im
129   Folgenden gesagte f&uuml;r alle Vorlagenarten.</p>
130
131  <p>Insgesamt sind technisch gesehen eine ganze Menge mehr Variablen
132   verf&uuml;gbar als hier aufgelistet werden. Die meisten davon k&ouml;nnen
133   allerdings innerhalb einer solchen Vorlage nicht sinnvoll verwendet
134   werden. Wenn eine Auflistung dieser Variablen gewollt ist, so kann diese wie
135   folgt erhalten werden:</p>
136
137  <ol>
138
139   <li><code>SL/Form.pm</code> &ouml;ffnen und am Anfang die Zeile
140    <pre>"use Data::Dumper;"</pre> einf&uuml;gen.</li>
141
142   <li>In <code>Form.pm</code> die Funktion <code>parse_template</code>
143    suchen und hier die Zeile <pre>print(STDERR Dumper($self));</pre>
144    einf&uuml;gen.</li>
145
146   <li>Einmal per Browser die gew&uuml;nschte Vorlage "benutzen", z.B. ein PDF
147    f&uuml;r eine Rechnung erzeugen.</li>
148
149   <li>Im <code>error.log</code> vom Apache steht die Ausgabe der Variablen
150    <code>$self</code> in der Form <code>'key' =&gt; 'value',</code>. Alle
151    <code>key</code>s sind verf&uuml;gbar.</li>
152
153  </ol>
154
155  <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
156    zum Inhaltsverzeichnis</a></small><br>
157  <hr>
158
159  <h2><a name="zuordnung_dateinamen">
160    Zuordnung von den Dateinamen zu den Funktionen</a></h2>
161
162  <p>Diese folgende kurze Auflistung zeigt, welche Vorlage bei welcher
163   Funktion ausgelesen wird. Dabei ist die Dateiendung &quot;.ext&quot;
164   geeignet zu ersetzen: &quot;.tex&quot; f&uuml; LaTeX-Vorlagen und
165   &quot;.odt&quot; f&uuml;r OpenDocument-Vorlagen.</p>
166
167  <ul>
168   <li><code>bin_list.ext</code> -- Lagerliste</li>
169   <li><code>check.ext</code> -- ?</li>
170   <li><code>invoice.ext</code> -- Rechnung</li>
171   <li><code>packing_list.ext</code> -- Verpackungsliste</li>
172   <li><code>pick_list.ext</code> -- Sammelliste</li>
173   <li><code>purcharse_order.ext</code> -- Bestellung an Lieferanten</li>
174   <li><code>request_quotation.ext</code> -- Anfrage an Lieferanten</li>
175   <li><code>sales_order.ext</code> -- Bestellung</li>
176   <li><code>sales_quotation.ext</code> -- Angebot an Kunden</li>
177  </ul>
178
179  <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
180    zum Inhaltsverzeichnis</a></small><br>
181  <hr>
182
183  <h2><a name="allgemeine_variablen">
184    Allgemeine Variablen, die in allen Vorlagen vorhanden sind</a></h2>
185
186  <h3><a name="allgemein_stammdaten">
187    Stammdaten von Kunden und Lieferanten:</a></h3>
188
189  <p>
190   <table border="1">
191    <tr><th>Variablenname</th><th>Bedeutung</th></tr>
192    <tr>
193     <td><code>account_number</code></td>
194     <td>Kontonummer</td>
195    </tr>
196    <tr>
197     <td><code>bank</code></td>
198     <td>Name der Bank</td>
199    </tr>
200    <tr>
201     <td><code>bank_code</code></td>
202     <td>Bankleitzahl</td>
203    </tr>
204    <tr>
205     <td><code>business</code></td>
206     <td>Kundentyp</td>
207    </tr>
208    <tr>
209     <td><code>city</code></td>
210     <td>Stadt</td>
211    </tr>
212    <tr>
213     <td><code>contact</code></td>
214     <td>Kontakt</td>
215    </tr>
216    <tr>
217     <td><code>country</code></td>
218     <td>Land</td>
219    </tr>
220    <tr>
221     <td><code>cp_email</code></td>
222     <td>Email des Ansprechpartners</td>
223    </tr>
224    <tr>
225     <td><code>cp_givenname</code></td>
226     <td>Vorname des Ansprechpartners</td>
227    </tr>
228    <tr>
229     <td><code>cp_greeting</code></td>
230     <td>Anrede des Ansprechpartners</td>
231    </tr>
232    <tr>
233     <td><code>cp_name</code></td>
234     <td>Name des Ansprechpartners</td>
235    </tr>
236    <tr>
237     <td><code>cp_phone1</code></td>
238     <td>Telefonnummer 1 des Ansprechpartners</td>
239    </tr>
240    <tr>
241     <td><code>cp_phone2</code></td>
242     <td>Telefonnummer 2 des Ansprechpartners</td>
243    </tr>
244    <tr>
245     <td><code>cp_title</code></td>
246     <td>Titel des Ansprechpartners</td>
247    </tr>
248    <tr>
249     <td><code>creditlimit</code></td>
250     <td>Kreditlimit</td>
251    </tr>
252    <tr>
253     <td><code>customernumber</code></td>
254     <td>Kundennummer; nur f&uuml;r Kunden</td>
255    </tr>
256    <tr>
257     <td><code>customernotes</code></td>
258     <td>Bemerkungen beim Kunden; nur f&uuml;r Kunden</td>
259    </tr>
260    <tr>
261     <td><code>discount</code></td>
262     <td>Rabatt</td>
263    </tr>
264    <tr>
265     <td><code>email</code></td>
266     <td>Emailadresse</td>
267    </tr>
268    <tr>
269     <td><code>fax</code></td>
270     <td>Faxnummer</td>
271    </tr>
272    <tr>
273     <td><code>homepage</code></td>
274     <td>Homepage</td>
275    </tr>
276    <tr>
277     <td><code>language</code></td>
278     <td>Sprache</td>
279    </tr>
280    <tr>
281     <td><code>name</code></td>
282     <td>Firmenname</td>
283    </tr>
284    <tr>
285     <td><code>phone</code></td>
286     <td>Telefonnummer</td>
287    </tr>
288    <tr>
289     <td><code>shiptocity</code></td>
290     <td>Stadt (Lieferadresse)
291      <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
292    </tr>
293    <tr>
294     <td><code>shiptocontact</code></td>
295     <td>Kontakt (Lieferadresse)
296      <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
297    </tr>
298    <tr>
299     <td><code>shiptocountry</code></td>
300     <td>Land (Lieferadresse)
301      <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
302    </tr>
303    <tr>
304     <td><code>shiptoemail</code></td>
305     <td>Email (Lieferadresse)
306      <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
307    </tr>
308    <tr>
309     <td><code>shiptofax</code></td>
310     <td>Fax (Lieferadresse)
311      <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
312    </tr>
313    <tr>
314     <td><code>shiptoname</code></td>
315     <td>Firmenname (Lieferadresse)
316      <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
317    </tr>
318    <tr>
319     <td><code>shiptophone</code></td>
320     <td>Telefonnummer (Lieferadresse)
321      <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
322    </tr>
323    <tr>
324     <td><code>shiptostreet</code></td>
325     <td>Straße und Hausnummer (Lieferadresse)
326      <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
327    </tr>
328    <tr>
329     <td><code>shiptozipcode</code></td>
330     <td>Postleitzahl (Lieferadresse)
331      <a href="dokumentenvorlagen-und-variablen.html#anmerkung_shipto">*</a></td>
332    </tr>
333    <tr>
334     <td><code>street</code></td>
335     <td>Straße und Hausnummer</td>
336    </tr>
337    <tr>
338     <td><code>taxnumber</code></td>
339     <td>Steuernummer</td>
340    </tr>
341    <tr>
342     <td><code>terms</code></td>
343     <td>Zahlungsziel</td>
344    </tr>
345    <tr>
346     <td><code>vendoremail</code></td>
347     <td>Email des Lieferanten; nur f&uuml;r Lieferanten</td>
348    </tr>
349    <tr>
350     <td><code>vendorfax</code></td>
351     <td>Faxnummer des Lieferanten; nur f&uuml;r Lieferanten</td>
352    </tr>
353    <tr>
354     <td><code>vendornotes</code></td>
355     <td>Bemerkungen beim Lieferanten; nur f&uuml;r Lieferanten</td>
356    </tr>
357    <tr>
358     <td><code>vendornumber</code></td>
359     <td>Lieferantennummer; nur f&uuml;r Lieferanten</td>
360    </tr>
361    <tr>
362     <td><code>vendorphone</code></td>
363     <td>Telefonnummer des Lieferanten; nur f&uuml;r Lieferanten</td>
364    </tr>
365    <tr>
366     <td><code>zipcode</code></td>
367     <td>Postleitzahl</td>
368    </tr>
369   </table>
370  </p>
371
372  <p><a name="anmerkung_shipto"><em>Anmerkung</em></a>: Sind die
373   <code>shipto*</code>-Felder in den Stammdaten nicht eingetragen, so haben
374   die Variablen <code>shipto*</code> den gleichen Wert wie die die
375   entsprechenden Variablen der Lieferdaten. Das bedeutet, dass sich einige
376   <code>shipto*</code>-Variablen so nicht in den Stammdaten wiederfinden
377   sondern schlicht Kopien der Lieferdatenvariablen sind
378   (z.B. <code>shiptocontact</code>).</p>
379
380  <h3><a name="allgemein_verkaeufer">
381    Informationen &uuml;ber den Verkäufer:</a></h3>
382
383  <p>
384   <table border="1">
385    <tr><th>Variablenname</th><th>Bedeutung</th></tr>
386    <tr>
387     <td><code>employee_email</code></td>
388     <td>Email</td>
389    </tr>
390    <tr>
391     <td><code>employee_fax</code></td>
392     <td>Fax</td>
393    </tr>
394    <tr>
395     <td><code>employee_name</code></td>
396     <td>voller Name</td>
397    </tr>
398    <tr>
399     <td><code>employee_signature</code></td>
400     <td>Signatur</td>
401    </tr>
402    <tr>
403     <td><code>employee_tel</code></td>
404     <td>Telefonnummer</td>
405    </tr>
406   </table>
407  </p>
408
409  <h3><a name="allgemein_steuern">
410    Variablen f&uuml;r die einzelnen Steuern:</a></h3>
411
412  <p>
413   <table border="1">
414    <tr><th>Variablenname</th><th>Bedeutung</th></tr>
415    <tr>
416     <td><code>tax</code></td>
417     <td>Steuer</td>
418    </tr>
419    <tr>
420     <td><code>taxbase</code></td>
421     <td>zu versteuernder Betrag</td>
422    </tr>
423    <tr>
424     <td><code>taxdescription</code></td>
425     <td>Name der Steuer</td>
426    </tr>
427    <tr>
428     <td><code>taxrate</code></td>
429     <td>Steuersatz</td>
430    </tr>
431   </table>
432  </p>
433
434  <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
435    zum Inhaltsverzeichnis</a></small><br>
436  <hr>
437
438  <h2><a name="invoice">Variablen in Rechnungen</a></h2>
439
440  <h3><a name="invoice_allgemein">Allgemeine Variablen:</a></h3>
441
442  <p>
443   <table border="1">
444    <tr><th>Variablenname</th><th>Bedeutung</th></tr>
445    <tr>
446     <td><code>creditremaining</code></td>
447     <td>Verbleibender Kredit</td>
448    </tr>
449    <tr>
450     <td><code>currency</code></td>
451     <td>Währung</td>
452    </tr>
453    <tr>
454     <td><code>cusordnumber</code></td>
455     <td>Bestellnummer beim Kunden</td>
456    </tr>
457    <tr>
458     <td><code>deliverydate</code></td>
459     <td>Lieferdatum</td>
460    </tr>
461    <tr>
462     <td><code>duedate</code></td>
463     <td>Fälligkeitsdatum</td>
464    </tr>
465    <tr>
466     <td><code>intnotes</code></td>
467     <td>Interne Bemerkungen</td>
468    </tr>
469    <tr>
470     <td><code>invdate</code></td>
471     <td>Rechnungsdatum</td>
472    </tr>
473    <tr>
474     <td><code>invnumber</code></td>
475     <td>Rechnungsnummer</td>
476    </tr>
477    <tr>
478     <td><code>invtotal</code></td>
479     <td>gesamter Rechnungsbetrag</td>
480    </tr>
481    <tr>
482     <td><code>notes</code></td>
483     <td>Bemerkungen der Rechnung</td>
484    </tr>
485    <tr>
486     <td><code>ordnumber</code></td>
487     <td>Auftragsnummer, wenn die Rechnung aus einem Auftrag erstellt wurde</td>
488    </tr>
489    <tr>
490     <td><code>quonumber</code></td>
491     <td>Angebotsnummer</td>
492    </tr>
493    <tr>
494     <td><code>shippingpoint</code></td>
495     <td>Versandort</td>
496    </tr>
497    <tr>
498     <td><code>shipvia</code></td>
499     <td>Transportmittel</td>
500    </tr>
501    <tr>
502     <td><code>subtotal</code></td>
503     <td>Zwischensumme aller Posten ohne Steuern</td>
504    </tr>
505    <tr>
506     <td><code>sumcarriedforward</code></td>
507     <td>Zwischensumme aller bisher ausgegebenen Posten. Sollte nur in einem
508      <a href="dokumentenvorlagen-und-variablen.html#bloecke_pagebreak">
509       <code>pagebreak</code></a>-Block verwendet werden.</td>
510    </tr>
511    <tr>
512     <td><code>total</code></td>
513     <td>Restsumme der Rechnung (Summe abz&uuml;glich bereits bezahlter Posten)</td>
514    </tr>
515    <tr>
516     <td><code>transdate</code></td>
517     <td>Auftragsdatum wenn die Rechnung aus einem Auftrag erstellt wurde</td>
518    </tr>
519   </table>
520  </p>
521
522  <h3><a name="invoice_posten">
523    Variablen f&uuml;r jeden Posten auf der Rechnung:</a></h3>
524
525  <p>
526   <table border="1">
527    <tr><th>Variablenname</th><th>Bedeutung</th></tr>
528    <tr>
529     <td><code>assembly</code></td>
530     <td>Erzeugnis</td>
531    </tr>
532    <tr>
533     <td><code>bin</code></td>
534     <td>Stellage</td>
535    </tr>
536    <tr>
537     <td><code>deliverydate_oe</code></td>
538     <td>Lieferdatum</td>
539    </tr>
540    <tr>
541     <td><code>description</code></td>
542     <td>Artikelbeschreibung</td>
543    </tr>
544    <tr>
545     <td><code>discount</code></td>
546     <td>Rabatt als Betrag</td>
547    </tr>
548    <tr>
549     <td><code>linetotal</code></td>
550     <td>Zeilensumme (Anzahl * Einzelpreis)</td>
551    </tr>
552    <tr>
553     <td><code>listprice</code></td>
554     <td>Listenpreis</td>
555    </tr>
556    <tr>
557     <td><code>netprice</code></td>
558     <td>Nettopreis</td>
559    </tr>
560    <tr>
561     <td><code>number</code></td>
562     <td>Artikelnummer</td>
563    </tr>
564    <tr>
565     <td><code>ordnumber_oe</code></td>
566     <td>Auftragsnummer des Originalauftrags, wenn die Rechnung aus einem Sammelauftrag erstellt wurde</td>
567    </tr>
568    <tr>
569    <td><code>p_discount</code></td>
570     <td>Rabatt in Prozent</td>
571    </tr>
572    <tr>
573     <td><code>partnotes</code></td>
574     <td>Die beim Artikel gespeicherten Bemerkungen</td>
575    </tr>
576    <tr>
577     <td><code>partsgroup</code></td>
578     <td>Warengruppe</td>
579    </tr>
580    <tr>
581     <td><code>projectnumber</code></td>
582     <td>Projektnummer</td>
583    </tr>
584    <tr>
585     <td><code>qty</code></td>
586     <td>Anzahl</td>
587    </tr>
588    <tr>
589     <td><code>runningnumber</code></td>
590     <td>Position auf der Rechnung (1, 2, 3...)</td>
591    </tr>
592    <tr>
593     <td><code>sellprice</code></td>
594     <td>Verkaufspreis</td>
595    </tr>
596    <tr>
597     <td><code>serialnumber</code></td>
598     <td>Seriennummer</td>
599    </tr>
600    <tr>
601     <td><code>transdate_oe</code></td>
602     <td>Auftragsdatum des Originalauftrags, wenn die Rechnung aus einem Sammelauftrag erstellt wurde</td>
603    </tr>
604    <tr>
605     <td><code>unit</code></td>
606     <td>Einheit</td>
607    </tr>
608   </table>
609  </p>
610
611  <h3><a name="invoice_zahlungen">
612    Variablen f&uuml;r die einzelnen Zahlungseingänge:</a></h3>
613
614  <p>
615   <table border="1">
616    <tr><th>Variablenname</th><th>Bedeutung</th></tr>
617    <tr>
618     <td><code>datepaid</code></td>
619     <td>Datum</td>
620    </tr>
621    <tr>
622     <td><code>memo</code></td>
623     <td>Memo</td>
624    </tr>
625    <tr>
626     <td><code>paid</code></td>
627     <td>Betrag</td>
628    </tr>
629    <tr>
630     <td><code>source</code></td>
631     <td>Beleg</td>
632    </tr>
633    <tr>
634     <td><code>exchangerate</code></td>
635     <td>Wechselkurs</td>
636    </tr>
637    <tr>
638     <td><code>forex</code></td>
639     <td>Konto</td>
640    </tr>
641   </table>
642  </p>
643
644  <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
645    zum Inhaltsverzeichnis</a></small><br>
646  <hr>
647
648  <h2><a name="anderevorlagen">
649    Variablen in anderen Vorlagen</a></h2>
650
651  <p>Die Variablen in anderen Vorlagen sind &auml;hnlich wie in der
652   Rechnung. Allerdings hei&szlig;en die Variablen, die mit <code>inv</code>
653   beginnen, jetzt anders. Bei den Angeboten fangen sie mit <code>quo</code>
654   f&uuml;r "quotation" an: <code>quodate</code> f&uuml;r Angebotsdatum
655   etc. Bei Bestellungen wiederum fangen sie mit <code>ord</code> f&uuml;r
656   "order" an: <code>ordnumber</code> f&uuml;r Bestellnummer etc.</p>
657
658  <p>Manche Variablen sind in anderen Vorlagen hingegen gar nicht vorhanden wie
659   z.B. die f&uuml;r bereits verbuchte Zahlungseing&auml;nge. Dies sind
660   Variablen, die vom Gesch&auml;ftsablauf her in der entsprechenden Vorlage
661   keine Bedeutung haben oder noch nicht belegt sein k&ouml;nnen.</p>
662
663  <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
664    zum Inhaltsverzeichnis</a></small><br>
665  <hr>
666
667  <h2><a name="bloecke">
668    Bl&ouml;cke, bedingte Anweisungen und Schleifen</a></h2>
669
670  <p>Der Parser kennt neben den Variablen einige weitere Konstrukte, die
671   gesondert behandelt werden. Diese sind wie Variablennamen in spezieller
672   Weise markiert: <code>&lt;%anweisung%&gt;</code></p>
673
674  <h3><a name="bloecke_einschr_latex">
675    Einsch&auml;nkungen f&uuml;r Bl&ouml;cke in LaTeX-Vorlagen</a></h3>
676
677  <p>Achtung: Bl&ouml;cke k&ouml;nnen in LaTeX-Vorlagen momentan nicht
678    verschachtelt werden. Das bedeutet, dass innerhalb einer
679    <code>&lt;%foreach%&gt;</code>-Schleife keine
680    <code>&lt;%if%&gt;</code>-Abfragen verwendet werden k&ouml;nnen. Dieses
681    kann man aber mit LaTeX-Bordmitteln selber nachgebildet werden. Dazu muss
682    im Vorspann das Paket <code>ifthen</code> eingebunden werden. Das Konstrukt
683    selber sieht dann wie folgt aus:</p>
684
685  <p class="blue"><code>\ifthenelse{\equal{&lt;%variable%&gt;}{}}{}{Dieser
686    Text erscheint nur, wenn &lt;%variable%&gt; nicht leer ist.}</code></p>
687
688  <h3><a name="bloecke_einschr_opendocument">
689    Einsch&auml;nkungen f&uuml;r Bl&ouml;cke in OpenDocument-Vorlagen</a></h3>
690
691  <p>Die eben erw&auml;hnten Einschr&auml;nkungen f&uuml;r
692   LaTeX-Vorlagen gelten in abgeschw&auml;chter Form auch f&uuml;r
693   OpenDocument-Vorlagen. Auch bei OpenDocument-Vorlagen k&ouml;nnen
694   Bl&ouml;cke nicht verschachtelt werden. Einzige Ausnahme ist, dass
695   <code>&lt;if&gt;</code> und
696   <code>&lt;ifnot&gt;</code>-Bl&ouml;cke innerhalb von
697   <code>&lt;foreach&gt;</code>-Bl&ouml;cken auftreten
698   d&uuml;rfen.</p>
699
700  <h3><a name="bloecke_include">Die <code>include</code>-Anweisung</a></h3>
701
702  <p class="blue"><code>&lt;%include dateiname.ext%&gt;</code></p>
703
704  <p>Dieser Block funktioniert nur in LaTeX- und HTML-Vorlagen.</p>
705
706  <p>F&uuml;gt den Inhalt einer Datei an der entsprechenden Stelle ein. Der
707   eingef&uuml;gte Text wird ganz normal durch den Parser behandelt und kann
708   Variablen und Bl&ouml;cke enthalten.</p>
709
710  <h3><a name="bloecke_ifnot">Der <code>if not</code>-Block</a></h3>
711
712  <p class="blue"><code>&lt;%if not variablenname%&gt;<br>
713    ...<br>
714    &lt;%end if&gt;</code></p>
715
716  <p>Eine normale "if-not-then"-Bedingung. Die Zeilen zwischen dem "if not" und
717   dem "end" werden nur ausgegeben, wenn die Variable "variablenname" nicht
718   gesetzt oder gleich 0 ist.</p>
719
720  <h3><a name="bloecke_if">Der <code>if</code>-Block</a></h3>
721
722  <p class="blue"><code>&lt;%if variablenname%&gt;<br>
723    ...<br>
724    &lt;%end if&gt;</code></p>
725
726  <p>Eine normale "if-then"-Bedingung. Die Zeilen zwischen dem "if" und dem
727   "end" werden nur ausgegeben, wenn die Variable "variablenname" gesetzt und
728   ungleich 0 ist.</p>
729
730  <h3><a name="bloecke_foreach">Die <code>foreach</code>-Schleife</a></h3>
731
732  <p class="blue"><code>&lt;%foreach variablenname%&gt;<br>
733    ...<br>
734    &lt;%end foreach&gt;</code></p>
735
736  <p>F&uuml;gt die Zeilen zwischen den beiden Anweisungen so oft ein, wie das
737   Perl-Array der Variablen "variablenname" Elemente enth&auml;t. Dieses
738   Konstrukt wird zur Ausgabe der einzelnen Posten einer Rechnung / eines
739   Angebots sowie zur Ausgabe der Steuern benutzt. In jedem Durchlauf werden
740   die <a href="dokumentenvorlagen-und-variablen.html#invoice_posten">zeilenbezogenen
741   Variablen</a> jeweils auf den Wert f&uuml;r die aktuelle Position
742   gesetzt.</p>
743
744  <p>Die Syntax sieht normalerweise wie folgt aus:</p>
745
746  <p class="blue"><code>&lt;%foreach number%&gt;<br>
747    Position: &lt;%runningnumber%&gt;<br>
748    Anzahl: &lt;%qty%&gt;<br>
749    Artikelnummer: &lt;%number%&gt;<br>
750    Beschreibung: &lt;%description%&gt;<br>
751    ...<br>
752    &lt;%end foreach&gt;</code></p>
753
754  <p>Besonderheit in OpenDocument-Vorlagen: Tritt ein
755   <code>&lt;foreach&gt;</code>-Blcok innerhalb einer Tabellenzelle
756   auf, so wird die komplette Tabellenzeile so oft wiederholt wie
757   notwendig. Tritt er au&szlig;erhalb auf, so wird nur der Inhalt
758   zwischen <code>&lt;foreach&gt;</code> und <code>&lt;end
759   foreach&gt;</code> wiederholt, nicht aber die komplette Zeile, in
760   der er steht.</p>
761
762  <h3><a name="bloecke_pagebreak">Der <code>pagebreak</code>-Block</a></h3>
763
764  <p class="blue"><code>&lt;%pagebreak ZpZ ZeS ZzS%&gt;<br>
765    ...<br>
766    &lt;%end pagebreak%&gt;</code></p>
767
768  <p>Dieser Block existiert nur in LaTeX-Vorlagen.</p>
769
770  <p>Dieser Block legt das Verhalten beim manuellen Einf&uuml;gen eines
771   Seitenumbruchs fest. Normalerweise bricht LaTeX die Seiten selber um. Beim
772   Rechnungsdruck ist das oft nicht gew&uuml;nscht, oder man m&ouml;chte im
773   Falle eines Seitenumbruchs den &Uuml;bertrag etc. mit ausgeben. Deswegen
774   versucht der Parser, manuell Seitenumbr&uuml;che einzuf&uuml;gen,
775   w&auml;hrend er einen <code>foreach</code>-Block auswertet, weil hier die
776   manuellen Seitenumbr&uuml;che erforderlich werden. Daf&uuml;r ben&ouml;tigt
777   der Parser aber drei Informationen:</p>
778
779  <p>
780   <ol>
781    <li>Wieviele Zeichen passen bei der Variablen "description" pro Posten
782     in eine Zeile? Das ist der Parameter "ZpZ" (Zeichen pro Zeile).</li>
783    <li>Wieviele Zeilen/Posten passen auf die erste Seite? Das
784     ist der Parameter "ZeS" (Zeilen erste Seite).</li>
785    <li>Wieviele Zeilen/Posten passen auf die zweite und alle nachfolgenden
786     Seiten? Das ist der Parameter "ZzS" (Zeilen zweite Seite).</li>
787   </ol>
788  </p>
789
790  <p>Diese Parameter sind drei Zahlen, die manuell durch Verwendung von langen
791   Warenbezeichnungen und Rechnungen mit vielen Posten bestimmt werden
792   m&uuml;ssen.</p>
793
794  <p>&Uuml;blicherweise wird in diesem Block zuerst die aktuelle Tabelle
795   geschlossen, eventuell Text eingef&uuml;gt (z.B. "Fortsetzung auf der
796   n&auml;chsten Seite"), dann ein Seitenumbruch erzwungen, eventuell Text
797   eingef&uuml;gt (z.B. "&Uuml;bertrag von der vorherigen Seite:
798   &lt;%sumcarriedforward%&gt; EUR") und die Tabelle wieder ge&ouml;ffnet.</p>
799
800  <p>Wird kein manueller Seitenumbruch gew&uuml;scht, so kann dieser Block
801   komplett entfallen.</p>
802
803  <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
804    zum Inhaltsverzeichnis</a></small><br>
805  <hr>
806
807  <h2><a name="markup">
808    Markup-Code, der innerhalb von Formularen zur Textformatierung
809    verwendet werden kann</a></h2>
810
811  <p>Wenn der Benutzer innhalb von Formularen in Lx-Office Text anders
812   formatiert haben m&ouml;chte, so ist dies begrenzt m&ouml;glich. Lx-Office
813   unterst&uuml;tzt die Textformatierung mit HTML-&auml;hnlichen Tags. Der
814   Benutzer kann z.B. bei der Artikelbeschreibung auf einer Rechnung Teile des
815   Texts zwischen Start- und Endtags setzen. Dieser Teil wird dann automatisch
816   in Anweisungen f&uuml;r das ausgew&auml;hlte Vorlagenformat (HTML oder
817   PDF &uuml;ber LaTeX) umgesetzt.</p>
818
819  <p>Die unterst&uuml;tzen Formatierungen sind:</p>
820
821  <p>
822   <table border="1">
823    <tr><th>Formatierung</th><th>Auswirkung</th></tr>
824    <tr>
825     <td><code>&lt;b&gt;Text&lt;/b&gt;</code></td>
826     <td>Text wird in <b>fettdruck</b> gesetzt.</td>
827    </tr>
828    <tr>
829     <td><code>&lt;i&gt;Text&lt;/i&gt;</code></td>
830     <td>Text wird <i>kursiv</i> gesetzt.</td>
831    </tr>
832    <tr>
833     <td><code>&lt;u&gt;Text&lt;/u&gt;</code></td>
834     <td>Text wird <u>unterstrichen</u>.</td>
835    </tr>
836    <tr>
837     <td><code>&lt;s&gt;Text&lt;/s&gt;</code></td>
838     <td>Text wird <s>durchgestrichen</s>. Diese Formatierung ist nicht bei der
839      Ausgabe als PDF &uuml;ber LaTeX verf&uuml;gbar.</td>
840    </tr>
841    <tr>
842     <td><code>&lt;pagebreak&gt;</code></td>
843     <td>Erzwingt einen Seitenumbruch (siehe unten).</td>
844    </tr>
845   </table>
846  </p>
847
848  <p>Eine Besonderheit ist der Befehl <code>&lt;pagebreak&gt;</code>,
849   der nur in LaTeX-Vorlagen funktioniert und in anderen Vorlagen
850   einfach gel&ouml;scht wird. Dieser erzwingt unabh&auml;ngig von der
851   im <a
852   href="dokumentenvorlagen-und-variablen.html#bloecke_pagebreak">pagebreak-Block</a>
853   voreingestellten Werte einen Seitenumbruch nach der aktuellen
854   Rechnungsposition. Dementsprechend funktioniert er nur innerhalb von
855   <code>&lt;foreach...&gt;</code>-Schleifen. Weiterhin ben&ouml;tigt er kein
856   Endtag.</p>
857
858  <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
859    zum Inhaltsverzeichnis</a></small><br>
860  <hr>
861
862 </body>
863 </html>