Oracle Forms: Basis eines Datenblocks auf einer Tabellenverknüpfung

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.

 

  1. Öffnen Sie Oracle Forms Builder, und erstellen Sie ein neues Formularmodul.
  2. Erstellen Sie einen neuen Canvas-Bereich, und legen Sie die folgenden Canvas-Eigenschaften fest:
    1. Name: EMP_DEPT
    2. Canvas-Typ: Inhalt
    3. Fenster: WINDOW1 (standardmäßig mit einem neuen Modul erstellt)
    4. Breite: 540
    5. Größe: 325
  3. Stellen Sie eine Verbindung mit dem HR-Schema oder als Benutzer mit SELECT-Berechtigungen für das HR-Schema her.
  4. Erstellen Sie ein neues Datenblockobjekt und wählen Sie die Option "Build a new data block manually".
  5. Legen Sie die folgenden Blockeigenschaften fest:
    1. NAME: EMP_DEPT_JOIN
    2. Anzahl der angezeigten Datensätze: 10
    3. Abfrage-Datenquellenname: hr.employees, hr.departments
    4. WHERE-Klausel: employees.department_id = departments.department_id
    5. Einfügen erlaubt: Ja
    6. Update erlaubt: Ja
    7. Löschen erlaubt: Ja
    8. Sperrmodus: Verzögert
    9. Schlüsselmodus: Aktualisierbar
    10. DML-Datenzielname: hr.employees, hr.departments
    11. Scroll-Leiste anzeigen: ja
    12. Scroll-Leiste Leinwand: EMP_DEPT
    13. Scroll-Leiste X Position: 500
    14. Scroll-Bar Y Position: 42
    15. Schriftleistenbreite: 14
    16. 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:

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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.

Dieser Beitrag wurde unter ORACLE FORMS veröffentlicht. Setze ein Lesezeichen auf den Permalink.