Wenn Sie wie die meisten Oracle Forms-Entwickler sind, stimmen Sie zu, dass es vier Datenquellen für einen Formulardatenblock gibt. Sie sind: Tabelle, Ansicht, gespeicherte Prozedur und From Clause Query. Manchmal wäre es jedoch schön, wenn ich keine From-Klauselabfrage verwenden oder eine Datenbankansicht erstellen müsste, nur um einen Block zu erstellen, der eine einfache Verknüpfung für zwei Tabellen ausführt. Nun, dies ist tatsächlich möglich und ist extrem einfach zu erreichen. In diesem Dokument wird gezeigt, wie dies mithilfe des neuen HR-Demoschemas und der Tabellen EMPLOYEES und DEPARTMENTS erreicht werden kann.
Haftungsausschluss: Dieses Beispiel basiert auf der Verwendung von Oracle Forms 10g R2 (10.1.2.0.2), sollte aber auch mit älteren Versionen funktionieren.
Da Sie jede Spalte im Block explizit identifizieren müssen, können Datenblöcke, die auf einer Verknüpfung basieren, so dass sie aktualisiert werden können, aber in der Regel würden Sie sie mit einem Block behandeln, der auf einer From-Klauselabfrage basiert.
- Öffnen Sie Oracle Forms Builder, und erstellen Sie ein neues Formularmodul.
- Erstellen Sie einen neuen Canvas-Bereich, und legen Sie die folgenden Canvas-Eigenschaften fest:
- Name: EMP_DEPT
- Canvas-Typ: Inhalt
- Fenster: WINDOW1 (standardmäßig mit einem neuen Modul erstellt)
- Breite: 540
- Größe: 325
- Stellen Sie eine Verbindung mit dem HR-Schema oder als Benutzer mit SELECT-Berechtigungen für das HR-Schema her.
- Erstellen Sie ein neues Datenblockobjekt und wählen Sie die Option "Build a new data block manually".
- Legen Sie die folgenden Blockeigenschaften fest:
- NAME: EMP_DEPT_JOIN
- Anzahl der angezeigten Datensätze: 10
- Abfrage-Datenquellenname: hr.employees, hr.departments
- WHERE-Klausel: employees.department_id = departments.department_id
- Einfügen erlaubt: Ja
- Update erlaubt: Ja
- Löschen erlaubt: Ja
- Sperrmodus: Verzögert
- Schlüsselmodus: Aktualisierbar
- DML-Datenzielname: hr.employees, hr.departments
- Scroll-Leiste anzeigen: ja
- Scroll-Leiste Leinwand: EMP_DEPT
- Scroll-Leiste X Position: 500
- Scroll-Bar Y Position: 42
- Schriftleistenbreite: 14
- Scroll Bar Höhe: 140
Hinweis: Der Schlüsselmodus = Updatable weist Formulare an, DML-Anweisungen mit den Primärschlüsselwerten auszuführen.
6. Fügen Sie die folgenden Blockelemente hinzu und legen Sie deren Eigenschaften wie angegeben fest:
- Name: Employee_id
i. Datentyp: Anzahl
Ⅱ. Maximale Länge: 6
Ⅲ. Spaltenname: hr.employees.employee_id
Iv. Primärschlüssel: Ja
v. Eingabeaufforderung: Mitarbeiter-ID
Vi. Prompt Attachment Edge: Oben
Vii. Prompte Ausrichtung: Zentrum
- Name: First_name
i. Datumstyp: Char
Ⅱ. Datenlängensemantik: Byte
Ⅲ. Maximale Länge: 20
Iv. Spaltenname: hr.employees.first_name
v. Eingabeaufforderung: Vorname
Vi. Prompt Attachment Edge: Oben
Vii. Prompte Ausrichtung: Zentrum
- Name: Last_name
i. Datentyp: Char
Ⅱ. Datenlängensemantik: Byte
Ⅲ. Maximale Länge: 20
Iv. Spaltenname: hr.employees.last_name
v. Eingabeaufforderung: Nachname
Vi. Prompt Attachment Edge: Oben
Vii. Prompte Ausrichtung: Zentrum
- Name: Job_id
i. Datentyp: Char
Ⅱ. Datenlängensemantik: Byte
Ⅲ. Maximale Länge: 20
Iv. Spaltenname: hr.employees.job_id
v. Aufforderung: Job-ID
Vi. Prompt Attachment Edge: Oben
Vii. Prompte Ausrichtung: Zentrum
- Name: Manager_id
i. Datentyp: Anzahl
Ⅱ. Maximale Länge: 6
Ⅲ. Spaltenname: hr.employees.employee_id
Iv. Eingabeaufforderung: Manager-ID
v. Eingabeaufforderung Attachment Edge: Oben
Vi. Prompte Ausrichtung: Zentrum
- Name: Gehalt
i. Datentyp: Anzahl
Ⅱ. Maximale Länge: 11
Ⅲ. Spaltenname: hr.employees.salary
Iv. Prompt: Gehalt
v. Eingabeaufforderung Attachment Edge: Oben
Vi. Prompte Ausrichtung: Zentrum
- Name: Department_name
i. Datentyp: Char
Ⅱ. Datenlängensemantik: Byte
Ⅲ. Maximale Länge: 30
Iv. Spaltenname: hr.departments.department_name
v. Eingabeaufforderung Name: Abteilungsname
Vi. Prompt Attachment Edge: Oben
Vii. Prompte Ausrichtung: Zentrum
7. Fügen Sie die Elemente mit dem Layout-Assistenten zu einem Canvas hinzu.
i. Wählen Sie EMP_DEPT_JOIN als Datenbaustein
ii. Wählen Sie alle verfügbaren Felder aus
iii. Wählen Sie "Tabular" Layout
iv. Geben Sie "Mitarbeiterinformationen" als Frame-Titel ein
v. Satznummer des angezeigten Datensatzes = 10
vi. Aktivieren Sie die Option "Scrollbar anzeigen"
vii. Klicken Sie auf "Finish"
8. An dieser Stelle sollten Sie ein Formular haben, das dem folgenden ähnelt:
9. Führen Sie nun Ihr Formular aus und drücken Sie "Strg + F11", um Daten in den EMP_DEPT_JOIN-Block abzufragen. Ihre Formularlaufzeit sollte wie folgt aussehen:
Du bist fertig! Sie haben einen Formulardatenblock erfolgreich auf zwei Tabellen basieren, indem Sie sie über die WHERE-Klausel des Datenblocks verknüpfen.
Wie viele Tabellen Sie in Ihrem Block verknüpfen, hängt von Ihnen ab. Ich bin erfolgreich 6 Tabellen beigetreten. Der Vorteil des Verknüpfens von Tabellen in Ihrem Block besteht darin, dass das Resultset schneller ist als der herkömmliche Block, der auf der primären Tabelle basiert, und einen Post-Query-Trigger verwendet, um die relevanten Daten aus den verknüpften Tabellen anzuzeigen.