Erstellen, Aktualisieren und Löschen von Daten mit ADF Form in ADF BC

View more categories:

1- Das Zweck des Unterlagen

Im Unterrichten leite ich Sie bei der Erstellung einer Applikation von ADF Fusion zur Anzeige der Daten auf ADF Form mit  Row Navigation (Die Zeile des Rekord lenken). ADF Form erlaubt Sie, ein Rekord einzufügen, zu ändern oder löschen
Das ist das Image der Applikation

2- Die Applikation erstellen

Zuerst sollen Sie eine ADF Fusion Applikation mit der folgenden Einstellungen
  1. Die Applikation "ADF Fusion Web Application" erstellen
  2. Mit einer Database verbinden.
  3. Application Module erstellen
  4. Entity Object erstellen.
  5. Default-View Object erstellen.
Sie können die folgenden Anleitung schauen
Nach den folgenden Schritten haben Sie eine Applikation wie unten geschafft

3- LOV View Object erstellen

Wenn Sie einen Mitarbeiter (Die Tabelle EMPLOYEES) erstellen, sollen Sie die Abteilung (Die Tabelle DEPARTMENTS) für diesen Mitarbeiter durch ComboBox, ListBox, LOV (List Of Values),.. wählen
Sie sollen die LOV View Object erstellen. Sie werden in viele Funktionen der Applikationen benutzt
Auf JDeveloper wählen Sie:
  • File/New/From Gallery...
    • >> Bussiness Tier/ADF Bussiness Components/View Object
Geben Sie ein
  • Package: org.o7planning.adf.model.lovviews
  • Name: LOVDepartments
Select Dep.Department_Id
      ,Dep.Department_Name
      ,Loc.City
From   Departments Dep
      ,Locations   Loc
Where  Dep.Location_Id = Loc.Location_Id(+)
Order By Dep.Department_Name
View Object ( LOVDepartments ) wird erstellt

LOVJobs

Ähnlich erstellen wir ein anderes  LOV View Object mit dem Name von LOVJobs:
Select j.Job_Id
      ,j.Job_Title
From   Jobs j
Order By j.Job_Title
Next .. Next ... Next

4- View Object (V01Employees) erstellen

Auf JDeveloper wählen Sie:
  • File/New/From Gallery...
    • >> Bussiness Tier/ADF Bussiness Components/View Object
V01Employees mit  Application Module ​​​​​​​registrieren
Nach der Registration wurde V01Employees auf  Data Controls gefunden.

5- Die Vorschlage für den Benutzer-Interface machen (UI Hints)

