Berechnung
Zuletzt geändert: 05.06.2023 15:46

Karteikarte Berechnung #

Die Berechnung erlaubt es, aus normalen Berichtsvorlagen intelligente Berichtsvorlagen zu erstellen. Das sind Berichtsvorlagen, die Scripts enthalten. Über Scripts lässt sich das Erscheinungsbild des Ausdrucks in Abhängigkeit von Bedingungen verändern. So ist es zum Beispiel über ein geeignetes Script möglich, zwei verschiedene Briefköpfe in einer Vorlage zu verwalten. Ein Briefkopf, der beim Faxen benutzt wird und einer, der beim Ausdrucken verwendet wird. Die Scriptsprache, mit der dies möglich ist, heißt Pascal-Script und ist mit den Erweiterungen im Entwickler-Handbuch beschrieben. Da EULANDA® selbst in Delphi (=Pascal Nachfolger) erstellt ist, ist diese Scriptsprache optimal auf das Programm abgestimmt.

Allgemeines #

Die Funktionen innerhalb des EULANDA®-Berichts-Designers sind sehr mächtig und vielseitig. Es lassen sich jedoch durch statische Verknüpfungen und durch das Setzen von Eigenschaften nicht alle Resultate in anspruchsvollen Berichten realisieren.

Immer dann, wenn Elemente anhand von Bedingungen in ihren Eigenschaften verändert werden sollen, benötigen wir Scripts. Was für MSDOS die Batchdatei ist, ist für moderne Anwendungssysteme die Scriptsprache. EULANDA® benutzt als Scriptsprache für das Berichtswesen die Sprache Pascal. Dies ist naheliegend, da der Berichts-Designer wie auch das komplette EULANDA®-System in Pascal bzw. Delphi erstellt wurde.

Durch Verwendung derselben Scriptsprache lassen sich Berichte nahtlos in EULANDA® integrieren, ohne auf die Vorteile der freien Definition eines Berichts verzichten zu müssen.

Hinweis

Dieses Kapitel ist nur ein kurzer technischer Abriss der Pascal-Script-Möglichkeiten und zeigt in einer kurzen Übersicht die Bedienung des Script-Editors. Die technische Dokumentation zu den einzelnen Script-Befehlen befindet sich in einem eigenen Handbuch der Online-Hilfe.

Compiler #

Scripts sind kleine Programmteile, die durch den Berichts-Designer vorkompiliert (übersetzt) werden. Die verschiedenen Sprachelemente können per Drag&Drop aus der Toolbox in das Script-Editorfenster gezogen werden. Unter Kompilieren versteht man die Übersetzung einer Sprache, in diesem Fall der Sprache Pascal, in eine für Maschinen verständliche Form. Der EULANDA®-Compiler erzeugt hierbei keine Maschinensprache, sondern bewegt sich, ähnlich wie JAVA, auf einer unabhängigen Ebene. Der Vorteil der Kompilierung ist vor allem die während der Laufzeit schnellere Ausführungsgeschwindigkeit. Darüber hinaus werden Syntaxfehler (Grammatikfehler) sofort erkannt.

Ereignisgesteuert #

Ein Script wird ereignisgesteuert ausgeführt. Hierzu hat jedes Objekt, ob es nun der Hauptbericht, die einzelnen Bänder oder die zu platzierten Objekte selbst sind, eine Reihe von Ereignissen. Diese werden durch eine interne Logik automatisch aufgerufen. Wird so ein Ereignis mit einem Script verknüpft, so wird dieses ausgeführt, sobald das Ereignis eintritt. Es gibt Ereignisse, die direkt bei Druckbeginn ausgelöst werden, andere bei Druckende oder wenn ein Seitenwechsel zustande kommt, wieder andere Ereignisse werden ausgelöst, sobald ein Datensatz wechselt usw.

EULANDA® kennt ca. 100 Ereignisse, so dass man durch Scripts im richtigen Ereignis jede gewünschte Funktionalität erreichen kann.

Eigenschaften und Methoden #

Über Scripts lassen sich Elemente in ihren Eigenschaften verändern und dies in Abhängigkeit von Bedingungen. Bedingungen können hierbei sein, dass eine Rechnung negative Erträge hat, Kunden mit besonders hohem Umsatz kann eine Bedingung sein oder eine Reaktion auf bestimmte Warengruppen, bestimmte Wochentage oder Texte, die in Feldern enthalten sein sollen.

