|
Chemische Strukturen in APEX darstellen
Von André Haß, quattro research GmbH, Planegg-Martinsried
| Erscheinungsmonat |
APEX-Version |
Datenbankversion |
| Juni 2011 |
ab 3.x |
ab 9.2 |
Dieser Tipp zeigt, in einem etwas außergewöhnliches Anwendungsgebiet, was mit
Application Express alles möglich ist. Wie Abbildung 1 zeigt, können sogar
chemische Strukturen grafisch in einem APEX-Bericht dargestellt werden. Allerdings
basiert das nicht auf APEX allein, es kommen zusätzliche JavaScript-Bibliotheken
zum Einsatz.
Abbildung 1: Chemische Strukturen - in einem interaktiven Bericht grafisch dargestellt
Als Datenbasis dient das SD File Format (V2000) der Firma MDL (jetzt Symyx). Dazu gibt
es hier nähere Informationen.
Um das Beispiel aus Abbildung 1 nachvollziehen zu können, brauchen Sie also
zunächst eine Datenbanktabelle, in der die Molekül-Informationen abgelegt werden. Das
könnte im einfachsten Fall in etwa so aussehen - in der Spalte CHEM wird die
Molekülstruktur in Textform abgelegt. Wenn diese Informationen in anderen Tabellen
abgelegt wird, müsste man das Format mit Hilfe einer PL/SQL-Funktion generieren.
Danach werden Daten mit SQL Insert-Kommandos eingefügt. Damit Sie das Skript auch in
SQL*Plus laufen lassen können, sind die SQL-INSERT-Anweisungen mit begin und end
in einen PL/SQL-Block gekapselt. Die hier verwendeten Moleküldaten sind den Demodaten
der weiter unten vorgestellten JavaScript-Bibliothek
JSDraw entnommen.
Nun geht es an die APEX-Applikation. Erstellen Sie zunächst eine Anwendungsseite
mit einem Bericht - Sie können einen "klassischen" oder interaktiven Bericht verwenden.
Verwenden Sie folgendes Berichts-SQL.
Die grafische Darstellung des Moleküls wird in der Spalte CHEM erfolgen. Deshalb ist es wichtig,
dass diese in den Berichtsattributen auf Standardberichtsspalte steht - es darf keine
automatische Maskierung der HTML-Sonderzeichen stattfinden (Abbildung 2).
Abbildung 2: Spalte "CHEM" als "Standardberichtsspalte" einstellen
Das eigentliche Rendern der grafischen Molekülstruktur wird von der JavaScript-Bibliothek
JSDraw übernommen. Auf den Webseiten von scilligence.com steht diese zum Download bereit. Damit der Tipp ausprobiert werden kann,
wurden diese auf den Webservern der quattro research GmbH bereitgestellt. Navigieren Sie nun
also zu den Seitenattributen der APEX-Seite, dort zum Seiten-Header und fügen Sie folgenden
Code, der für das Laden der JavaScript-Bibliotheken verantwortlich ist, ein.
Wenn Sie die Seite nun starten, passiert noch nichts. In der Berichtsspalte CHEM sehen
Sie lediglich einen leeren Rahmen. Das liegt daran, dass die JavaScript-Bibliothek zwar
geladen, aber noch nicht aktiviert wurde. Navigieren Sie also nochmals zu den Seitenattributen
und dort zum HTML Body Attribut. Tragen Sie dort onLoad="JSDraw.init();" ein. Zusätzlich stellen
Sie den Cursor-Fokus bei den Anzeigeattributen auf Cursor nicht als Fokus um. Speichern Sie
alles ab und starten Sie die Seite neu. Sie sollten nun bei sich die in Abbildung 1 dargestellte
Anwendungsseite sehen.
André Haß ist Softwareentwickler bei der
quattro research GmbH in Planegg-Martinsried
bei München. Bei Fragen zum Thema erreichen Sie ihn unter andre{dot}hass{at}quattro{dash}research{dot}com.
Zurück zur Community-Seite
|