|
"Label Clouds" mit Tabellendaten: Kein Problem mit Application Express!
"Label Clouds" finden sich im Internet
mittlerweile recht häufig; meistens werden
sie verwendet, um in Blogs oder Wikis die Schwerpunktthemen zu visualisieren.
In einer solchen "Wolke" werden wichtige Themen
groß und hervorgehoben dargestellt, während andere Themen kleiner erscheinen.
Abbildung 1 zeigt eine solche Label Cloud aus dem Oracle Technet.
Abbildung 1: Beispiel für eine "Label Cloud"
Label Clouds haben nicht den Anspruch, die Verhältnisse (wie ein Balkendiagramm)
exakt wiederzugeben - vielmehr dienen Sie dem Hervorheben von Unterschieden
in der Datenverteilung. Ausreißer bzw. Schwerpunkte sind in einer
solchen Visualisierung sehr gut zu erkennen - man muss den Namen nicht erst
in der Legende nachsehen. Insofern ergänzen sich grafische Diagramme und
Label Clouds sehr gut: Die Label Cloud gibt eine grobe Übersicht über die
Verteilung, ein Diagramm zeigt eine exakte Übersicht an.
Natürlich ist die Verwendung solcher Label Clouds nicht auf Blogs oder
Wikis beschränkt - auch "normale" Tabellendaten können auf diese Art und Weise
dargestellt werden. In diesem Tipp erfahren Sie, wie Sie die Verteilung der
Gehälter in der wohlbekannten Tabelle
EMP als Label Cloud darstellen können.
Zunächst benötigen Sie eine PL/SQL-Prozedur, die das Generieren der Label Cloud
für Sie übernimmt. Als Datenquelle für eine solche Prozedur können wir uns an
den bekannten Diagrammen in Application Express orientieren: Es werden ein
Label (wird dargestellt),
ein Link (darauf kann
der Endanwender klicken) und
ein Wert (daraus leiten sich
Größe und Farbe des Labels ab) benötigt - der erste Eingabeparameter
ist also (wie bei den anderen Diagrammen in APEX) eine SQL-Abfrage,
welche diese drei
Spalten zurückliefert. Weiterhin werden unter anderem Angaben zur maximalen und
minimalen Schriftgröße sowie zu den Farben für Labels mit maximalen und minimalen
Werten benötigt.
Spielen Sie zunächst das folgende PL/SQL-Paket ein. Nehmen Sie dazu entweder
den SQL Workshop,
SQL*Plus oder den
SQL Developer.
Die Prozedur LABEL_CLOUD.GENERATE_CLOUD
kann dann wie folgt genutzt werden:
Und das wollen wir nun mal testen: Erstellen Sie eine neue Anwendung oder
navigieren Sie zu einer Seite in einer bestehenden Anwendung und klicken Sie
in der Developer Toolbar auf
Erstellen, um eine neue Region zu erstellen.
Nehmen Sie Dynamischer PL/SQL Inhalt
als Regionstyp.
Abbildung 2: Neue Region "Dynamischer PL/SQL Inhalt" erstellen
Geben Sie der Region einen Namen und hinterlegen Sie als
Regionsquelle
nun einen Aufruf auf die neue Prozedur
LABEL_CLOUD.GENERATE_CLOUD wie folgt.
Übernehmen Sie ansonsten die Voreinstellungen und erstellen Sie die
Region. Bevor Sie die
Seite nun starten, navigieren Sie nochmals zu deren Eigenschaften und dort
zum Bereich Header und Footer. Tragen
Sie in den Regions-Header folgenden HTML-Tag
ein:
Dieser "DIV-Container" sorgt dafür, dass
die Labels zentriert dargestellt werden und wird
im Regions-Footer wieder geschlossen:
Starten Sie die Seite nun nochmals. Das Ergebnis sollte dann in etwa wie
in Abbildung 3 aussehen:
Abbildung 3: Das Ergebnis: Die EMP-Tabelle als "Label Cloud"
Die Label Cloud kann auch verlinkt sein - Probieren Sie dies einfach
aus, indem Sie eine weitere Seite (hier: Nummer 10) mit einem Formular
auf die Tabelle EMP hinzufügen. Nehmen Sie ein Standard-Formular auf
eine Tabelle und wählen Sie soweit möglich die Standardeinstellungen.
Anschließend ändern Sie den Aufruf der Prozedur LABEL_CLOUD.GENERATE_CLOUD
wie folgt um:
Starten Sie die Seite nun neu - Nun ist jeder Eintrag in der
Label Cloud gleichzeitig ein Link. Wenn Sie ihn anklicken, öffnet
sich Seite 10 mit dem Formular und Sie können den jeweiligen
Datensatz sofort bearbeiten (Abbildung 4):
Abbildung 4: Ein Formular als Link-Ziel
Als Datenquelle kommen alle Tabellen in Betracht - wie schon
eingangs erwähnt, kommen Label Clouds vor allem zur Visualisierung
von
ungleichen Datenverteilungen bzw. Ausreißern
in Frage. Natürlich
können alle möglichen Tabellen und alle denkbaren SQL-Abfragen als
Datenquelle in Betracht. Die folgende Abbildung 5 zeigt beispielsweise
die häufigsten Wörter in einem Dokumentbestand - dieser ist mit
Oracle TEXT indiziert; die
SQL-Abfrage basiert dann auf der sog.
Token-Tabelle des Volltextindex
und sieht in etwa so aus:
Abbildung 5: "Label Cloud" für einen Textindex
Eine andere Variante: Die Top Customers der APEX Beispielapplikation:
Abbildung 6: "Label Cloud" für die Top-Kunden der APEX Beispielapplikation
Probieren Sie es aus: Ob eine Label Cloud zur Anwendung
passt und ob es die richtige Art ist, Daten zu visualisieren,
stellt man am besten selbst fest ...
Zurück zur Community-Seite
|