Auf alle diese Bedingungen kann ein Script reagieren und Veränderungen durchführen. Veränderungen können zum Beispiel das Unsichtbarmachen von Elementen, von Regionen oder ganzen Druckbereichen sein, aber auch die Änderung von Schrift, Farbe, Position, Größe oder der Inhalt von Feldern.

Durch Berechnungen lassen sich Feldänderungen durchführen; hierdurch kann zum Beispiel ein kompletter Zinsplan oder eine Leasingtabelle erstellt und am Ende eines Angebotes ausgeben werden.

Scripts kommen auch dann zum Einsatz, wenn man einen Bericht für verschiedene Zwecke nutzen möchte. Zum Beispiel ist es denkbar, eine Rechnung ohne Briefpapier zu drucken; wird diese aber gefaxt, so soll ein elektronisches Briefpapier hinterlegt werden. Ein Script kann diese Zustände erkennen und das Briefpapier für Ausgaben auf dem Drucker unsichtbar machen.

Fazit #

Durch Scripts lassen sich Dinge lösen, die sonst nur im Programm selbst realisiert werden könnten, also nicht mehr von außen frei änderbar wären.

In den Tutoren werden Berichtsvorlagen besonders beschrieben, speziell das Warum und Wie ist dort genau erläutert. Das Verstehen der Beschreibung setzt Kenntnisse in Pascal-Script und der Abfragesprache SQL voraus. Beide Voraussetzungen (Pascal-Script und SQL) sind in den Zusatzhandbüchern der Onlinehilfe beschrieben.

Beispiel #

Die Lieferanschrift soll im Kopfbereich der Rechnung neben der Anschrift nur ausgegeben werden, wenn eine einzige Lieferanschrift vorhanden ist; sind mehrere Lieferscheine zur Rechnung vorhanden, so sollen die Lieferanschriften im Rechnungstext durch Zwischenüberschriften dargestellt werden. Für den Fall, dass Rechnungs- und Lieferanschrift identisch sind, soll die Lieferanschrift ebenfalls nicht gedruckt werden. Eine typische Aufgabe für ein Script.

Aufbau des Scripteditors #

Scripts können direkt im Berichts-Designer erstellt werden. Hierzu wählen Sie die Karteikarte „Berechnungen“ an. Diese Karteikarte ist in vier große Bereiche untergliedert.

img

Aufbau

Die Elemente #

Der Bereich für die Elemente befindet sich oben links. Dort werden alle verwendeten Elemente in einer Gliederung angezeigt. Diese Gliederung ist wie ein umgedrehter Baum aufgebaut, dessen Wurzel ist das Hauptelement, also der „Report“. Davon abgehend sind die einzelnen Bänder (= Äste) und von den Bändern gehen die darauf positionierten Elemente (=Blätter) ab.

Die Ereignisse #

Zu jedem der Elemente gibt es eine Reihe von Ereignissen. Diese finden Sie oben rechts. Wird in der Elemente-Auswahl eines der Elemente angewählt, so kann man im Ereignisbereich die zu diesem Element verfügbaren Ereignisse ansehen.

Um die Ereignisse sehen zu können, muss ggf. im Menü unter „Ansicht“ die Option „Ereignisse“ angewählt sein.

Über das rechte Mausmenü über einem Ereignis kann ein Script über den Punkt „Neu“ angelegt oder ein vorhandenes Script gelöscht werden.

Scripts #

Scripts werden im Bereich unten links jeweils zu den Ereignissen gespeichert. Man kann ein Ereignis im oberen rechten Bereich auswählen und dann im Scriptbereich das Script dazu erstellen, indem mit der Maus in den Scriptbereich geklickt wird. Ein Funktionsblock erleichtert dies. Das gewünschte Pascal-Script muss nur noch in den Block geschrieben werden.

Script lassen sich im Ereignisbereich löschen. Dort gibt es die Funktion „Löschen“ im Rechte-Mausmenü.

img

Fehler im Script