Wenn Sie eine Website-Interface entwerfen, z.B V00Employees hat 11 Attribute (attribute), sie entsprechen 11 Spalten in der Tabelle der Database. Das Tool vom ADF hilft Ihnen bei der Erstellung ADF Form (Form zur Dateneingabe.
Sie sollen die Hinweise (Hint) für  ADF Tool erstellen
V01Employees ( View Object) öffnen:

 UI Hints für das Attribute DepartmentId erstellen

Wählen Sie das Attribut DepartmentId (DepartmentId attribute) und erstellen Sie "List Of Values" für es
Wählen Sie LOVDepartments ( LOV View Object), das Sie in dem oben Schritt erstellt haben
Hier stelle ich die Spalte DepartmentId mit dem Typ vom ComboBox ein. Wenn Sie DepartmentId nach dem Typ LOV (List Of Values) anzeigen möchten, können Sie in einer folgenden Anleitung lesen
 TAB: UI Hints wechseln

Die Erstellung von UI Hints für das Attribut JobId

 V01Employees prüfen durch die Benutzung von Oracle ADF Model Tester:

6- View - emp erstellen

öffnen Sie  adf-config.xml und ziehen und ablegen das Objekt View darin
Doppeltklicken Sie auf emp (View) auf  adf-config.xml um eine entsprechende Seite zu erstellen
Suchen Sie mit dem Schlusselwort  "deco" und ziehen und ablegen Sie das Objekt  "Decorative Box (ADF Faces.Layout)" in dem Bildschirm emp.jsf.

7- ADF Form erstellen

Ziehen und ablegen Sie V01Employees1 (View Object) vom  Data Controls in der Region von  Center von  emp.jsf, und wählen Sie ADF Form, wie folgend
OK, Jetzt können Sie die Applikation laufen. Wählen Sie emp (View) auf  adf-config.xml und klicken Sie auf  Run oder  F11.

8- Submit & Commit

ADF erstellen Sie den Button  "Submit" um die Webseite einzureichen ( submit), Aber die Daten wird noch nicht "Commit" gemacht. Deshalb gibt es keine Daten-Änderungen bei der Database
Wenn der Benutzer auf   "Submit" klicken, werden die Daten in  View Object aktualisiert und es gibt keine Änderungen bei der Database
Um die Änderungen in der Database zu erstellen, sollen Sie die Funktion Commit machen.Sie haben 2 Maßnahmen um diese Aufgabe zu machen
  1. Die Maßnahme 1: Aufruf auf Commit bei jedem Submit.
  2. Die Maßnahme 2: den Button Commit erstellen.

Die Maßnahme 1: Aufruf auf Commit bei jedem Submit.

Die Funktion   Commit wird geruft wenn der Benutzer auf den Button Submit klicken
Auf dem Fenster von emp.jsf wechseln Sie zum  TAB Bindings, Klicken Sie auf dem Symbol    um ein  "Binding" hinzuzufügen
Auf dem Fenster vom   emp.jsf wechseln Sie zum  TAB - Design, klicken Sie auf "Submit" und ändern die Wert für das Attribut  ActionListener:
  • AcionListener = #{bindings.Commit.execute}

Die Maßnahme 2: den Button Commit erstellen.

Irgendwenn Sie ein Rekord ändern und klicken Sie auf S ubmit,wird die Daten in  View Object aktuallisert. Zuletzt klicken Sie auf Submit um alle geänderten Rekorde in der Database zu aktualisieren
Ziehen und ablegen das Objekt   "Commit" vom  "Data Controls" ins Fenster emp.jsf um ein "ADF Button" zu erstellen:

9- Die Werte für die Spalter aus Sequence bei der Rekorderstellung

Wenn Sie ein Rekord für die Tabelle EMPLOYEES erstellen, wird die Spalte EMPLOYEE_ID die Wert vom   sequence - EMPLOYEES_SEQ gewiesen. Sie sollen ADF das Ding durch die Konfiguration auf Entity Object ( Employees) sagen
Öffnen Sie  Entity Object: Employees
Das Attribut (attribute) EmployeeId jetzt hat das Typ vom Integer, wechseln Sie zum Typ  Number (wie das folgende Beispiel:
Sie sollen eine Klasse entsprechend mit Employees (Entity Object) erstellen
Die Klasse  EmployeesImpl wurde erstellt 
Java wird die Methode EmployeesImpl.create(AttributeList) aufrufen um ein Rekord EMPLOYEE zu erstellen.Deshalb sollen Sie bei der Methode die Wert aus Sequence nehmen um in die Spalte   EMPLOYEE_ID zuzuweisen.
Die folgdende Code in die Klasse EmployeesImpl ​​​​​​​einfügen:
** EmpoyeesImpl **
import oracle.jbo.server.SequenceImpl;

// ....

protected Number getNextSequenceValue(String sequenceName) {
    SequenceImpl seq = new SequenceImpl(sequenceName, getDBTransaction());
    return seq.getSequenceNumber();
}


/**
* Add attribute defaulting logic in this method.
* @param attributeList list of attribute names/values to initialize the row
*/
protected void create(AttributeList attributeList) {
    super.create(attributeList);

    // Set value for Empno        
    this.setEmployeeId(this.getNextSequenceValue("EMPLOYEES_SEQ"));
}

10- Den Rekord erstellen

Oben haben Sie eine  ADF Form erstellt, die die Rekord zu bearbeiten erlaubt. In den nächsten Part brauchen Sie ein Rekord erstellen
Sie brauchen einen der 2 Operator "Create" oder  "CreateInsert" aus  "Data Controls" in dem Design-Fenster ( emp.jsf) ziehen und ablegen um ein  ADF Button zu erstellen

Create vs CreateInsert

Was passiert wenn Sie den Operator "Create" benutzen?
** Create **
// Create a new row for the View Object
Row newRow = yourViewObject.createRow();

// Mark the row as being "initialized", but not yet new
newRow.setNewRowState(Row.STATUS_INITIALIZED);
Was passiert wenn Sie den Operator "CreateInsert" benuzen?
** CreateInsert **
// Create a new row for the View Object
Row newRow = yourViewObject.createRow();

// Mark the row as being "initialized", but not yet new
newRow.setNewRowState(Row.STATUS_INITIALIZED);

// Insert the new row into the View Object's default rowset
yourViewObject.insertRow(newRow);
Das Objekt "CreateInsert" in dem Fenster emp.jsf ziehen und ablegen um ein  "ADF Button" zu erstellen.
Ihre Website wieder laufen
Wenn der Benutzer auf   "CreateInsert" klicken, wird eine Datenzeile (row) erstellt und wird in "RowSet" vom  View Object eingefügt. Wenn der Benutzer die Information typen und auf  Submit klicken, werden die Änderungen in  View Object aktualisiert. Es gibt keine Rekorde, die in database erstellt werden zum wenn   Commit aufgeruft wird
  • Sie können die Erklärung bei "Submit & Commit" oben sehen.

11- Delete Record

Das Objekt "Delete" vom  "Data Controls" ins Design-Fenster vom emp.jsf ziehen und ablegen um ein "ADF Button" zu erstellen:
Wenn der Benutzer auf   "Delete" klicken , wird die Datenzeile (row) aus "RowSet" vom  View Object gelöscht, d.h der Rekord wird aus database wirklich gelöscht. Er wird ganz aus Database gelöscht wenn  Commit aufgeruft wird
  • Sie können die Erklärung bei "Submit & Commit" oben schauen
Ihre Website wieder laufen

View more categories: