Textberichtvariablen

Die Textberichtsengine erkennt eine spezifische Gruppe von Ereignissen während der Berichterstellung. Jedes Ereignis ist in der Engine durch eine Variable dargestellt.

Sie können angepasste Funktionen aus Ihrem generischen Handler einer beliebigen Variablen zuweisen, wobei Sie dieselbe Punktsyntax verwenden, die auch beim Zuweisen zu einer Variablen in einer Bibliothek zum Einsatz kommt. Eine Funktion namens printPageTotals() können Sie beispielsweise der Variablen onPageTrailerListener zuweisen, damit die Funktion auf jeder Seite ausgeführt wird, wenn der Seitennachsatz gedruckt werden soll. Der folgende Beispielcode zeigt die Zuweisung:
myReport.onPageTrailerListener = printPageTotals;
Jede dieser TextReportListener-Variablen ist vom Typ Stellvertreter. Das bedeutet, Sie können eine Funktion mit einer passenden Signatur (dieselbe Nummer und derselbe Typ von Parameter) einer dieser Variablen zuweisen. Jede Variable nimmt ein einzelnes Argument an, das einen TextReportEvent-Typ aufweist ('TextReportEvent' ist ein weiterer EGL-ExternalType-Abschnitt). In den meisten Fällen müssen Sie sich nicht auf die Details dieses Ereignistyps konzentrieren. Deklarieren Sie die Variable zum selben Zeitpunkt wie Sie die Funktion deklarieren. Dies wird in dem folgenden Beispiel gezeigt:
function printPageTotals(myEvent TextReportEvent in)
   ...
end
Sie müssen in der Funktion nicht auf myEvent verweisen. Wie der Ausnahmedatensatz (siehe Ausnahmebedingungsbehandlung) kann der TextReportEvent-Parameter Informationen zum Status des Berichts und zum Grund für den Aufruf der Funktion bereitstellen. Es gibt vier Felder in der TextReportEvent-Variablen, auf die Sie zugreifen können. Das erste Feld enthält einen Wert, der angibt, warum die Funktion aufgerufen wurde, und drei andere Felder enthalten konstante Werte, die Sie mit dem ersten Wert vergleichen können:
state
Eine ganze Zahl, die Informationen zum Ereignis enthält, das den Aufruf der Funktion ausgelöst hat. Die Variable ist auf eines der folgenden Felder festgelegt (in den meisten Fällen auf 'STATE_UNSPECIFIED').
STATE_UNSPECIFIED
Eine ganzzahlige Konstante gleich 1. Wenn das Statusfeld dem Feld 'STATE_UNSPECIFIED' entspricht, werden keine Informationen dazu bereitgestellt, warum die Funktion aufgerufen wurde.
STATE_LASTROW
Eine ganzzahlige Konstante gleich 2. Wenn das Statusfeld dem Feld 'STATE_LASTROW' entspricht, wird die Funktion aufgerufen, weil die letzte Zeile gedruckt wurde.
STATE_FIRSTROW
Eine ganzzahlige Konstante gleich 3. Wenn das Statusfeld dem Feld 'STATE_FIRSTROW' entspricht, wird die Funktion aufgerufen, weil die erste Zeile in Kürze gedruckt wird.
Der folgende Code gibt ein Beispiel für die Verwendung des Felds state in dem speziellen Fall an, dass Sie den Druck des Berichts bereits begonnen haben:
function beforeGroup (myEvent TextReportEvent in)
   if ((currentReportRecord.customerName != previousReportRecord.customerName)||
         (myEvent.state == myEvent.STATE_FIRSTROW))
      printCustomerName(currentReportRecord);
   end
end
Sie können eine Funktion einer der folgenden Variablen zuweisen:
onFirstPageHeaderListener
Zeigt auf die Funktion, die den Header der ersten Seite druckt. Weisen Sie dieser Variablen nichts zu, wenn die erste Seite nicht über einen eigenen, speziellen Header verfügt.
onPageHeaderListener
Zeigt auf die Funktion, die den Seitenheader druckt. Wenn kein Header für die erste Seite angegeben ist, wird dieser Header auf allen Seiten gedruckt. Andernfalls wird er ab der zweiten Seite gedruckt.
onEveryRowListener
Zeigt auf die Funktion, die die Zeilendaten druckt.
onLastRowListener
Zeigt auf die Funktion, die Text nach der letzten Zeile druckt. Dabei handelt es sich um den letzten Teil, der in einem Bericht gedruckt wird, abgesehen von dem Nachsatz am unteren Ende der letzten Seite.
onPageTrailerListener
Zeigt auf die Funktion, die den Nachsatztext druckt.
onBeforeGroupListener
Wird immer unmittelbar vor der Funktion 'onEveryRowListener' aufgerufen. Sie stellt einen Mechanismus zum Drucken von Text vor dem Drucken einer Gruppe von Daten bereit.
onAfterGroupListener
Wird unmittelbar vor der Funktion 'onBeforeGroupListener' aufgerufen (außer in der ersten Datenzeile). Sie stellt einen Mechanismus zum Drucken von Text nach dem Drucken einer Gruppe von Daten bereit. Sie wird auch unmittelbar vor der Funktion 'onLastRowListener' aufgerufen.

Feedback