Ein Script kann über das rechte Mausmenü kompiliert werden. Fehler können so noch im Editor festgestellt und korrigiert werden. Die Fehlermeldung wird im unteren Fenster angezeigt. Ein Doppelklick auf die Fehlermeldung zeigt nach Möglichkeit die fehlerhafte Zeile im Scriptbereich an.

Im oberen Beispiel heißt die Eigenschaft des Elementes „TextTitel“ nicht „Kaption“, sondern „Caption“. Solche Fehler sind vermeidbar, wenn man die Eigenschaft des Elementes direkt mit Drag&Drop aus der Toolbox zieht.

Nach Änderungen im Scriptbereich sollten Sie vor dem Speichern in jedem Fall die Berichtsvorlage in der Vorschau kontrollieren.

Tipp

Möchte man sich schnell in einem Bericht informieren, ob dort Scripts hinterlegt sind, so ist es recht mühsam, alle Objekte im Menübaum durchzusehen, auch wenn hinterlegte Scripts durch farbigen Eintrag gekennzeichnet sind. Einfacher ist es, im Menü „Ansicht“ auf die Option „Verwendete Module“ zu schalten. Im Ereignisbereich werden dann sofort alle hinterlegten Scripts aufgelistet.

Toolbox #

Die Toolbox unten rechts enthält alle wesentlichen Eigenschaften, die zu den einzelnen Elementen über Scripts gesetzt werden können. Die Toolboxansicht kann über eigene kleine Karteikarten am unteren Rand zwischen Daten, Elemente und Sprache gewechselt werden.

Daten #

Diese Ansicht zeigt zu den Datenquellen die enthaltenen Felder und dazugehörenden Datentypen. Der Datenabschnitt ist in zwei Fenster unterteilt. Im oberen Fenster wird die Datenquelle eingestellt. Im unteren Fenster werden jeweils die Felder der ausgewählten Datenquelle dargestellt.

img

Datenquelle

Wird ein Feldwert im Skript benötigt, so kann er mit Drag&Drop in den Scriptbereich an die gewünschte Stelle gezogen werden.

Hinweis

Die Datenquelle „Grundwerte“ ist automatisch in allen Berichten vorhanden. Die Felder der Grundwerte werden aus dem Betriebssystem (Benutzer, PC-Name usw.) und der SQL-Registry geladen. Im Script können aus technischen Gründen keine externen Datenquellen benutzt werden. Weder die Grundwerte noch Felder aus den Datenquellen Rechnungen usw.

Um Werte dieser Felder im Script nutzen zu können, muss man im Layout eine Datenbankvariable platzieren und dieses Feld auf nicht sichtbar schalten. Dies wird mit der rechten Maustaste gemacht.

Im Script kann dann über den Namen des Datenbankelementes und dessen Werteigenschaft z.B. DbText1.FieldValue zugegriffen werden.

Elemente #

Zu allen im Entwurf positionierten Elementen kann man in der Toolbox die Eigenschaften abrufen und über Scripts teilweise auch setzen. Im oberen Fensterteil wählen Sie hierzu das Element aus der Baumansicht aus. Im unteren Teil werden Eigenschaften des ausgewählten Elementes angezeigt. Die wichtigste Eigenschaft ist sicherlich „visible“. Hierüber lässt sich einstellen, ob das Element gedruckt wird oder unsichtbar sein soll. Aber auch die Ausdehnung und Position (Left/Top) und andere Eigenschaften können im Script während des Ausdrucks gelesen und verändert werden.

img

Elemente

Sprache #

Der Sprachumfang der Scriptsprache ist auf der letzten Karteikarte der Toolbox abrufbar. Alle Sprachfunktionen wurden in Gruppen eingeteilt, die im oberen Fenster gelistet sind. Die Scriptsprache setzt sich aus den Pascal-Grundbefehlen und den hier auswählbaren Erweiterungen zusammen. Der Sprachumfang wird ständig erweitert und an die wachsenden Bedürfnisse angepasst. Die Dokumentation zu den einzelnen Befehlen ist in einem eigenen Handbuch der Onlinehilfe beschrieben. Dieses Handbuch heißt „Pascal-Script für intelligente Berichte“.

img

Sprache in Berechnungen

Die gewünschte Funktionen kann über Drag&Drop in den Scriptbereich gezogen werden.