codestory

Die Anleitung zu Oracle APEX Tabular Form

  1. Die Vorstellung
  2. Tabular Form benutzend Wizard erstellen
  3. Tabular Form manuell erstellen
  4. Tabular Form behandeln
  5. Master-Details
  6. Sie können sorgen für ..

1. Die Vorstellung

Sie lesen gerade die Anleitung der Programmierung von Oracle APEX 5.0. Das ist die zweite.Anleitungsdokument nach dem Dokument:
Im Dokument leite ich Sie Oracle APEX Database Desktop Application, benutzend Tabular Form weiter an.

2. Tabular Form benutzend Wizard erstellen

Melden Sie in Oracle APEX mit dem Konto als Programmer an
Gehen Sie in "Database Application".
Gehen Sie weiter in die Applikation "Hello Database Desktop Application", die Sie in dem vorherigen Dokument erstellt
In der Applikation gibt es einige in der vorherigen Anleitun erstellten Seite.Klicken Sie auf "Create Page" um eine andere Seite zu erstellen
Ein Tabular Form erstellen
Geben Sie ein
  • Page: 7
  • Page Name: Emp Tabular Form (7)
Ihre Webseite wird erstellt, klicken Sie auf RUN um die erstellte Seite zu probieren
Das ist das Bild von der Seite 7 beim Laufen
Hier stellt eine Frage, wie wandeln wir einige Input Fields zu SELECT LIST oder POPUP LOV (List of values) um . Zum Beispiel: Sie möchten Manager (MGR) durch POPUP LOV wählen und Job durch SELECT LIST wählen
Das Design-Bildschirm der Seite 7 rückkehren. Stellen Sie das Attribut für die Spalte JOB ein damit es als eine Auswahlliste (SELECT LIST) anzeigt.
Identification:
  • Type: Select List
List of Values
  • Type: Static Value
  • Static Value:
STATIC:
CLERK;CLERK,
SALESMAN;SALESMAN,
PRESIDENT;PRESIDENT,
MANAGER;MANAGER,
ANALYST;ANALYST
Die Syntax zur Meldung der static Werte (Static Values):
STATIC:Display1;Return1,Display2;Return2
Zunächst stellen Sie das Attribute für den Feld MGR ein damit es als POPUP LOV (List of values) anzeigt
Identification:
  • Type: Popup LOV (shows display values)
List of Values:
  • Type: SQL Query
  • SQL Query: Select emp.ename, emp.empno from Emp
Ähnlich stellen Sie das Attribute für DEPTNO ein, damit es als ein POPUP LOV anzeigt
Identification:
  • Type: Popup LOV (shows display values)
List of Values
  • Type: SQL Query
  • SQL Query: Select d.dname, d.deptno from Dept d
Speichern und die Seite 7 wieder laufen

3. Tabular Form manuell erstellen

Oben habe ich Sie angeleitet, wie Tabular Form durch die Benutzung von wizard von Oracle Apex zu erstellen. Zunächst erstellen wir Tabular Form ganz vom Anfang ohne die Benutzung von Wizard. Es hilft Ihnen bei mehr Verstanden über Tabular Form & Oracle APEX.
Geben Sie ein
  • Page Number: 8
  • Name: Emp Tabular Form (8)
Eine leere Seite wird erstellt
Tabular Form in der Region vom "Content Body" erstellen
  • Title: Emp Tabular Form (8)
  • Type: Tabular Form
  • SQL Query:
select EMPNO,
       EMPNO EMPNO_DISPLAY,
       ENAME,
       JOB,
       MGR,
       HIREDATE,
       SAL,
       COMM,
       DEPTNO
  from EMP
Sie können die Seite 8 probieren. Das Ergebnis bekommen wir:
Eine Spalte zur Enthaltung von CheckBox erstellen um die Zeile zu wählen
Die Attribut für EMPNO einstellen, diese Spalte bedecken und die Attribut primary key für die einstellen
Identification
  • Column Name: EMPNO
  • Type: Hidden Column (saves state)

Primary Key Source
  • Type: Existing sequence
  • Name: EMP_SEQ
Die Spalte ENAME:
Identification
  • Column Name: ENAME
  • Type: Text Field
Die Spalte JOB:
Identification
  • Column Name: JOB
  • Type: Select List

List of Values
  • Type: Static Values
  • Static Values:
STATIC:
CLERK;CLERK,
SALESMAN;SALESMAN,
PRESIDENT;PRESIDENT,
MANAGER;MANAGER,
ANALYST;ANALYST
Die Spalte MGR:
Identification
  • Column Name: MGR
  • Type: Popup LOV (shows display values)

List of Values
  • Type: SQL Query
  • Static Values: Select emp.ename, emp.empno from Emp
Die Spalte HIREDATE:
Identification
  • Column Name: HIDEDATE
  • Type: Date Picker
Appearance
  • Format Mask: YYYY-MM-DD
Default
  • Type: PL/SQL Expression
  • PL/SQL Expression: sysdate
Die Spalte SAL:
Identification
  • Column Name: SAL
  • Type: Text Field
SAL (Salary) ist die Zahl-datentyp. So sollen Sie die validation hinzufügen
Identification
  • Name: SAL must be numeric
Validation:
  • Type: Column is numeric
  • Column: SAL
Error
  • Error Message: #COLUMN_HEADER# must have a value.
  • Display Location: Inline with Field and in Notification
Achtung
  • #COLUMN_HEADER# funktioniert als einen Platzhalter (Place Holder), es wird durch den Titel der entsprechenden Spalte bei Runtime ersetzt
