Die Anleitung zu Oracle APEX Dynamic Action

View more categories:

1- Die Vorstellung

Das Dokument wird nach der Quelle von .... geschrieben
  • Oracle APEX 5

2- Das Beispiel vorbereiten

Sie sollen die Spalte   BONUS in die Tabelle    EMP wenn sie existiert nicht:
-- Add/modify columns
alter table EMP add BONUS number;
Erstellen Sie eine leere Seite (blank page) mit der Code 300.
Erstellen Sie eine Region , die die Parameter enthaltet
  • !
Die Information für den neu erstellten Item eingeben:
Identification:
  • Name: P300_PARAM_EMPNO
  • Type: Select List

List of Values:
  • Type: SQL Query
  • SQL Query: Select Ename, Empno From Emp
Erstellen Sie eine andere Region
Geben Sie ein
Identification:
  • Title: Emp Form Region
  • Type: Static Content
Erstellen Sie einige Item für diese Region
Die Attribute für  Item​​​​​​​ setzen
No Item Label Source
(Type= Database Column)
1 P300_EMPNO Empno EMPNO
2 P300_ENAME Ename ENAME
3 P300_JOB Job JOB
4 P300_MGR Manager MGR
5 P300_HIREDATE Hiredate HIREDATE
6 P300_SAL Salary SAL
7 P300_COMM Commission COMM
8 P300_BONUS Bonus BONUS
9 P300_DEPTNO Deptno DEPTNO
Bevor die Webseite gerendert wird (rendering), brauchen die Daten in Item zugewiesen werden. Sie sollen ein Prozess in Pre-Rendering/After Header erstellen um das zu tun
Geben Sie ein
Identification:
  • Name: Fetch EMP Row
  • Type: Automatic Row Fetch

Setting:
  • Table Name: EMP
  • Primary Key Column: EMPNO
  • Primary Key Item: P300_EMPNO

P300_EMPNO wird die Wert vom außen getragen, Process "Fetch EMP Row" wird die Tabelle EMP mit EMPNO = :P300_EMPNO abfragen bei der Zeitpunkt bevor die Seite gerendert wird (rendering) und die Wert in Item zuweisen

Wenn Sie die Seite laufen, hat sie keine Grundsdaten  :P300_EMPNO hat die  null Wert (keine Wert vom außen zuweisen).
Die  Item ​​​​​​​ändern

P300_JOB

Identification:
  • Name: P300_JOB
  • Type: Select List
List of Values:
  • Type: Static Values
  • Static values: STATIC:CLERK;CLERK,SALESMAN;SALESMAN,PRESIDENT;PRESIDENT,MANAGER;MANAGER,ANALYST;ANALYST

P300_MGR:

Identification
  • Name: P300_MGR
  • Type: Select List

List of Values
  • Type: SQL Query
  • SQL Query: Select ename d, empno r from emp where job in ('MANAGER', 'PRESIDENT')

P300_HIREDATE

Identification
  • Name: P300_HIREDATE
  • Type: Date Picker

P300_DEPTNO

Identification
  • Name: P300_DEPTNO
  • Type: Select List
List of Values
  • Type: SQL Query
  • SQL Query: Select Dname,Deptno From Dept
die Webseite laufen

3- Zum Beispiel mit  Dynamic Action - Change

Erstellen Sie ein Dynamic Action für item P300_PARAM_EMPNO, Wenn Sie die Wert von P300_PARAM_EMPNO ändern, wird  Dynamic Action die Website übermitteln ( submit)
Dynamic Action wird erstellt
Identification
  • Name: Change EMPNO Param
When
  • Even: Change
  • Selection Type: Item(s)
Wenn die Bedingungen vom   "Dynamic Action" den Satz im "TRUE" befriedigen, wird es implementiert, umgekehrt den Satz "FALSE" implementiert.
Erstellen Sie ein Branch (der Zweig), um nach Submit zu einer Seite weiterzuleiten (in diesem Fall ist es die aktuelle Seite).
Nach dem  Submit wird die Anforderung nach der Seite mit der Code 300 (Ihre aktuelle Seite) weitergeleitet, gleichzeitig setzt es die Wert für : P300_EMPNO durch  :P300_PARAM_EMPNO

Save und Ihre Website wieder laufen

Der Operationsgrundsatz

4- Das Beispiel über Dynamic Action - Enable/Disable

Außer des Gehalt bekommen die Verkaufspersonal die Kommission (commission). Deshalb bei der Änderung des Name der Arbeit ( JOB) eines Mitarbeiter, wenn JOB = 'SALESMAN' ist, muss Item COMM anschalten zu typen  (enable), umgekehrt sollen Sie item COMM ausschalten (disable)

