HTML - Vorlagen: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
 
(89 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Rechnungsbelege ==
* Alle Dokumente, die der OrgaMon erzeugt sind .html Dateien
* Diese werden nicht aus eigener Kraft erstellt, sondern grundsätzlich anhand einer .html Vorlage-Datei "ausbelichtet" (HTMLVorlage)
* Dabei wird die Vorlage aus dem Verzeichnis ".\HTML Vorlagen\" geladen und alle <code>~Platzhalter~</code> durch einen echten Inhalt ersetzt
* Für die Änderung der Vorlagen empfiehlt sich [[Arbeiter#Notepad.2B.2B|notepad++]]
** Damit können Sie einen rechten Mausklick auf die .html Vorlage machen und "Beabeiten mit notepad++" auswählen
* Die Vorlage kann aus mehreren Dateien kombiniert werden (Includes), do dass nicht für jede Vorlage immer wieder der Anschrift- Bereich identisch kopiert werden muss
* Das fertige .html ist aber immer eine Datei, Bilder und Logos sollten immer eine Referenz ins Internet haben, so dass das Dokument auch ausserhalb der Firma funktioniert
* Verwenden Sie UTF-8 als Zeichenkodierung


Rechnungen werden aus HTML-Templates aufgebaut. Der OrgaMon basiert auf dem breiter angelegten Beleg-Begriff, folgende Logik führt zu folgenden Vorlagen:
== Name der Vorlage-Datei ==


* Belege steuern durch das Feld BSTATUS und VORLAGE_PREFIX den Dateinamen der Vorlage, die geladen wird
* Alle Vorlagen- Dateien werden aus dem OrgaMon-Verzeichnis <code>.\HTML Vorlagen\</code> geladen


VORLAGE_PREFIX
=== BSTATUS ===
  (  "A" -> "Angebot" |
    "G" -> "Garantie" |
    "Z" -> "Zeitabrechnung" |
    [x] als Lieferschein -> "Lieferschein" |
    ansonsten -> "Rechnung" )
["3spaltig_n"]
".html"


<u>BSTATUS</u>    <u>HTML-Vorlage</u>
A          Angebot.html
G          Garantie.html
Z          Zeitabrechnung.html
ansonsten  Rechnung.html
 
* Ist "als Lieferschein" angekreuzt heisst die Vorlage <code>Lieferschein.html</code>


* Besonders bei Verträgen kann im Vorlage-Beleg der Vorlage-Prefix geschickt gesteuert werden um auf der Rechnungs das richtig Outfit festzulegen.
=== VORLAGE_PREFIX ===
* Man beachte dass allein durch Wahl einer Motivation auch der Vorlage-Prefix bestimmt werden kann!


== Einseitige Vorlage ==
* Vor den jeweiligen Dateinamen wird noch der VORLAGE_PREFIX gesetzt
* Besonders bei Verträgen kann im Vorlage-Beleg der Vorlage-Prefix geschickt gesteuert werden um auf der Rechnung das richtig Outfit festzulegen.
* Man beachte dass allein durch Wahl einer Motivation (bei der Belegneuanlage) auch der Vorlage-Prefix bestimmt werden kann!
** In der MOTIVATION kann eingeschlossen in eckigen Klammern der Vorlage-Prefix vorbereitet werden (z.B. "USA Besteller [US-]")


<code>
== BEGIN <i>Blockname</i> ==
<html>
<titel>
Hallo Welt!
<br>
Heute ist der ~DATUM~!<br>
</html>
</code>


== Mehrseitige Vorlage ==
Ein Text-Block ermöglicht es mehrzeilige Tabellen auszugeben. Dabei ist eine Datenzeile in der Ausgabe immer ein gefüllter Block der Vorlage. In der Vorlage markiert man einen Abschnitt als Block:
 
&lt;&#033;-- BEGIN ARTIKEL -->
 
Beim Laden der Vorlage wird dieser Block zunächst entfernt. "Braucht" die Ausbelichtung diesen Block wird er an einer INSERT <i>Blockname</i>-Marke eingefügt und ausbelichtet. Gibt es z.B. 3 Zeilen in einer Datenbank-Tabelle, so wird der Block 3 mal hintereinander mit unterschiedlichen Daten ausgegeben. Das Ende eines Blocks wird mit
 
&lt;&#033;-- END ARTIKEL -->
 
markiert. Beispiel.
 
&lt;&#033;-- BEGIN ARTIKEL EVEN -->
    &lt;tr>
    &lt;td align=center height=10 bgcolor="#E8F4F8">&lt;font face="Verdana" size=-1>~ArtNo~&lt;/td>
    &lt;td height=10 bgcolor="#E8F4F8">&lt;font face="Verdana" size=-3>~AusgabeArt~~ArtTxt~&lt;/font>&lt;/td>
    &lt;td align=right height=10 bgcolor="#E8F4F8">&lt;font face="Verdana" size=-1>~Menge~&nbsp;&lt;/font>&lt;/td>
    &lt;td align=right height=10 bgcolor="#E8F4F8">&lt;font face="Verdana" size=-1>~Wert~&nbsp;&lt;/font>&lt;/td>
    &lt;td align=right height=10 bgcolor="#E8F4F8">&lt;font face="Verdana" size=-1>~Percent~&nbsp;&lt;/font>&lt;/td>
    &lt;td align=right height=10 bgcolor="#E8F4F8">&lt;font face="Verdana" size=-1>~Anteil~&nbsp;&lt;/font>&lt;/td>
    &lt;/tr>
&lt;&#033;-- END ARTIKEL EVEN -->
&lt;&#033;-- BEGIN ARTIKEL ODD -->
    &lt;tr>
    &lt;td align=center height=10 bgcolor="#E0E0E0">&lt;font face="Verdana" size=-1>~ArtNo~&lt;/font>&lt;/td>
    &lt;td height=10 bgcolor="#E0E0E0">&lt;font face="Verdana" size=-3>~AusgabeArt~~ArtTxt~&lt;/font>&lt;/td>
    &lt;td align=right height=10 bgcolor="#E0E0E0">&lt;font face="Verdana" size=-1>~Menge~&nbsp;&lt;/font>&lt;/td>
    &lt;td align=right height=10 bgcolor="#E0E0E0">&lt;font face="Verdana" size=-1>~Wert~&nbsp;&lt;/font>&lt;/td>
    &lt;td align=right height=10 bgcolor="#E0E0E0">&lt;font face="Verdana" size=-1>~Percent~&nbsp;&lt;/font>&lt;/td>
    &lt;td align=right height=10 bgcolor="#E0E0E0">&lt;font face="Verdana" size=-1>~Anteil~&nbsp;&lt;/font>&lt;/td>
    &lt;/tr>
&lt;&#033;-- END ARTIKEL ODD -->
&lt;&#033;-- INSERT ARTIKEL -->
 
== SET MAXLINES ==
 
  &lt;&#033;-- SET MAXLINES -->
 
== SET NUMBER OF COPIES ==
 
  &lt;&#033;-- SET NUMBER OF COPIES -->
 
== COMPUTE ==
 
  &lt;&#033;-- COMPUTE -->
 
== LET ==
 
  &lt;&#033;-- LET -->
 
== ANSI ==
 
  &lt;&#033;-- ANSI -->
 
== OHNE ROHDATEN ==
 
  &lt;&#033;-- OHNE ROHDATEN -->
 
== SORT ==
 
  &lt;&#033;-- SORT -->
 
== START DER ROHDATEN ==
 
  &lt;&#033;-- START DER ROHDATEN -->
 
== START DER INCLUDES ==
 
  &lt;&#033;-- START DER INCLUDES -->
 
== START DER MELDUNGEN ==


<code>
  &lt;&#033;-- START DER MELDUNGEN -->
<html>
<HEAD>
<title></title>
<META HTTP-EQUIV="Pragma" content="no-cache">
<META HTTP-EQUIV="Cache-Control" content="no-cache, must-revalidate">
<META HTTP-EQUIV="Expires" content="0">
<STYLE TYPE="text/css">
<!--
P.breakhere {page-break-before: always}
-->
</STYLE>
</HEAD>
<body bgcolor="#ffffff" text="#000000" link="#cc0000" vlink="#999999" alink="#ffcc00">


<!-- BEGIN PAGE_SINGLE -->
== Variable ==
<!-- SET MAXLINES 16 ArtTxt -->
<br>
<br>
<br>...
<br>
<br>
<br>
<br>
<br>
<table width=100% border=0 cellspacing=0 cellpadding=0>
<tr>
  <td>
  <table width=95% border=0 cellpadding=0 cellspacing=0>
    <tr>
    <td valign=bottom width=27%></td>
    <td valign=bottom width=65%><font face="Verdana" size=-1><br>
      <br>
      ~Anrede~<br>~Name~<br>~Name1~<br>~Strasse~<br>
    <font face="Verdana" size=3><b>~Ort~</b></font></font></td>
    <td valign=top align=right width=20%>
    </td>
</tr>
    <tr>
    <td valign=bottom width=27%></td>
    <td valign=bottom width=65%></td>
    <font face="Verdana" size=-1>
    <td valign=top align=right width=20%>
      <table cellpadding=1 cellspacing=2 border=0 width="100">
  <tr>
        <td height=10 align=right ><font face="Verdana" size=-1><br><br><br>
          Abrechnungsdatum:<br>Referenznummer:<br><br>Unsere Mwst.Nr.:
<!-- BEGIN USTID_A -->
<br>Ihre Mwst.Nr.:
<!-- END USTID_A -->
          </font>
        </td>
        <td height=10><font face="Verdana" size=-1>&nbsp;</td>
        <td height=10><font face="Verdana" size=-1><br><br>
          <br>~Datum~<br>~K#~<br><br>DE811409554
<!-- BEGIN USTID_B -->
<br>~USTID~
<!-- END USTID_B -->
          </font>
        </td>
      </tr>
      </table>
    </td>
</tr>
</table>
  </font>
  </td>
</tr>
<tr>
  <td>&nbsp;<br><font face="Verdana" size=2><b>~Beleg Titel~</b><BR><BR></font></td>
</tr>
<tr>
  <td>
  <table cellpadding=1 cellspacing=2 border=0 width="100%">
    <tr>
    <td align=center height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Artikelnr.</font></td>
    <td height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Titel</font></td>
    <td align=right height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Verkaufsmenge</td>
    <td align=right height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Warenwert</td>
    <td align=right height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Prorata%</td>
    <td align=right height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Prorata</font></td>
    </tr>


    <tr>
Je nach Context stellt der OrgaMon verschiedenen Variable zur Verfügung, die im Template verwendet werden können. Im Rahmen der Belichtung werden die Variable ersetzt, und es erscheinen anstelle des Variablennamen echte Inhalte. Es gibt vordefinierte Variablen Listen, die bei den meisten Dokumenten verfübgar sind.
    <td height=10 colspan=6 bgcolor="#FFFFFF"><font face="Verdana" size=-1><hr></td>
    </tr>


    <tr>
=== Basis ===
    <td height=10 colspan=3 bgcolor="FFFFFF"><font face="Verdana" size=-1>&nbsp;</td>
    <td height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Summe</font></td>
~Datum~   heutiges Datum
    <td height=10 colspan=2 align=right bgcolor="#C8D8E0"><font face="Verdana" size=-1>~ZS~&nbsp;</font></td>
    </tr>
=== Artikel ===
<!-- BEGIN MWST -->
    <tr>
    <td height=10 colspan=3 bgcolor="FFFFFF"><font face="Verdana" size=-1>&nbsp;</td>
    <td height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>ges.MwSt. ~MwStSatz~%</font></td>
    <td height=10 colspan=2 align=right bgcolor="#C8D8E0"><font face="Verdana" size=-1>~MW~&nbsp;</font></td>
    </tr>
    <tr>
    <td height=10 colspan=3 bgcolor="FFFFFF"><font face="Verdana" size=-1>&nbsp;</td>
    <td height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Summe</font></td>
    <td height=10 colspan=2 align=right bgcolor="#C8D8E0"><font face="Verdana" size=-1>~GS~&nbsp;</font></td>
    </tr>
<!-- END MWST -->
<!-- INSERT MWST -->


</table></td>
~Artikel~                TITEL
</tr>
~No~                    NUMERO
~Komponist~              e_r_MusikerName(KOMPONIST_R)
~KomponistNachname~      e_r_MusikerNurNachName(KOMPONIST_R)
~Arrangeur~              e_r_MusikerName(ARRANGEUR_R)
~ArrangeurNachname~      e_r_MusikerNurNachName(ARRANGEUR_R)
~Verlag~                e_r_Verlag(VERLAG_R)
~VerlagNo~              VERLAGNO
~Konto~                  b_r_Konto(SORTIMENT_R)
~Lager~                  e_r_LagerPlatzNameFromLAGER_R(LAGER_R)
~GEMA_WN~                GEMA_WN


<tr>
=== Personen ===
<td>
<font face="Verdana" size="-1">
<br>
Anbei erhalten Sie die Abrechnung Ihrer bei uns verlegten Kompositionen bzw. Arrangements. Über den Abrechnungsbetrag liegt entweder ein Verrechnungsscheck bei oder wir werden in den kommenden Tagen eine Banküberweisung auf die
IBAN: ~ZahlungKonto~<br>
BIC: ~ZahlungBLZ~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bank: ~ZahlungBank~<br>
veranlassen. Sollten Sie in der Zukunft eine Banküberweisung bevorzugen so bitte ich Sie uns Ihre Kontoverbindung mitzuteilen.<br>
<br>
Ich bedanke mich für die gute Zusammenarbeit.<br>
<br><br>
Mit freundlichen Grüßen<br>
HeBu Musikverlag GmbH<br>
<br><br>


<br>
~K#~                  NUMMER
</font>
~H#~                  HAUPT_NUMMER
</td>
~KontoAR~            KONTO_AR
</tr>
~KontoER~            KONTO_ER
~Anrede~              ANREDE
~Ansprache~          ANSPRACHE
~Vorname~            VORNAME
~Nachname~            NACHNAME
~Name~                VORNAME ' ' NACHNAME
~Fax~                PERSON
~Telefon~            e_r_telefon(RID)
~Handy~              HANDY
~eMail~              USER_ID
~Versicherungsnummer~ VERSICHERUNGSNUMMER
~Adressat1~          e_r_Adressat(RID)[0]
~Adressat2~          e_r_Adressat(RID)[1]
~Adressat3~          e_r_Adressat(RID)[2]
~Adressat4~          e_r_Adressat(RID)[3]
~Name1~              NAME1
~Name2~              NAME2
~Strasse~            STRASSE
~Ort~                e_r_Ort(PRIV_ANSCHRIFT_R)


</table>
=== Formatierungen mit "!" ===
<!-- END PAGE_SINGLE -->


<!-- BEGIN PAGE_FIRST -->
* Feldinhalte lassen sich noch in ihrem Format verändern, also ~B2~!
<!-- SET MAXLINES 18 ArtTxt -->
* siehe [[Oc#Verarbeitungs.2FFormatier_Zus.C3.A4tze|hier]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<table width=100% border=0 cellspacing=0 cellpadding=0>
<tr>
  <td>
  <table width=82% border=0 cellpadding=0 cellspacing=0>
    <tr>
    <td valign=bottom width=27%></td>
    <td valign=bottom width=65%><font face="Verdana" size=-1><br>
      <br>
      ~Anrede~<br>~Name~<br>~Name1~<br>~Strasse~<br>
    <font face="Verdana" size=3><b>~Ort~</b></font></font></td>
    <td valign=top align=right width=20%>
    </td>
    </tr>
    <tr>
    <td valign=bottom width=27%></td>
    <td valign=bottom width=65%></td>
    <font face="Verdana" size=-1>
    <td valign=top align=right width=20%>
      <table cellpadding=1 cellspacing=2 border=0 width="100">
  <tr>
        <td height=10 align=right ><font face="Verdana" size=-1><br><br><br>
          Abrechnungsdatum:<br>Referenznummer:<br><br>Unsere Mwst.Nr.:
<!-- BEGIN USTID_A -->
<br>Ihre Mwst.Nr.:
<!-- END USTID_A -->
          </font>
        </td>
        <td height=10><font face="Verdana" size=-1>&nbsp;</font></td>
        <td height=10><font face="Verdana" size=-1><br><br>
          <br>~Datum~<br>~K#~<br><br>DE811409554
<!-- BEGIN USTID_B -->
<br>~USTID~
<!-- END USTID_B -->
          </font>
        </td>
      </tr>
      </table>
    </td>
  </font>
    </tr>
</table>
  </td>
</tr>
<tr>
  <td>&nbsp;<br><font face="Verdana" size=2><br><br><b>~Beleg Titel~    (Seite ~Seite~ von ~Seiten~)</b><BR><BR></font></td>
</tr>
<tr>
  <td>
  <table cellpadding=1 cellspacing=2 border=0 width="100%">
    <tr>
    <td align=center height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Artikel-Nó</font></td>
    <td height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Titel</font></td>
    <td align=right height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Verkaufs-menge</td>
    <td align=right height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Warenwert</td>
    <td align=right height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Prorata%</font></td>
    <td align=right height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Prorata</font></td>
    </tr>
<!-- BEGIN ARTIKEL EVEN -->
    <tr>
    <td align=center height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~ArtNo~</td>
    <td height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-3>~AusgabeArt~~ArtTxt~</font></td>
    <td align=right height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~Menge~&nbsp;</font></td>
    <td align=right height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~Wert~&nbsp;</font></td>
    <td align=right height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~Percent~&nbsp;</font></td>
    <td align=right height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~Anteil~&nbsp;</font></td>
    </tr>
<!-- END ARTIKEL EVEN -->
<!-- BEGIN ARTIKEL ODD -->
    <tr>
    <td align=center height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~ArtNo~</font></td>
    <td height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-3>~AusgabeArt~~ArtTxt~</font></td>
    <td align=right height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~Menge~&nbsp;</font></td>
    <td align=right height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~Wert~&nbsp;</font></td>
    <td align=right height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~Percent~&nbsp;</font></td>
    <td align=right height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~Anteil~&nbsp;</font></td>
    </tr>
<!-- END ARTIKEL ODD -->
<!-- INSERT ARTIKEL -->


    <tr>
== Mehrseitigkeit ==
    <td height=10 colspan=6 bgcolor="#FFFFFF"><font face="Verdana" size=-1><hr></td>
    </tr>


</table></td>
Bei mehrseitigen Dokumenten muss man 4 Typen von Seiten vorbereiten (Für jeden Typ einen BLOCK):
</tr>
</table>
<P class=breakhere></P>
<!-- END PAGE_FIRST -->


<!-- BEGIN PAGE_NEXT -->
* PAGE_SINGLE: Die einzige Seite für den Fall, dass alles auf einer Seite Platz hat
<!-- SET MAXLINES 29 ArtTxt,!MW -->
* PAGE_FIRST: Die erste Seite für den Fall, dass ein mehrseitiges Dokument ensteht
<table width=100% border=0 cellspacing=0 cellpadding=0>
* PAGE_NEXT: Bei mehrseitigen Dokumenten, ist es die Seite 2 ff
<tr>
* PAGE_LAST: Bei zumindest 2 seitigen Dokumenten ist es die letzte Seite
  <td>&nbsp;<br><font face="Verdana" size=2>
  <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
  <b>~Beleg Titel~  (Seite ~Seite~ von ~Seiten~)</b><BR><BR></font></td>
</tr>
<tr>
  <td>
  <table cellpadding=1 cellspacing=2 border=0 width="100%">
    <tr>
    <td align=center height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Artikel-Nó</font></td>
    <td height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Titel</font></td>
    <td align=right height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Verkaufs-menge</td>
    <td align=right height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Warenwert</td>
    <td align=right height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Prorata%</td>
    <td align=right height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Prorata</font></td>
    </tr>
<!-- BEGIN ARTIKEL EVEN -->
    <tr>
    <td align=center height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~ArtNo~</td>
    <td height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-3>~AusgabeArt~~ArtTxt~</font></td>
    <td align=right height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~Menge~&nbsp;</font></td>
    <td align=right height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~Wert~&nbsp;</font></td>
    <td align=right height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~Percent~&nbsp;</font></td>
    <td align=right height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~Anteil~&nbsp;</font></td>
    </tr>
<!-- END ARTIKEL EVEN -->
<!-- BEGIN ARTIKEL ODD -->
    <tr>
    <td align=center height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~ArtNo~</font></td>
    <td height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-3>~AusgabeArt~~ArtTxt~</font></td>
    <td align=right height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~Menge~&nbsp;</font></td>
    <td align=right height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~Wert~&nbsp;</font></td>
    <td align=right height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~Percent~&nbsp;</font></td>
    <td align=right height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~Anteil~&nbsp;</font></td>
    </tr>
<!-- END ARTIKEL ODD -->
<!-- INSERT ARTIKEL -->


    <tr>
== Includes ==
    <td height=10 colspan=6 bgcolor="#FFFFFF"><font face="Verdana" size=-1><hr></td>
    </tr>


</table></td>
* Rechnung, Mahnung, Bestellung - sie alle teilen sich oft identische Vorlagen-Anteile, diese können zentral in einer eigenen Datei abgelegt werden, und von den "grossen" Vorlagen einbezogen werden. An die Stelle des Befehles <code>&lt;&#033;-- INCLUDE datei.html --></code> wird die komplette Datei "datei.html" eingelesen und an diesem Platz eingefügt.
</tr>
* Wird "INCLUDE datei.html" z.B. inerhalb der Vorlage Rechnung.html verwendet, so wird zunächst
</table>
** im ersten Rang die Datei Rechnung.html.datei.html gesucht, wird sie nicht gefunden so wird
<P class=breakhere></P>
** im zweiten Rang die Datei datei.html gesucht
<!-- END PAGE_NEXT -->


<!-- BEGIN PAGE_LAST -->
&lt;&#033;-- BEGIN PAGE_SINGLE -->
<!-- SET MAXLINES 18 ArtTxt,MW -->
&lt;&#033;-- SET MAXLINES 28 PunkteText,Text,MW -->
<table width=100% border=0 cellspacing=0 cellpadding=0>
  &lt;br>
<tr>
  &lt;table width=100% border=0 cellspacing=0 cellpadding=0>
  <td>&nbsp;<br><font face="Verdana" size=2>
    &lt;tr>
  <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    &lt;td width=5%>&nbsp;&lt;/td>
  <b>~Beleg Titel~  (Seite ~Seite~ von ~Seiten~)</b><BR><BR></font></td>
     &lt;td width=95%>
</tr>
     &lt;font face="Verdana" size=3>&lt;b>OrgaMon-App Projektentwicklung Umlagebeleg ~R#~&lt;/b>&lt;br>
<tr>
     &lt;br>
  <td>
&lt;&#033;-- INCLUDE header.html -->
  <table cellpadding=1 cellspacing=2 border=0 width="100%">
&lt;&#033;-- INCLUDE tablesumme.html -->
    <tr>
&lt;&#033;-- INCLUDE footer.html -->
    <td align=center height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Artikel-Nó</font></td>
     &lt;/td>
    <td height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Titel</font></td>
    &lt;/tr>
    <td align=right height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Verkaufs-menge</td>
  &lt;/table>
    <td align=right height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Warenwert</td>
&lt;&#033;-- END PAGE_SINGLE -->
    <td align=right height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Prorata%</td>
    <td align=right height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Prorata</font></td>
    </tr>
<!-- BEGIN ARTIKEL EVEN -->
    <tr>
    <td align=center height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~ArtNo~</td>
    <td height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-3>~AusgabeArt~~ArtTxt~</font></td>
    <td align=right height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~Menge~&nbsp;</font></td>
     <td align=right height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~Wert~&nbsp;</font></td>
     <td align=right height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~Percent~&nbsp;</font></td>
    <td align=right height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~Anteil~&nbsp;</font></td>
    </tr>
<!-- END ARTIKEL EVEN -->
<!-- BEGIN ARTIKEL ODD -->
    <tr>
    <td align=center height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~ArtNo~</font></td>
    <td height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-3>~AusgabeArt~~ArtTxt~</font></td>
    <td align=right height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~Menge~&nbsp;</font></td>
     <td align=right height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~Wert~&nbsp;</font></td>
    <td align=right height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~Percent~&nbsp;</font></td>
    <td align=right height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~Anteil~&nbsp;</font></td>
    </tr>
<!-- END ARTIKEL ODD -->
<!-- INSERT ARTIKEL -->
    <tr>
    <td height=10 colspan=6 bgcolor="#FFFFFF"><font face="Verdana" size=-1><hr></td>
    </tr>
    <tr>
    <td height=10 colspan=3 bgcolor="FFFFFF"><font face="Verdana" size=-1>&nbsp;</td>
    <td height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Summe</font></td>
    <td height=10 colspan=2 align=right bgcolor="#C8D8E0"><font face="Verdana" size=-1>~ZS~&nbsp;</font></td>
    </tr>
<!-- BEGIN MWST -->
    <tr>
     <td height=10 colspan=3 bgcolor="FFFFFF"><font face="Verdana" size=-1>&nbsp;</td>
    <td height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>ges.MwSt. ~MwStSatz~%</font></td>
    <td height=10 colspan=2 align=right bgcolor="#C8D8E0"><font face="Verdana" size=-1>~MW~&nbsp;</font></td>
    </tr>
    <tr>
    <td height=10 colspan=3 bgcolor="FFFFFF"><font face="Verdana" size=-1>&nbsp;</td>
    <td height=10 bgcolor="#C8D8E0"><font face="Verdana" size=-1>Summe</font></td>
    <td height=10 colspan=2 align=right bgcolor="#C8D8E0"><font face="Verdana" size=-1>~GS~&nbsp;</font></td>
    </tr>
<!-- END MWST -->
<!-- INSERT MWST -->


</table></td>
== Mehrseitige Vorlage ==
</tr>


<tr>
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<td>
&lt;html>
<font face="Verdana" size="-1">
&lt;HEAD>
<br>
&lt;title>&lt;/title>
Anbei erhalten Sie die Abrechnung Ihrer bei uns verlegten Kompositionen bzw. Arrangements. Über den Abrechnungsbetrag liegt entweder ein Verrechnungsscheck bei oder wir werden in den kommenden Tagen eine Banküberweisung auf die
&lt;META HTTP-EQUIV="Pragma" content="no-cache">
IBAN: ~ZahlungKonto~<br>  
&lt;META HTTP-EQUIV="Cache-Control" content="no-cache, must-revalidate">
BIC: ~ZahlungBLZ~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bank: ~ZahlungBank~<br>
&lt;META HTTP-EQUIV="Expires" content="0">
veranlassen. Sollten Sie in der Zukunft eine Banküberweisung bevorzugen so bitte ich Sie uns Ihre Kontoverbindung mitzuteilen.<br>
&lt;STYLE TYPE="text/css">
<br>
&lt;&#033;--
Ich bedanke mich für die gute Zusammenarbeit.<br>
P.breakhere {page-break-before: always}
<br><br>
-->
Mit freundlichen Grüßen<br>
&lt;/STYLE>
HeBu Musikverlag GmbH<br>
&lt;/HEAD>
<br><br>
&lt;body bgcolor="#ffffff" text="#000000" link="#cc0000" vlink="#999999" alink="#ffcc00">
&lt;&#033;-- BEGIN PAGE_SINGLE -->
&lt;&#033;-- SET MAXLINES 16 ArtTxt -->
&lt;br>
&lt;br>
&lt;br>...
&lt;&#033;-- END PAGE_SINGLE -->
&lt;&#033;-- BEGIN PAGE_FIRST -->
&lt;&#033;-- SET MAXLINES 18 ArtTxt -->
&lt;P class="breakhere">&lt;&#047;P>
&lt;&#033;-- END PAGE_FIRST -->
&lt;&#033;-- BEGIN PAGE_NEXT -->
&lt;&#033;-- SET MAXLINES 29 ArtTxt,!MW -->
&lt;P class="breakhere">&lt;&#047;P>
&lt;&#033;-- END PAGE_NEXT -->
&lt;&#033;-- BEGIN PAGE_LAST -->
&lt;&#033;-- SET MAXLINES 18 ArtTxt,MW -->
&lt;&#033;-- END PAGE_LAST -->
&lt;&#033;-- INSERT PAGE -->
&lt;&#047;body>
&lt;&#047;html>


<br>
=== MAXLINES ===
</font>
</td>
</tr>


</table>
* Mit MAXLINES legt man fest wieviele "Consumer" auf eine Seite passen
<!-- END PAGE_LAST -->
* Consumer sind ~Platzhalter~, die im Falle einer Ausbelichtung Platz benötigen
<!-- INSERT PAGE -->
* "!" sind Nicht-Consumer, die nicht auf eine Seite ausbelichtet werden dürfen
</body>
 
</html>
&lt;!-- SET MAXLINES 100 PunkteText,Text,MW -->


== Blöcke ==
== Implementierung ==
== Implementierung ==


Zeile 416: Zeile 248:
=== Kommandos ===
=== Kommandos ===


          if (pos('local', Command) > 0) then
==== local ====
            if (pos(cPageBreakHerePossible, Command) > 0) then
==== pagebreak ====
            if (pos('save&delete', Command) > 0) then
            if (pos('set', Command) > 0) then
            if (pos('load', Command) > 0) then
            if (pos('write', Command) > 0) then
            if (pos('save', Command) > 0) then
            if (pos('clear', Command) > 0) then
            if (pos('delete', Command) > 0) then
            if (pos('dereference', Command) > 0) then


=== Blocks ===
* Erzeugt einen Seitenumbruch


<code>
==== save&delete ====
  cHTML_BeginBlock = '\<\!-- BEGIN ';
  cHTML_EndBlock = '<!-- END ';
  cHTML_InsertMark = '<!-- INSERT ';
  cHTML_IncludeFile = '<!-- INCLUDE ';
  cHTML_MaxLines = '<!-- SET MAXLINES ';
  cHTML_Copies = '<!-- SET NUMBER OF COPIES ';
  cHTML_ComputeFile = '<!-- COMPUTE ';
  cHTML_Let = '<!-- LET ';
  cHTML_ANSI = '<!-- ANSI ';
  cHTML_OHNE_ROHDATEN = '<!-- OHNE ROHDATEN ';
  cHTML_SortInfo = '<!-- SORT ';
  cHTML_RohdatenStart = '<!-- START DER ROHDATEN';
  cHTML_IncludesStart = '<!-- START DER INCLUDES';
  cHTML_MessagesStart = '<!-- START DER MELDUNGEN';
</code>


== Includes ==
* sucht und speichert einen Block intern
* löscht den Block aus der Vorlage
* der Block wird später in der Regel mit <code>load</code> an einer definierten insert Stelle in der Vorlage geladen
 
==== set ====
 
* setzt eine Systemvariable auf den angegebenen Wert
 
set Anlagenverzeichnis J:\Fotos\stadtwerke\
set Kontext 2882317
set Referenz 95437997
set Z#$E4hlwerkeAusbauIst 1
set Z#$E4hlwerkeEinbauIst 1
set Referenzquelle J:\xml\Referenz.xml
 
==== load FROMBLOCK[{|OTHERBLOCK}][,ASBLOCK] ====
 
* Lädt den definierten BLOCK "FROMBLOCK" und fügt ihn an der Insert-Position bei "ASBLOCK" ein.
* Ist "ASBLOCK" nicht definiert, so wird der Block an der Insert-Position "FROMBLOCK" eingefügt.
* Ist "FROMBLOCK" undefiniert wird der Block Namens "ASBLOCK" benutzt, so kann man speziell benannte optionale Blocks definieren, der load gelingt aber dennoch sollte der spezielle Block nicht vorhanden sein
* ein oder mehrere <code>OTHERBLOCK</code> können zusätzlich angegeben werden
** von links nach rechts wird dann geprüft, ob es der angegebenen Block existiert und auch Inhalt hat, ist das so, wird er benutzt
** existiert keiner, so wird ASBLOCK benutzt
 
==== write ====
 
* wie load, löscht jedoch die insert Marke
 
==== save ====
 
* Block suchen und intern abspeichern
 
==== clear ====
 
* Block aus der Vorlage löschen
 
==== delete ====
 
* wie clear, jedoch Fehlertolerant, den Block muss es nicht unbedingt geben
 
==== dereference ====
 
* Werte aus einer externen Datenquelle auflösen


== Sofort-Druck ==
== Sofort-Druck ==
Zeile 456: Zeile 307:
window.print();
window.print();
</script>
</script>
== Beispiel ==
=== Rechnung in HTML 5 ===
* In diesem Beispiel wurde die Rechnungsvorlage auf 8 Einzeldateien aufgeteilt
* Dies ermöglicht die Wiederverwendung von z.B. "Anschrift" + "design" in anderen Belegen (Mahnung, Lieferschein, usw.)
[https://github.com/Andreas-Filsinger/OrgaMon/blob/main/OrgaMon/Distribution/HTML%20Vorlagen/Rechnung.html Rechnung.html]
  [https://github.com/Andreas-Filsinger/OrgaMon/blob/main/OrgaMon/Distribution/HTML%20Vorlagen/design.html design.html]
  [https://github.com/Andreas-Filsinger/OrgaMon/blob/main/OrgaMon/Distribution/HTML%20Vorlagen/Anschrift.html Anschrift.html]
  [https://github.com/Andreas-Filsinger/OrgaMon/blob/main/OrgaMon/Distribution/HTML%20Vorlagen/header.html header.html]
  [https://github.com/Andreas-Filsinger/OrgaMon/blob/main/OrgaMon/Distribution/HTML%20Vorlagen/Position.html Position.html]
  [https://github.com/Andreas-Filsinger/OrgaMon/blob/main/OrgaMon/Distribution/HTML%20Vorlagen/Rechnung.html.footer.html Rechnung.html.footer.html]
  [https://github.com/Andreas-Filsinger/OrgaMon/blob/main/OrgaMon/Distribution/HTML%20Vorlagen/Rechnung.html.table.html Rechnung.html.table.html]
  [https://github.com/Andreas-Filsinger/OrgaMon/blob/main/OrgaMon/Distribution/HTML%20Vorlagen/Rechnung.html.tablesumme.html Rechnung.html.tablesumme.html]

Aktuelle Version vom 28. Oktober 2023, 14:54 Uhr

  • Alle Dokumente, die der OrgaMon erzeugt sind .html Dateien
  • Diese werden nicht aus eigener Kraft erstellt, sondern grundsätzlich anhand einer .html Vorlage-Datei "ausbelichtet" (HTMLVorlage)
  • Dabei wird die Vorlage aus dem Verzeichnis ".\HTML Vorlagen\" geladen und alle ~Platzhalter~ durch einen echten Inhalt ersetzt
  • Für die Änderung der Vorlagen empfiehlt sich notepad++
    • Damit können Sie einen rechten Mausklick auf die .html Vorlage machen und "Beabeiten mit notepad++" auswählen
  • Die Vorlage kann aus mehreren Dateien kombiniert werden (Includes), do dass nicht für jede Vorlage immer wieder der Anschrift- Bereich identisch kopiert werden muss
  • Das fertige .html ist aber immer eine Datei, Bilder und Logos sollten immer eine Referenz ins Internet haben, so dass das Dokument auch ausserhalb der Firma funktioniert
  • Verwenden Sie UTF-8 als Zeichenkodierung

Name der Vorlage-Datei

  • Belege steuern durch das Feld BSTATUS und VORLAGE_PREFIX den Dateinamen der Vorlage, die geladen wird
  • Alle Vorlagen- Dateien werden aus dem OrgaMon-Verzeichnis .\HTML Vorlagen\ geladen

BSTATUS

BSTATUS     HTML-Vorlage
A           Angebot.html
G           Garantie.html
Z           Zeitabrechnung.html
ansonsten   Rechnung.html
 
  • Ist "als Lieferschein" angekreuzt heisst die Vorlage Lieferschein.html

VORLAGE_PREFIX

  • Vor den jeweiligen Dateinamen wird noch der VORLAGE_PREFIX gesetzt
  • Besonders bei Verträgen kann im Vorlage-Beleg der Vorlage-Prefix geschickt gesteuert werden um auf der Rechnung das richtig Outfit festzulegen.
  • Man beachte dass allein durch Wahl einer Motivation (bei der Belegneuanlage) auch der Vorlage-Prefix bestimmt werden kann!
    • In der MOTIVATION kann eingeschlossen in eckigen Klammern der Vorlage-Prefix vorbereitet werden (z.B. "USA Besteller [US-]")

BEGIN Blockname

Ein Text-Block ermöglicht es mehrzeilige Tabellen auszugeben. Dabei ist eine Datenzeile in der Ausgabe immer ein gefüllter Block der Vorlage. In der Vorlage markiert man einen Abschnitt als Block:

<!-- BEGIN ARTIKEL -->

Beim Laden der Vorlage wird dieser Block zunächst entfernt. "Braucht" die Ausbelichtung diesen Block wird er an einer INSERT Blockname-Marke eingefügt und ausbelichtet. Gibt es z.B. 3 Zeilen in einer Datenbank-Tabelle, so wird der Block 3 mal hintereinander mit unterschiedlichen Daten ausgegeben. Das Ende eines Blocks wird mit

<!-- END ARTIKEL -->

markiert. Beispiel.

<!-- BEGIN ARTIKEL EVEN -->
   <tr>
    <td align=center height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~ArtNo~</td>
    <td height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-3>~AusgabeArt~~ArtTxt~</font></td>
    <td align=right height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~Menge~ </font></td>
    <td align=right height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~Wert~ </font></td>
    <td align=right height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~Percent~ </font></td>
    <td align=right height=10 bgcolor="#E8F4F8"><font face="Verdana" size=-1>~Anteil~ </font></td>
   </tr>
<!-- END ARTIKEL EVEN -->
<!-- BEGIN ARTIKEL ODD -->
   <tr>
    <td align=center height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~ArtNo~</font></td>
    <td height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-3>~AusgabeArt~~ArtTxt~</font></td>
    <td align=right height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~Menge~ </font></td>
    <td align=right height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~Wert~ </font></td>
    <td align=right height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~Percent~ </font></td>
    <td align=right height=10 bgcolor="#E0E0E0"><font face="Verdana" size=-1>~Anteil~ </font></td>
   </tr>
<!-- END ARTIKEL ODD -->
<!-- INSERT ARTIKEL -->

SET MAXLINES

 <!-- SET MAXLINES -->

SET NUMBER OF COPIES

 <!-- SET NUMBER OF COPIES -->

COMPUTE

 <!-- COMPUTE -->

LET

 <!-- LET -->

ANSI

 <!-- ANSI -->

OHNE ROHDATEN

 <!-- OHNE ROHDATEN -->

SORT

 <!-- SORT -->

START DER ROHDATEN

 <!-- START DER ROHDATEN -->

START DER INCLUDES

 <!-- START DER INCLUDES -->

START DER MELDUNGEN

 <!-- START DER MELDUNGEN -->

Variable

Je nach Context stellt der OrgaMon verschiedenen Variable zur Verfügung, die im Template verwendet werden können. Im Rahmen der Belichtung werden die Variable ersetzt, und es erscheinen anstelle des Variablennamen echte Inhalte. Es gibt vordefinierte Variablen Listen, die bei den meisten Dokumenten verfübgar sind.

Basis

~Datum~    heutiges Datum

Artikel

~Artikel~                TITEL
~No~                     NUMERO
~Komponist~              e_r_MusikerName(KOMPONIST_R)
~KomponistNachname~      e_r_MusikerNurNachName(KOMPONIST_R)
~Arrangeur~              e_r_MusikerName(ARRANGEUR_R)
~ArrangeurNachname~      e_r_MusikerNurNachName(ARRANGEUR_R)
~Verlag~                 e_r_Verlag(VERLAG_R)
~VerlagNo~               VERLAGNO
~Konto~                  b_r_Konto(SORTIMENT_R)
~Lager~                  e_r_LagerPlatzNameFromLAGER_R(LAGER_R)
~GEMA_WN~                GEMA_WN

Personen

~K#~                  NUMMER
~H#~                  HAUPT_NUMMER
~KontoAR~             KONTO_AR
~KontoER~             KONTO_ER
~Anrede~              ANREDE
~Ansprache~           ANSPRACHE
~Vorname~             VORNAME
~Nachname~            NACHNAME
~Name~                VORNAME ' ' NACHNAME
~Fax~                 PERSON
~Telefon~             e_r_telefon(RID)
~Handy~               HANDY
~eMail~               USER_ID
~Versicherungsnummer~ VERSICHERUNGSNUMMER
~Adressat1~           e_r_Adressat(RID)[0]
~Adressat2~           e_r_Adressat(RID)[1]
~Adressat3~           e_r_Adressat(RID)[2]
~Adressat4~           e_r_Adressat(RID)[3]
~Name1~               NAME1
~Name2~               NAME2
~Strasse~             STRASSE
~Ort~                 e_r_Ort(PRIV_ANSCHRIFT_R)

Formatierungen mit "!"

  • Feldinhalte lassen sich noch in ihrem Format verändern, also ~B2~!
  • siehe hier

Mehrseitigkeit

Bei mehrseitigen Dokumenten muss man 4 Typen von Seiten vorbereiten (Für jeden Typ einen BLOCK):

  • PAGE_SINGLE: Die einzige Seite für den Fall, dass alles auf einer Seite Platz hat
  • PAGE_FIRST: Die erste Seite für den Fall, dass ein mehrseitiges Dokument ensteht
  • PAGE_NEXT: Bei mehrseitigen Dokumenten, ist es die Seite 2 ff
  • PAGE_LAST: Bei zumindest 2 seitigen Dokumenten ist es die letzte Seite

Includes

  • Rechnung, Mahnung, Bestellung - sie alle teilen sich oft identische Vorlagen-Anteile, diese können zentral in einer eigenen Datei abgelegt werden, und von den "grossen" Vorlagen einbezogen werden. An die Stelle des Befehles <!-- INCLUDE datei.html --> wird die komplette Datei "datei.html" eingelesen und an diesem Platz eingefügt.
  • Wird "INCLUDE datei.html" z.B. inerhalb der Vorlage Rechnung.html verwendet, so wird zunächst
    • im ersten Rang die Datei Rechnung.html.datei.html gesucht, wird sie nicht gefunden so wird
    • im zweiten Rang die Datei datei.html gesucht
<!-- BEGIN PAGE_SINGLE -->
<!-- SET MAXLINES 28 PunkteText,Text,MW -->
  <br>
  <table width=100% border=0 cellspacing=0 cellpadding=0>
   <tr>
    <td width=5%> </td>
    <td width=95%>
    <font face="Verdana" size=3><b>OrgaMon-App Projektentwicklung Umlagebeleg ~R#~</b><br>
    <br>
<!-- INCLUDE header.html -->
<!-- INCLUDE tablesumme.html -->
<!-- INCLUDE footer.html -->
    </td>
   </tr>
  </table>
<!-- END PAGE_SINGLE -->

Mehrseitige Vorlage

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<HEAD>
<title></title>
<META HTTP-EQUIV="Pragma" content="no-cache">
<META HTTP-EQUIV="Cache-Control" content="no-cache, must-revalidate">
<META HTTP-EQUIV="Expires" content="0">
<STYLE TYPE="text/css">
<!--
P.breakhere {page-break-before: always}
-->
</STYLE>
</HEAD>
<body bgcolor="#ffffff" text="#000000" link="#cc0000" vlink="#999999" alink="#ffcc00">

<!-- BEGIN PAGE_SINGLE -->
<!-- SET MAXLINES 16 ArtTxt -->
<br>
<br>
<br>...
<!-- END PAGE_SINGLE -->

<!-- BEGIN PAGE_FIRST -->
<!-- SET MAXLINES 18 ArtTxt -->
<P class="breakhere"></P>
<!-- END PAGE_FIRST -->

<!-- BEGIN PAGE_NEXT -->
<!-- SET MAXLINES 29 ArtTxt,!MW -->
<P class="breakhere"></P>
<!-- END PAGE_NEXT -->

<!-- BEGIN PAGE_LAST -->
<!-- SET MAXLINES 18 ArtTxt,MW -->
<!-- END PAGE_LAST -->
<!-- INSERT PAGE -->
</body>
</html>

MAXLINES

  • Mit MAXLINES legt man fest wieviele "Consumer" auf eine Seite passen
  • Consumer sind ~Platzhalter~, die im Falle einer Ausbelichtung Platz benötigen
  • "!" sind Nicht-Consumer, die nicht auf eine Seite ausbelichtet werden dürfen
<!-- SET MAXLINES 100 PunkteText,Text,MW -->

Implementierung

 // konstante Daten, die auf jeder Seite gleich sind
 DatenSammlerGlobal: TStringList; //
 // lokale Block-Daten, die wechseln
 DatenSammlerLokal: TStringList; //

Kommandos

local

pagebreak

  • Erzeugt einen Seitenumbruch

save&delete

  • sucht und speichert einen Block intern
  • löscht den Block aus der Vorlage
  • der Block wird später in der Regel mit load an einer definierten insert Stelle in der Vorlage geladen

set

  • setzt eine Systemvariable auf den angegebenen Wert
set Anlagenverzeichnis J:\Fotos\stadtwerke\
set Kontext 2882317
set Referenz 95437997
set Z#$E4hlwerkeAusbauIst 1
set Z#$E4hlwerkeEinbauIst 1
set Referenzquelle J:\xml\Referenz.xml

load FROMBLOCK[{|OTHERBLOCK}][,ASBLOCK]

  • Lädt den definierten BLOCK "FROMBLOCK" und fügt ihn an der Insert-Position bei "ASBLOCK" ein.
  • Ist "ASBLOCK" nicht definiert, so wird der Block an der Insert-Position "FROMBLOCK" eingefügt.
  • Ist "FROMBLOCK" undefiniert wird der Block Namens "ASBLOCK" benutzt, so kann man speziell benannte optionale Blocks definieren, der load gelingt aber dennoch sollte der spezielle Block nicht vorhanden sein
  • ein oder mehrere OTHERBLOCK können zusätzlich angegeben werden
    • von links nach rechts wird dann geprüft, ob es der angegebenen Block existiert und auch Inhalt hat, ist das so, wird er benutzt
    • existiert keiner, so wird ASBLOCK benutzt

write

  • wie load, löscht jedoch die insert Marke

save

  • Block suchen und intern abspeichern

clear

  • Block aus der Vorlage löschen

delete

  • wie clear, jedoch Fehlertolerant, den Block muss es nicht unbedingt geben

dereference

  • Werte aus einer externen Datenquelle auflösen

Sofort-Druck

Automatisches Ansteuern des Druckvorganges


<script language="javascript"> window.print(); </script>

Beispiel

Rechnung in HTML 5

  • In diesem Beispiel wurde die Rechnungsvorlage auf 8 Einzeldateien aufgeteilt
  • Dies ermöglicht die Wiederverwendung von z.B. "Anschrift" + "design" in anderen Belegen (Mahnung, Lieferschein, usw.)
Rechnung.html
  design.html
  Anschrift.html
  header.html
  Position.html
  Rechnung.html.footer.html
  Rechnung.html.table.html
  Rechnung.html.tablesumme.html