Layout

Richtlinien zur Handhabung von RTFCC-Files
=1 Change Log=

=2 Einleitung= Es kommen immer wieder Wartungsfälle vor, in denen es heißt, dass das Layout nicht in Ordnung ist. Es gibt zwar keine Fehlermeldung, sondern die Daten werden beim Mischen scheinbar durcheinandergeworfen. So taucht z.B. die Beschilderung der Veranstaltung A bei Veranstaltung B auf.

In fast allen Fällen handelt es sich dabei um Layouts, die von den Originalen abgeleitet und dann erweitert wurden.

Im Wesentlichen handelt es sich dabei immer um die gleichen Fehler.

So wird zum einen die Blockschachtelung nicht beachtet, zum anderen auf Variablen zugegriffen, deren zugehöriger Block noch nicht geöffnet wurde.

=3 Falsche Blockstruktur= Für jedes Layout existiert eine Blockstruktur, die vom Programm her vorgegeben ist. Diese ist fix und kann nur durch Programmänderung geändert bzw. erweitert werden. Leider kann diese Blockstruktur nur zu 100% richtig aus dem Programmcode heraus analysiert werden. Eine richtige Handhabung ist daher nur dann möglich, wenn die Blockstruktur dokumentiert ist. Diese Dokumentation erfolgt in der internen Dokumentation z.B.

.../Dokumentationen/SIHOT/v3.0/Technical Documentation/German/ Interne Dokumentation v3.0.doc

Wenn die Dokumentation nicht vorliegt, so kann die Blockstruktur noch aus den Vorlagelayouts herausgelesen werden. Diese Methode kann je nach Layout aber keine 100%ige Lösung bringen, da ja nicht alle möglichen Blöcke im Layout eingearbeitet sein müssen.

Anhand von der ktginfo erfolgt nun eine Darstellung und Verarbeitung der Blockstruktur.

3.1 Auszug aus ktginfo

 * hotel
 * vertrag
 * orderer
 * positions
 * lstKtpPos
 * lstDetailKtpPos
 * kategorienKtgAll
 * lstKtgAll
 * lstDetailKtgAll
 * rabatte (tRabatt: hasRabatt|hasNoRabatt)
 * rabattePos
 * kategorienStdTax
 * lstStdTax
 * lstDetailStdTax

3.2 Erläuterung
Es gibt zwei Hauptblöcke namens hotel und vertrag. Diese sind voneinander unabhängig, also nicht verschachtelt. Daher ergibt sich im Layout folgende Struktur:

{hotel}

{/hotel}

{vertrag}

{/vertrag}

Da über Kontingentinfo mehrere Verträge gedruckt werden können, wird nun der Block vertrag um die Blöcke orderer, positions, kategorienKtgAll, rabatte und kategorienStdTax erweitert.

Im Layout schachteln sich die Blöcke nun wie folgt:

{hotel}

{/hotel}

{vertrag}

{orderer}{/orderer}

{positions}{/positions}

{kategorienKtgAll}{/kategorienKtgAll}

{rabatte}{/rabatte}

{kategorienStdTax}{/kategorienStdTax}

{/vertrag}

Während der Block orderer nicht weiter untergliedert ist, wurde positions noch in lstKtpPos und dieser wiederum in lstDetailKtpPos verfeinert.

{hotel}

{/hotel}

{vertrag}

{orderer}{/orderer}

{positions}


 * {lstKtpPos}


 * {lstDetailKtpPos}


 * {/lstDetailKtpPos}


 * {/lstKtpPos}

{/positions}

{kategorienKtgAll}{/kategorienKtgAll}

{rabatte}{/rabatte}

{kategorienStdTax}{/kategorienStdTax}

{/vertrag}

Betrachtet man nun alle möglichen Blöcke so ergibt sich dann, wobei gilt: gleiche Farbe ist gleiche Ebene; zusätzlich gibt es zu den ersten Blöcken noch je eine Variable:

{hotel} $hotelNr$

{/hotel}

{vertrag} $vertragNr$

{orderer}                                                    $Name$

{/orderer}

{positions}                                                  $lfdNr$


 * {lstKtpPos} $Kategorie$


 * {lstDetailKtpPos} $KatAnzahl$


 * {/lstDetailKtpPos}


 * {/lstKtpPos}

{/positions}

{kategorienKtgAll}


 * {lstKtgAll}


 * {lstDetailKtgAll}


 * {/lstDetailKtgAll}


 * {/lstKtgAll}

{/kategorienKtgAll}

{rabatte}


 * {rabattePos}


 * {/rabattePos}

{/rabatte}

{kategorienStdTax}


 * {lstStdTax}


 * {lstDetailStdTax}


 * {/lstDetailStdTax}


 * {/lstStdTax}

{/kategorienStdTax}

{/vertrag}

3.3 Was darf man nun tun ?
Dieses Thema sollte eigentlich jedem vertraut sein, der mit den Layouts arbeitet. nachzulesen in der technischen Dokumentation.

3.4.2 Unterblöcke ohne ihre entsprechenden Oberblöcke benutzen
=4 Variablen außerhalb des Blocks benutzen= Es ist nun möglich auch Variablen außerhalb ihres Blocks zu benutzen. Dies setzt aber voraus, dass der Block vorher schon einmal geöffnet wurde. Wird dies nicht eingehalten, so werden die betreffenden Variablen aus den falschen Datensätzen versorgt.

Anmerkung: Derzeit kann dies nicht auf Variablen vom Typ $filevar:...$ angewendet werden

=5 Hilfsmittel zur Fehlersuche ab 3.0-Versionen= Ab Version 3.0 wurde ein Dummy-Block geschaffen, mit dem die Suche nach Layout-Fehlern erleichtert wird. Der Block heisst: {dni} (= doNotInterpret). Folgende Regeln gelten:


 * Einsatz in allen Layouts möglich
 * Einleiten mit {dni} und Beenden mit {/dni}
 * Mehrfacheinsatz möglich
 * Verschachtelung nicht möglich
 * Alle Variablen die zwischen {dni} und {/dni} liegen, werden nicht interpretiert, sondern als Text durchgereicht

{| border="1" cellpadding="0" cellspacing="0" ohne  mit
 * style="width: 66px;"|
 * style="width: 226px;"|
 * style="width: 293px;"|
 * style="width: 66px;"|
 * style="width: 66px;"|

Layout
{hotel}$name$=$nr${/hotel} {hotel}{dni}$name${/dni}=$nr${/hotel} Ausgabe Hotel Meiser=500 $name$=500
 * style="width: 226px;"|
 * style="width: 293px;"|
 * style="width: 66px;"|
 * style="width: 66px;"|
 * style="width: 226px;"|
 * style="width: 293px;"|
 * }