Erstellen Sie ein  Dynamic Action für item JOB:
Der Name vom neu erstellten  Dynamic Action wird "Change JOB" gestellt
Identification
  • Name: Change JOB

When
  • Even: Change
  • Select Type: Item(s)
  • Item(s): P300_JOB
  • Condition: equal to
  • Value: SALES
Wenn P300_JOB = 'SALESMAN' behandeln
Umgekehrt wenn P300_JOB =  'SALESMAN' nicht ist, wird  der Satz im FALSE implementiert
Ihre Website wieder laufen

5- Das Beispiel ưber Dynamic Action - Set Values mit der Benutzung von SQL Statement

2 item erstellen:
Identification:
  • Name: P300_LOCATION
  • Type: Display Only
Label
  • Label: Location
Settings:
  • Save Sesion State: NO
Source
  • Type: Null
Identification:
  • Name: P300_NUM_EMPLOYEES
  • Type: Display Only
Label
  • Label: Location
Settings:
  • Save Sesion State: NO
Source
  • Type: Null

Beachten Sie: 2 item P300_LOCATION, und P300_NUM_EMPLOYEES sind die Item, deren Wert nach der Spalte in der Tabelle nicht kalkuliert werden, sondern bei der Zeitpunkt von "Page Load" deshalb sollen Sie  "Save Session State = NO" setzen.

Erstellen Sie Dynamic Action für  P300_DEPTNO. Wenn Sie die Abteilung vom Mitarbeiter ändern, wird Dynamic Action die Stelle und die Anzahl der Mitarbeiter der neuen Abteilung kalkulieren und die Wert für 2 items  P300_LOCATION und  P300_NUM_EMPLOYEES zuweisen
Das ist der Befehl SQL zur Abfrage der Position (location) und der Anzahl der Mitarbeiter in der neuen Abteilung
Select d.Loc Location
      ,Count(e.Empno) Num_Employees
From   Dept d
      ,Emp  e
Where  d.Deptno = e.Deptno(+)
And    d.Deptno = :P300_Deptno
Group  By d.Loc
Identification
  • Action: Set Value
Settings
  • Set type: SQL Statement
  • SQL Statement:  .....
  • Page Items to Submit: P300_DEPTNO
Affected Elements
  • Selection Type: Item(s)
  • Item(s): P300_LOCATION, P300_NUM_EMPLOYEES
Ihre Website wieder laufen

6- Das Beispiel über Dynamic Action - Set Values mit der Benutzung von PL/SQL

Im Beispiel über die Kalkulation des Bonus für die Mitarbeiter wird der Bonus durch die Multiplikation des Bonuskoefficient mit dem Gehalt vom Mitarbeiter kalkuliert. Wenn der Website geladet wird, wird die Wert von Item BONUS durch PL/SQL ​​​​​​​kalkuliert
Erstellen Sie ein   Dynamic Action, das bei dem Page-Load läuft
  • !
Den Bonus kalkulieren
Declare
   v_Multiplier Number;
Begin
   -- Determine multiplier based on job.
   Case :P300_Job
      When 'CLERK' Then
         v_Multiplier := 0.1;
      When 'ANALYST' Then
         v_Multiplier := 0.2;
      When 'SALESMAN' Then
         v_Multiplier := 0.3;
      When 'MANAGER' Then
         v_Multiplier := 0.4;
      When 'PRESIDENT' Then
         v_Multiplier := 0.5;
      Else
         v_Multiplier := 0;
   End Case;
   -- Return bonus which is calculated by
   -- Multiplying Salary My Multiplier
   Return :P300_Sal * v_Multiplier;
End;
Ihre Website wieder laufen

7- Das Beispiel über Dynamic Action - Button

Im Beispiel erstellen Sie ein Dynamic Action für  Button. Wenn der Button geklickt wird, werden die Änderungen in Form gespeichert. Gleichzeitig wird der Button ausgeschaltet (disable) während die Seite aufgefrischt wird (refresh).
Identification:
  • Button Name: APPLY_CHANGE
  • Type: Apply change
Behavior:
  • Action: Submit Page
  • Database Action: SQL UPDATE action
Erstellen Sie  Process um die  update der Daten zu verarbeiten
Identification:
  • Name: Process ROW of EMP
  • Type: Automatic ROW Processing (DML)
Settings
  • Table Name: EMP
  • Primary Key Column: EMPNO
  • Primary Key Item: P300_EMPNO
  • Supported Operation: Update
  • TODO

View more categories: