Oracle Forms • Oracle Forms ist eine Applikation für den Entwurf und die Erstellung Forms-basierender Anwendungen. • Diese Forms umfassen ¾ Dateneingabe-Formulare ¾ Datenabfrage-Formulare ¾ Browser-Formulare Oracle Forms ist ein Teil der Oracle Developer Suite Oracle Forms Dr. Annemarie Herrmann Starten von Oracle Forms 1. Start OC4J (Oracle Components for Java) Æ muss im Hintergrund laufen 2. Start Forms Builder (in der Oracle Developer Suite) Aufbau und Bestandteile von Formularen Ein Formular ist eine Zusammenstellung von Objekten. Objekte sind z. B.: ¾Datenblöcke (aus Tabellen oder Views) ¾Steuerblöcke (z. B. Buttons) ¾Leinwände (Canvas) ¾Datensatzgruppen (Record group) ¾Wertelisten (LOV's) ¾Trigger ¾Fenster ¾... Oracle Forms Dr. Annemarie Herrmann Erstellen eines neuen Blocks (1) 1. Der Assistent (Werkzeuge / Datenblockassistent) wird gestartet 2. Tabelle oder View dient als Datenquelle 3. Um Spalten aus einer Tabelle oder View auswählen zu können, muss man sich mit der Datenbank verbinden 3. Es erscheint der Objektnavigator Oracle Forms Dr. Annemarie Herrmann Oracle Forms Dr. Annemarie Herrmann Erstellen eines neuen Blocks (2) Die entsprechenden Attribute werden ausgewählt und, falls nötig (bei mehr als einer Tabelle), die Datenintegrität sicher gestellt. Windows und Canvas (Leinwand) 1. Ein Window (Fenster) ist ein Container für graphische Objekte (inklusive ≥ 1 Canvas-Objekte) 2. Ein Fenster beinhaltet einen Titel, evt. Bildlaufleisten (scroll bars) und erlaubt fensterbezogene Benutzerinteraktionen (z.B. Größenänderung) 3. Eine Form kann beliebig viele Fenster beinhalten, besitzt aber mindestens ein Fenster (ROOT WINDOW) 4. In einem Fenster kann eine (oder mehrere) Leinwand platziert werden. Oracle Forms Dr. Annemarie Herrmann Leinwand (Canvas) erstellen (1) Nachdem der Layout-Assistent gestartet wurde, wird eine Leinwand erstellt. Oracle Forms Dr. Annemarie Herrmann Leinwand erstellen (2) In der Leinwand kann das Layout der künftigen Form festgelegt werden. Folgendes kann geändert werden: 1. Schriftart und Größe 2. Breite und Position der einzelnen Felder 3. Abstand und Ausrichtung der Felder – Unter Layout / Komponenten ausrichten und – Layout / Größen-Komponenten 4. Es gibt jeweils noch Untermenüs, mit denen Sie das Formular optimal gestalten können. Oracle Forms Dr. Annemarie Herrmann Oracle Forms Dr. Annemarie Herrmann Mehrere verbundene Tabellen • Werden mehrere Tabellen in einer Leinwand dargestellt, muss der Datenblock-Assistent neu gestartet werden. Achtung : der soeben erstellte Datenblock darf im Objektnavigator nicht markiert sein. Der Datenblock-Assistent fragt jetzt ab, ob er eine Beziehung erstellen soll. • Oracle Forms Dr. Annemarie Herrmann Form ausführen • Mit Programm/Form ausführen wird die Form erzeugt und im Browser dargestellt. Ist sie im Abfragemodus, kann man einen Wert eingeben, nach dem gesucht wird. Das Beispiel stellt ein Master/Detail-Formular dar. • • Oracle Forms Dr. Annemarie Herrmann Objektnavigator(1) • • Die neu erzeugten Objekte werden im Objektnavigator dargestellt Durch Rechtsklick auf den Datenblock und "Attributpalette" können noch Eigenschaften eingestellt werden (where, order by) Oracle Forms Dr. Annemarie Herrmann Objektnavigator(2) • Durch Anklicken können auch die automatisch erzeugten Trigger betrachtet werden Oracle Forms Dr. Annemarie Herrmann Datensätze ändern • Eine Form kann sich in 2 verschiedenen Modi befinden – Abfragemodus wird eingestellt mit • Abfrage / Eingabe bzw. • Abfrage / Ausführen – Eingabemodus wird eingestellt mit • Standardeinstellung • Ändern in jedem Modus – einfach den Wert überschreiben • Einfügen eines Datensatzes mit Datensatz / Einfügen (bzw. Entfernen) • Mit Aktion / Sichern wird die Änderung gespeichert. • Speichern der Form im Forms Builder mit Datei / Speichern Die Form wird als .fmb abgespeichert Oracle Forms Dr. Annemarie Herrmann Werteliste (1) • Für Felder mit einer endlichen Anzahl von Werten ist die Vorgabe einer Werteliste sinnvoll • Um eine Werteliste zu erstellen, öffnet man nach dem Erstellen eines Formulars den Wertelisten-Assistenten (z.B. mit Werkzeuge / Wertelisten-Assistent) • Im zweiten Fenster wird man aufgefordert, eine SQL-Anfrage, die die entsprechenden Werte liefert, einzutragen (oder zu generieren). Diese kann auf Syntax überprüft werden. • Man folgt weiter den Anweisungen des Assistenten. Wichtig ist die Eintragung des Rückgabewertes. Oracle Forms Dr. Annemarie Herrmann Werteliste (2) • Nachdem der Wertelisten-Assistent seine Arbeit vollendet hat, müssen noch weitere Eintragungen erfolgen, und zwar: – In der Attributpalette (rechte Maustaste) der Werteliste Funktional / Automatische Anzeige : Ja und – Attribute Spaltenzuordnung: Attributwert der Werteliste – In der Attributpalette der Datensatzgruppen Funktional / Spaltenangaben: Attributwert der Werteliste • Nach der Ausführung der Form sollte im Modus Datensatz / Einfügen bei dem Wertelistenattribut nach Doppelklick eine Werteliste erscheinen Oracle Forms Dr. Annemarie Herrmann Trigger (1) Mit Oracle-Forms können einfache Trigger automatisch auf – Formularebene – Blockebene – Feldebene erstellt werden. Es gibt bei Oracle-Forms unterschiedliche Triggertypen, die noch durch Programmierelemente angepasst werden können. Beispiele: KEY-NEXT-ITEM KEY-OTHERS KEY-SCR-DOWN KEY-UP ON-CHECK-DELETE-MASTER ON-COMMIT ON-DELETE WHEN-NEW-FORM-INSTANCE Oracle Forms Dr. Annemarie Herrmann Trigger (3) Trigger (2) Allgemein gibt es bei Oracle Forms 4 Grundtypen von Triggern: • PRE – Trigger vor dem Ereignis ausgelöst • POST - Trigger nach dem Ereignis ausgelöst • WHEN – Trigger löst nach einer Überprüfung aus • KEY – Trigger wird nach bestimmtem Tastendruck ausgelöst Eingefügt wird ein Trigger immer durch Doppelklick auf „Trigger“ in der entsprechenden Ebene. Es öffnet sich ein Editorfenster, in das die Aktionen eingetragen werden. Siehe Online-Hilfe Oracle Forms Dr. Annemarie Herrmann Einfaches Beispiel für einen Trigger auf Formularebene. Funktionalität: Gleich beim Öffnen des Formulars sollen Datensätze angezeigt werden: – Im Objektnavigator oben unter dem Formularnamen auf Trigger klicken – Im Fenster den Typ WHEN-NEW-FORM-INSTANCE auswählen – Anklicken und im PL/SQL-Editor "execute_query;" eintragen – Alles schließen und abspeichern. Oracle Forms Dr. Annemarie Herrmann Trigger (5) Trigger (4) (Beispiel nach Ralf Tautenhahn) Funktionalität: Wert aus einer anderen Tabelle anfügen: Die Inhalte der Tabelle Stueck sollen durch den Titel des Stücks (aus Tabelle Aufnahme) ergänzt werden. 1. Im Layouteditor mit den Werten von Stueck wird ein zusätzliches Textfeld eingefügt. 2. In dessen Eigenschaften (Attributpalette) wird • • Der Name des Objektes geändert (Titel) Die Eigenschaft Datenbank|Datenbankobjekt auf Nein gesetzt 3. Im Datenblock wird ein neuer Trigger vom Typ POST-QUERY angelegt, dessen PL/SQL Code im den Wert erzeugt. 4. Im Beispiel: select titel into :aufnahme.titel from stueck where snr=:aufnahme.snr; Oracle Forms Dr. Annemarie Herrmann Oracle Forms Dr. Annemarie Herrmann Trigger (6) Button einfügen Beispiel : Vor – und Zurück - Button 1. Im Design-Editor 2 Buttons einfügen 2. In der jeweiligen Attribut-Palette die Beschriftung ändern 3. Rechts-Klick auf den jeweiligen Button es erscheint die Triggerliste 4. Auswahl: WHEN-BUTTON-PRESSED 5. PL/SQL-Fenster 6. Eintragen: begin begin previous_record; bzw. next_record; end; end; Oracle Forms Dr. Annemarie Herrmann Oracle Forms Dr. Annemarie Herrmann