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 wegen der Ausführung im Browser 2. Start Forms Builder (in der Oracle Developer Suite) 3. Es erscheint der Objektnavigator Oracle Forms Dr. Annemarie Herrmann 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. 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 Oracle Forms Dr. Annemarie Herrmann Windows und Canvas (Leinwand) Leinwand (Canvas) erstellen (1) 1. Ein Window (Fenster) ist ein Container für graphische Objekte (inklusive ≥ 1 Canvas-Objekte) 1. Nachdem die Spalten für den Datenblock ausgewählt und der Layout-Assistent gestartet wurde, wird eine Leinwand erstellt. 2. Ein Fenster beinhaltet einen Titel, evt. Bildlaufleisten (scroll bars) und erlaubt fensterbezogene Benutzerinteraktionen (z.B. Größenänderung) 2. In dieser werden die Attribute ausgewählt, die dargestellt werden sollen. 3. Eine Form kann beliebig viele Fenster beinhalten, besitzt aber mindestens ein Fenster (ROOT WINDOW) 3. Hier kann auch das Layout verändert werden. Günstiger ist es aber, dies später im Layout-Editor zu tun. Oracle Forms Dr. Annemarie Herrmann Leinwand (Canvas) erstellen (2) Oracle Forms Dr. Annemarie Herrmann Layoutfenster Im entstehenden Layoutfenster können nun die Layoutparameter Schrifthöhe und –breite, Anordnung, Farben usw. eingestellt werden Oracle Forms Dr. Annemarie Herrmann Oracle Forms Dr. Annemarie Herrmann Formular im Browser (1) Sortieren Im Forms Builder im Objektnavigator den Datenblock (z. B. Kunden) doppelklicken damit die Attributpalette erscheint. In der Attribut-Palette 'ORDER BY' suchen. Hinter 'ORDER BY' LASTNAME, FIRSTNAME eintragen. Speichern und Form ausführen. Oracle Forms Dr. Annemarie Herrmann Mit Programm Æ Form ausführen erhält man das fertige Formular im Browser Standardmäßig befindet man sich im Eingabemodus: mit Klick auf das grüne Kreuz können Sätze hinzugefügt werden (Klick auf das Diskettensymbol Æ commit) Oracle Forms Dr. Annemarie Herrmann Formular im Browser (2) Abfrage kann eingestellt werden. Z. B. in Kundenname L% Æ alle Datensätze von Kunden, deren Name mit L beginnt usw., dann auf ausführen klicken – auch ändern möglich Oracle Forms Dr. Annemarie Herrmann Master-Detail-Formular (1) Zur Darstellung von zwei miteinander verbundenen Relationen gibt es das Master-Detail-Formular Oracle Forms Dr. Annemarie Herrmann Master-Detail-Formular (2) Der zweite Block wird wiederum durch den Datenblock-Assistenten Erstellt. Achtung! Im Objektnavigator darf nicht der vorherige Block markiert sein. Master-Detail-Formular (3) Die Joinbedingung kann automatisch erstellt werden. Im Beispiel auf der vorherigen Folie wurde der zweite Block in Tabellenform angegeben. Es können auch noch andere verbundene Tabellen angezeigt werden. Beachte: Im Layout-Manager müssen alle Formulare auf die Leinwand passen, sonst werden diese nicht angezeigt. Oracle Forms Dr. Annemarie Herrmann Oracle Forms Dr. Annemarie Herrmann Wertelisten (LOV) (1) Vereinfachung der Eingabe für Felder mit einer diskreten Anzahl von Werten. Beispiel Tabelle TITEL: 1. Formular erstellen bis zum Layouteditor 2. Wertelistenassistenten aktivieren (unter Werkzeuge oder im Objektnavigator) 3. SQL-Anfrage, welche die Werte erzeugt, eingeben. Oracle Forms Dr. Annemarie Herrmann Wertelisten (2) 4. Datensatzgruppe im nächsten Fenster in die Werteliste übernehmen. 5. Aus Liste validieren 'Ja' 6. Assistenten beenden 7. Werteliste mit dem entsprechenden Formularfeld verknüpfen. Dazu die Attributpalette des Attributs (Nachname) öffnen und die Werteliste eintragen Oracle Forms Dr. Annemarie Herrmann Wertelisten (3) Wertelisten - Ergebnis 8. In der Attributpalette der Werteliste unter Funktional|Attribute Spaltenzuordnung die Verknüpfung vornehmen, indem das betreffende Formularfeld als Rückgabeobjekt gewählt wird. 9. 'Automatische Auswahl' auf 'Ja' setzen 10. Form ausführen Oracle Forms Dr. Annemarie Herrmann Trigger Trigger besitzen in Oracle Forms vier Grundtypen: • PRE - Trigger wird vor einen Ereignis ausgelöst. Oracle Forms Dr. Annemarie Herrmann Einfache Trigger (1) Gleich beim Öffnen des Formulars sollen Datensätze angezeigt werden: Im Objektnavigator einen neuen Trigger vom Typ WHEN-NEWFORM-INSTANCE im ’Wurzelverzeichnis’ des Formulars anlegen. Im PL/SQL-Editor 'execute_query;' eintragen. • POST - Trigger wird nach einem Ereignis ausgelöst. • WHEN - Trigger löst nach einer Überprüfung aus. • KEY - Trigger wird nach bestimmten Tastendruck ausgelöst. Um sich über die Trigger zu informieren, doppelklicken Sie im Objektnavigator auf Trigger. Es wird eine Liste aller möglichen Tirgger angeboten. Beschreibung und Beispiele finden Sie in der zugehörigen OnlineHilfe Im folgenden 3 Beispiele: Oracle Forms Dr. Annemarie Herrmann Oracle Forms Dr. Annemarie Herrmann Einfache Trigger (2) Zusätzlich zur Tabelle sollen Werte aus anderen Tabellen angezeigt werden (non-base-Tabellenfeld). Beispiel: zur Tabelle VERLEIH soll der Kundenname ausgegeben werden. 1. Eine Form mit der ursprünglichen Tabelle VERLEIH anlegen 2. Ein neues Textobjekt einfügen Einfache Trigger (3) 3. In dessen Attributpalette den Namen ändern (z. B. in 'Name') 4. Die Eigenschaft Datenbank|Datenbankobjekt auf Nein setzen. 5. Im Datenblock einen neuen Trigger vom Typ POST-QUERY anlegen, dessen PL/SQL Code sollte folgendermaßen lauten: 6. Trigger kompilieren 7. Form ausführen Oracle Forms Dr. Annemarie Herrmann Einfache Trigger (4) -Ergebnis Oracle Forms Dr. Annemarie Herrmann Einfache Trigger (5) Zum Vor- und Zurückblättern der einzelnen Datensätze sollen Buttons eingeführt werden. 1. Im Layout-Editor zwei Schaltflächen anlegen, in dem links der entsprechender Button geklickt wird 2. Buttons unter den Eingabefeldern positionieren. 3. In der Attributpalette des jeweiligen Buttons Namen und Beschriftung ändern. 4. Durch Rechtsklick den PL/SQL-Editor öffnen und den Trigger WHEN-BUTTON-PRESSED auswählen. 5. Die Triggercodes sind begin previous_record; end; bzw. begin next_record; end; 6. Trigger jeweils übersetzen 7. Form ausführen Oracle Forms Dr. Annemarie Herrmann Oracle Forms Dr. Annemarie Herrmann Einfache Trigger (6) Oracle Forms Dr. Annemarie Herrmann