|
Berichte automatisch aktualisieren
Einen Bericht auf einer Anwendungsseite in auf Anfrage oder in
regelmäßigen Abständen zu
aktualisieren, ist recht einfach: Mit Hilfe der AJAX-Technologie und
JavaScript kann dies sogar erfolgen, ohne dass die anderen Bereiche der
Anwendungsseite überhaupt betroffen sind.
Beim Umsetzen ergeben sich Unterschiede zwischen
"klassischen" und
"interaktiven" Berichten. Dieser Tipp geht
auf beide Varianten ein: Zunächst wird beschrieben, wie man einen klassischen
Bericht auffrischt, anschließend wird die Vorgehensweise für interaktive
Berichte erläutert.
Schritt 1: "Klassischen" Bericht erzeugen
Erzeugen Sie zunächst einen klassichen SQL-Bericht auf Ihrer
Anwendungsseite. Verwenden Sie als Berichtsquelle folgendes SQL:
Navigieren Sie anschließend zunächst zu den Berichtsattributen,
dort zu den Spaltenattributen und stellen
Sie für die Spalte AKTUELLES_DATUM ein
Datumsformat ein, bei dem Sie auch Minuten und Sekunden erkennen können; in diesem
Beispiel benötigen Sie das, damit Sie die Aktualisierung des Berichts erkennen
können.
Abbildung 1: Format für Berichtsspalte AKTUELLES_DATUM setzen
Stellen Sie weiterhin sicher, dass die sog.
Partial Page Refresh -Eigenschaft
des Berichts aktiviert ist (Abbildung 2).
Abbildung 2: Partial Page Refresh-Eigenschaft des Berichts setzen
Navigieren Sie dann zu den Regionsdefinition
(erste Reiterkarte)
und geben Sie der Region eine Statische ID
wie in Abbildung 3 dargestellt.
Abbildung 3: Statische ID "EMP_REPORT" vergeben
Schritt 2: Bericht mit AJAX-Technologie aktualisieren
Damit ist der Bericht vorbereitet. Hinterlegen Sie nun den JavaScript-Code,
welcher den Bericht auf Anfrage aktualisiert. Navigieren Sie dazu zu den
Seitenattributen, dort
zum HTML-Header und tragen Sie dort folgenden Code ein:
Dieser JavaScript-Code stellt Ihnen die Funktion
refreshReport({regions-id}) bereit,
welche die statische Regions-ID als Parameter entgegennimmt und den
Bericht dann entsprechend aktualisiert. Sie sollte mit allen von Oracle
mitgelieferten Berichtstemplates
funktionieren. Wenn Sie eigene Berichts-Templates verwenden, sollte
in diesen das HTML-Tag <th> für
die Spaltenüberschriften verwendet
werden - ist das nicht der Fall, müssen Sie den JavaScript-Code anpassen.
Fügen Sie nun unterhalb des Berichts eine neue Region vom Typ
HTML hinzu
und hinterlegen Sie darin folgende Regionsquelle:
Wenn Sie die Seite nun neu starten und auf den Link
Bericht aktualisieren klicken,
sollte sich der Bericht auffrischen - ob es funktioniert, erkennen Sie an der ersten
Spalte mit dem aktuellen Datum (Abbildung 4).
Abbildung 4: Bericht per Klick auf den Link aktualisieren
Schritt 3: Bericht automatisch intervallweise aktualisieren
Nun geht es im letzten Schritt daran, diese Auffrischung automatisch
intervallweise durchzuführen. Navigieren Sie dazu wiederum zur
Seitendefinition
und dort zum HTML-Header.
Fügen Sie dort zusätzlich zum bereits vorhandenen
JavaScript-Code (unterhalb) folgenden hinzu:
Die 5000
im Aufruf von setInterval gibt
(in Millisekunden) an, welches Intervall
zum Aktualisieren des Berichts verwendet werden soll. Achten Sie bei kleinen
Werten darauf, dass die Aktualisierung selbst auch ein wenig Zeit benötigt.
Speichern Sie die Seite dann ab.
Fügen Sie zum Abschluß noch zwei Links zum Ein- und Ausschalten der automatischen
Aktualisierung ein. Ändern Sie den Quelltext der HTML-Region wie folgt:
Starten Sie die Seite anschließend neu und klicken Sie auf den neuen
Link Aktualisierung beginnen.
Beobachten Sie dann, wie sich der Bericht
alle 5 Sekunden auffrischt. Ein Klick auf
Aktualisierung stoppen beendet
den Prozeß.
Interaktive Berichte automatisch aktualisieren
Die bis hierher beschriebene Vorgehensweise funktioniert nicht mit
interaktiven Berichten, da diese einen völlig anderen Aufbau haben.
Die Umsetzung ist hier allerdings noch einfacher.
Erzeugen Sie also einen interaktiven Bericht mit der gleichen SQL-Abfrage und stellen
Sie das Datumsformat der ersten Spalte ebenfalls, wie eingangs
dargestellt, auf DD.MM.YYYY HH24:MI:SS um.
Abbildung 5: interaktiver Bericht
Um einen interaktiven Bericht zu aktualisieren, brauchen Sie keine eigene
JavaScript-Funktion; rufen Sie einfach die bereits vorhandene Funktion
gReport.search('SEARCH') auf
(der Parameter SEARCH referenziert das Eingabefeld
für den Suchbegriff). Erzeugen Sie also (wie vorhin)
eine HTML-Region mit
folgender Regionsquelle unterhalb des interaktiven Berichts.
Starten Sie die Seite und probieren Sie den Link aus; der Bericht
aktualisiert sich bei Klick darauf - alle gemachten Einstellungen
bleiben erhalten. Eingaben ins Suchfeld werden berücksichtigt.
Abbildung 6: interaktiven Bericht per Klick auffrischen
Entsprechend einfach ist nun auch die Einrichtung der automatischen
Aktualisierung. Navigieren Sie nochmals zur Seitendefinition,
dort wiederum zum Seiten-Header
und fügen Sie zusätzlich zum bereits vorhandenen JavaScript-Code folgenden
hinzu.
Ändern Sie abschließend den Quelltext der HTML-Region mit dem Aktualisierungs-Link
wie folgt:
Starten Sie die Seite und probieren Sie es aus: Mit einem Klick auf
Aktualisierung starten
wird sich der interaktive Bericht alle 5 Sekunden auffrischen.
Zurück zur Community-Seite
|