codestory

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

  1. Das Zweck des Unterlagen
  2. Die Applikation erstellen
  3. LOV View Object erstellen
  4. View Object (V01Employees) erstellen
  5. Die Vorschlage für den Benutzer-Interface machen (UI Hints)
  6. View - emp erstellen
  7. ADF Form erstellen
  8. Submit & Commit
  9. Die Werte für die Spalter aus Sequence bei der Rekorderstellung
  10. Den Rekord erstellen
  11. Den Rekord löschen

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
  • Die Applikation "ADF Fusion Web Application" erstellen
  • Mit einer Database verbinden.
  • Application Module erstellen
  • Entity Object erstellen.
  • 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
  • Die Maßnahme 1: Aufruf auf Commit bei jedem Submit.
  • 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 Submit,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 vomsequence - 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 SpalteEMPLOYEE_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

No ADS
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 wennCommit aufgeruft wird
Sie können die Erklärung bei "Submit & Commit" oben sehen.

11. Den Rekord löschen

No ADS
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
No ADS