Die Spalte COMM:
Identification
  • Column Name: COMM
  • Type: Text Field
Validation für COMM erstellen, COMM muss die Zahl-Daten sein
Identification
  • Name: COMM must be numeric
Validation:
  • Type: Column is numeric
  • Column: COMM
Error
  • Error Message: #COLUMN_HEADER# must have a value.
  • Display Location: Inline with Field and in Notification
Die Spalte DEPTNO:
Identification:
  • Type: Popup LOV (shows display values)
List of Values
  • Type: SQL Query
  • SQL Query: Select d.dname, d.deptno from Dept d

4. Tabular Form behandeln

Zunächst brauchen wir die Behandlungen wie den Rekord hinzufügen, ändern, löschen.
Den Namen für Button ändern, wie das folgende Beispiel:
Für den Button Cancel behandeln:
Wenn der Benutzer auf Cancel klicken, wird die Webseite refresh machen (hier ist es die Seite 8).
Die Rekord neu hinzufügen
Wenn der Benutzer auf ADD klicken,wird die Tabelle eine neue Zeile automatisch einzufügen, damit der Benutzer die Daten eingeben darf. Sie sollen die Funktion javascript aufrufen um dieses Ding zu machen.
Idetification
  • Button Name: ADD
  • Label: Add

Behavior
  • Action: Redirect to URL
  • Target: javascript:apex.widget.tabular.addRow();
Viele Datenzeile speichern
Idetification
  • Button Name: SAVE
  • Label: Save

Behavior
  • Action: Submit Page
Der Button SAVE hat eine Aufgabe zur Speicherung der Rekorden gleichzeitig, umfassend die neuen Rekorden und die geänderten Rekorden. Sie sollen einen Prozess melden um diese Aufgabe zu machen. Process läuft einmal nachdem die Seite aufgeruft wird. Es update die geänderten Rekorden und insert die neuen Rekorden
Process hinzufügen:
Idetification
  • Name: ApplyMRU
  • Type: Tabular Form - Multi Row Update

Settings
  • Table Name: EMP
  • Primary Key Column: EMPNO

Execution Options
  • Tabular Form: Emp Tabular Form (8)
  • Run Process: Once Per Page Visit (default)

Success Messages
  • Success Message: #MRU_COUNT# row(s) updated, #MRI_COUNT# row(s) inserted.

Condition
  • When Button Pressed: SAVE (Name of button)
  • Execution Scope: For Created and Modified Rows
Viele Zeile gleichzeitig löschen
Bearbeiten Sie die Button zur Löschung der gewählten Rekorden ohne die Bestätigung
Sie sollen einen Prozess erstellen um viele Zeile zu erlöschen. Process wird bei der Aufruf der Seite einmal implementiert
Prozess erstellen
Idetification
  • Name: ApplyMRD_IMMEDIATELY
  • Type: Tabular Form - Multi Row Delete

Settings
  • Table Name: EMP
  • Primary Key Column: EMPNO

Execution Options
  • Tabular Form: Emp Tabular Form (8)
  • Run Process: Once Per Page Visit (default)

Success Messages
  • Success Message: #MRD_COUNT# row(s) deleted.

Condition
  • When Button Pressed: IMMEDIATELY_MULTY_ROW_DELETE (Name of button)
  • Execution Scope: For Created and Modified Rows
Viele Zeile löschen - die Bestätigung vor der Löschung
Vor der Löschung der Rekorden fragt das Programm den Benutzer, ob er zu löschen einverstanden ist oder nicht
Idetification
  • Button Name: MULTI_ROW_DELETE
  • Label: Multi Row Delete

Behavior
  • Action: Redirect URL
  • Target: javascript:apex.confirm('Are you sure to delete?','MULTI_ROW_DELETE');
apex.confirm(...) benutzt die FUnktion Javascript für die Bestätigung des Benutzer vor der Durchführung des Befehl vom button.
// The function includes 2 parameters, message and Button Name.

apex.confirm('Message ...', 'Button Name');

// Example:

apex.confirm('Are you sure to delete?','MULTI_ROW_DELETE');

// Using variable.
// htmldb_delete_message is a javascript variable
// with value: 'Would you like to perform this delete action?'
// (You need to declare this variable).
apex.confirm(htmldb_delete_message,'MULTI_ROW_DELETE');
// Declare a variable named htmldb_delete_message
var htmldb_delete_message='Would you like to perform this delete action?';

// Or:
// "DELETE_CONFIRM_MSG" is a constant available in APEX.
// It has value: Would you like to delete this thực action?


var htmldb_delete_message='"DELETE_CONFIRM_MSG"';


// Then can use this variable in the whole page.

apex.confirm(htmldb_delete_message,'MULTI_ROW_DELETE');
Um viele Zeile zu löschen, sollen Sie ein Prozess erstellen. Process wird implementiert nachdem die Website aufgeruft wird
Idetification
  • Name: ApplyMRD
  • Type: Tabular Form - Multi Row Delete

Settings
  • Table Name: EMP
  • Primary Key Column: EMPNO

Execution Options
  • Tabular Form: Emp Tabular Form (8)
  • Run Process: Once Per Page Visit (default)

Success Messages
  • Success Message: #MRD_COUNT# row(s) deleted.

Condition
  • Execution Scope: For Created and Modified Rows
  • Type: Request = Value
  • Value: MULTI_ROW_DELETE
  • Execute Condition: Once