## 5. Vorlagen ### 5.1 Vorlagenerstellung Dieses Kapitel befindet sich in Arbeit (leider schon viel zu lange). Genau genommen handelt es sich lediglich um eine grobe Beschreibung und eine Sammlung von Informationen, die mir irgendwie zugefallen sind Eine komplette Liste aller Befehle finden Sie im Anhang, im Kapitel 6.5 Befehlsübersicht für Exportvorlagen. Konventionen bei der Vorlagenerstellung in Familienbande Zeilen, die mit [! beginnen sind Kommentarzeilen und werden nicht ausgegeben Die Zeichen [ und ] sind zum Kennzeichnen von Befehlen reserviert. Sollen die Zeichen [ und ] als Text ausgegeben werden, ist ein \ voran zu stellen (z.B. \[ und \]) Befehlsaufbau: Befehle sind in eckige Klammen zu setzen. Der Befehl setzt sich im Regelfall aus dem Grundbefehl und einer geklammerten Index-Nr. zusammen. Befehle die sich auf Partner oder Kinder beziehen bekommen zusätzlich die Nummer des Kindes vorangestellt. Die in Klammern gesetzte Index-Nr. definiert die Person, für die der Grundbefehl gelten soll. So ergibt der Befehl [konfession(23)] die Konfession der Person ist Index-Nr. 23. Die geklammerte Index-Nr. kann direkt angegeben werden (wie vorheriges Beispiel) oder wiederum ein Befehl sein. So ergibt [rufname([inrvater(23)])] den Rufnamen des Vaters der Person mit Index-Nr. 23. Befehle, die sich auf mehrere gleichartige Angabe beziehen können (Ehe- und Trennungsdaten sowie Kinder), bekommen zusätzlich die Nummer der gewünschten Ehe/Trennung oder des Kindes vorangestellt. [2. eheort(23)] wird also den Eheort der 2. Ehe von der Person mit Index-Nr. 23 liefern oder [4kind(23)] liefert die Index-Nr. des 4. Kindes der Person mit Index-Nr. 23. Diese Index-Nr. können Sie verwenden um auf die Daten des Kindes zuzugreifen. Dadurch liefert [vornamen([4kind(23)])] die Vornamen des erwähnten Kindes. Die Befehle haben also einen geschachtelten bzw. hirarchischen Aufbau. Üblicherweise wollen Sie über die Angaben des Dialoges definierte Personen ausgeben und können somit keine, wie in den bisherigen Beispielen genutzten, festen Index-Nr.n angeben. Benutzen Sie anstelle einer fixen Index-Nr. die Angabe (x) um die Indexnumer vom Programm einsetzen zu lassen. Beispiel: Sie geben im Exportdialog vor, dass die Personen mit der Kekulé-Nummer 1-127 ausgegeben werden sollen. Die Vorlage enthält nur den Befehl [vornamen(x)]. Familienbande wird nun alle Vornamen der Personen mit den Kekulé-Nummern 1-127 ausgeben. Bedingte Ausgabe Für die bedingte Ausgabe stehen die Befehle [if], [else] und [end], sowie [exists(x)], [/exists(x)], [exported(x)] und [/exported(x)] zur Verfügung. Das x ist durch einen Wert oder einen Befehl zu ersetzen. Ebenso gibt es Vergleichsmöglichkeiten für Bedingungen. So bewirkt ein: [if][inrmutter([1inrkind(x)])]=[1inrpartner(x)] dass die folgenden Zeilen nur ausgegeben werden, wenn die Index-Nr. des ersten Partners der Index-Nr. der Mutter des ersten Kindes entspricht. Schleifen Schleifen beginnen mit einer Zeile, die den Befehl [loop] enthält, gefolgt von der Anzahl der Schleifendurchläufe. Die Anzahl kann als feste Zahl oder als Befehl kodiert angegeben werden. Beispiele: [loop]5 => die Schleife wird 5 mal durchlaufen [loop][anzahlkinder] die Schleife wird entsprechend der Anzahl der Kinder durchlaufen [loop][anzahlehen] => die Schleife wird entsprechend der Anzahl der Ehen durchlaufen Das Ende einer Schleife kennzeichnet eine Zeile mit dem Befehl [endloop]. Alle Zeilen dazwischen werden ausgegeben. Alle Befehle, die mit «[?» beginnen werden in der Art verändert, dass das «?» durch einen Zahlenwert ersetzt wird, der der Anzahl der bereits erfolgten Schleifendurchläufe entspricht. Beispiel: Im ersten Schleifendurchlauf wird [?inrkind] durch [1inrkind] ersetzt, im 3. Durchlauf durch [3inrkind]. Variablen Es können Variablen genutzt werden. Sie beginnen immer mit [variable, gefolgt von einer Zahl und der schließenden Klammer Beispiel: [variable1] Es besteht die Möglichkeit der Zuweisung: [variable1]=Tochter [variable1]=[nachname] Man kann damit rechnen: [variable1]=+1 Das Beispiel erhöht den Wert der Variable um 1. Es sind beliebige Additionswerte zulässig. Debugging Es stehen die Befehle [message] zum Ausgeben der restlichen Zeile in einer Hinweisbox und die Befehle [traceon], [traceoff] zum zeilenweisen Bearbeiten zur Verfügung. [CopyPicture(nr|zielname|zielbreite|zielhöhe)] Kopiert Dokument mit Nummer «nr» in den «Ordner für Bilder», gibt der kopierten Datei den Namen «zielname» und ändert die Bildgröße auf «zielbreite» x «zielhöhe». Die Proportionen werden beibehalten und ggf. «zielbreite» oder «zielhöhe» entsprechend verkleinert. Achtung! Als Zielformat wir (sofern QuickTime vorhanden ist) JPEG ausgegeben. Die Angaben «zielname», «zielbreite» und «zielhöhe» sind optional. Wenn sie weggelassen werden, wird der Originalname bzw. die Originalgröße beibehalten. Beispiel: [CopyPicture(1||100|100)] kopiert das erste Dokument (in der Hoffnung, dass es ein Bild ist) in den «Ordner für Bilder». Der Dateiname wird beibehalten und das Bild wir auf eine maximale Größe von 100x100 Pixel angepasst. [CopyFile(name|zielname)] Kopiert Dokument «name» in den «Ordner für Bilder» und gibt der kopierten Datei den Namen «zielname». Die Angabe «zielname» ist optional; wenn sie weggelassen wird, wird der Originalname beibehalten Beispiel: [CopyFile(Format.css)] Kopiert die Datei «Format.css» in den «Ordner für Bilder», der Dateiname wird beibehalten. (Vergleichsoperatoren <, =, >, /=, <=, >= beschreiben)