|
Event-Scripte |
Hoch Zurück Vor |
|
Die Event-Scripte von DataNAUT CS sind ein überaus mächtiges Werkzeug. Zu verschiedenen Zeitpunkten während der Ausführung eines Templates werden verschiedene Ereignisse ausgelöst, denen jeweils beliebig viele Event-Scripte zugewiesen werden können. Über diese Scripte kann eine Vielzahl an Aktionen gezielt zu bestimmten Zeitpunkten ausgeführt werden, angefangen bei Vorberechnungen mittels temporärer Tabellen, Überprüfung und Korrektur von Parametern, bis hin zur Protokollierung der Ausführung des Templates.
Das folgende Diagramm zeigt den typischen Ablauf der Ereignisse während der Ausführung eines Templates:
OnSessionOpen Das Event OnSessionOpen ist das erste Ereignis, das nach dem Start eines Templates ausgelöst wird. Dieses Event eignet sich vor allem für einmalige Initialisierungen wie beispielsweise das Anlegen temporärer Tabellen, entweder leer oder mit vorberechneten Inhalten, auf die im späteren Verlauf des Templates zugegriffen werden soll. Prinzipiell entspricht die Ausführung eines Templates einer Session, was bedeutet, dass dieses Event nur einmalig während der gesamten Ausführung eines Templates ausgelöst wird. Nur wenn in den Basiseinstellungen die Option Session nach Parameterwechsel zurücksetzen aktiviert ist, führt ein solcher Parameterwechsel dazu, dass auch das Ereignis OnSessionOpen erneut ausgeführt wird. BeforeMaskShow Wird im Template eine Parametermaske zur Eingabe von Parametern durch den Benutzer verwendet, dann wird bevor dieser Eingabedialog angezeigt wird das Ereignis BeforeMaskShow ausgelöst. An dieser Stelle könnte beispielsweise eine temporäre Tabelle, welche Parametereingaben enthalten soll, mit bestimmten Vorgaben initialisiert werden. Meist ist die Verwendung dieses Events in Kombination mit dem Event AfterGetMaskParameters sinnvoll: BeforeMaskShow bereitet bestimmte Daten vor (auch bei einem Parameterwechsel ohne Zurücksetzen der Session) und AfterGetMaskParameters aktualisiert diese mit den gemachten Eingaben. AfterGetMaskParameters Wurde der Dialog zur Parametereingabe angezeigt, dann wird, sobald dieser vom Benutzer mit OK geschlossen wurde, das Event AfterGetMaskParameters ausgeführt. An dieser Stelle könnten beispielsweise die Benutzereingaben protokolliert oder in eine temporäre Tabelle übertragen werden. AfterGetInjectedParameters Dieses Ereignis wird nur dann ausgelöst, wenn das Template im Injected-Modus gestartet wird und dabei Parameter übergeben wurden. Wird das Template im Injected-Modus gestartet (d.h. von einer externen Anwendung direkt aufgerufen) ohne, dass Parameter übergeben wurden, wird die Parametermaske angezeigt und statt AfterGetInjectedParameters werden wie gewohnt die beiden Events BeforeMaskShow und AfterGetMaskParameters ausgelöst. BeforeTemplateExecute Bevor die eigentlichen SQL-Abfragen (Hauptabfrage und Sub-Queries) ausgeführt werden, wird das Ereignis BeforeTemplateExecute ausgelöst. An dieser Stelle können Aktionen unabhängig von Parameterwechseln ohne Zurücksetzen der Session oder dem Vorhandensein einer Parametermaske ausgeführt werden. AfterTemplateExecute Nach Abarbeitung des Templates und nachdem z.B. die dazugehörige Datenansicht geschlossen wurde, wird das Ereignis AfterTemplateExecute ausgelöst. Im Falle von Datenansichten geschieht dies bei jedem Schließen einer einzelnen Ansicht, auch wenn nur eine von mehreren Ansichten geschlossen wird, die über Parameterwechsel gleichzeitig geöffnet wurden. Eine mögliche Verwendung für dieses Event wäre das Aktualisieren eines Zählers für erfolgreiche Ausführungen des Templates oder das reine Protokollieren der erfolgreichen Ausführung. Beispielsweise könnte im Falle eines Templates zum Drucken von Rechnungen im AfterTemplateExecute-Event in einer entsprechenden Tabelle Erstellungsdatum und Uhrzeit eingetragen werden. OnSessionClose Bevor das Template komplett beendet wird (bei Datenansichten ist dies erst der Fall, wenn alle Datenansichten/Tabellen geschlossen wurden, nicht bei einem Parameterwechsel), wird das Ereignis OnSessionClose ausgelöst. Erst danach wird die Datenbankverbindung gegebenenfalls getrennt.
|