L’Interactive Report è uno dei principali componenti di Oracle APEX. In questo tutorial vedremo come utilizzarlo insieme ad una form per aggiornare i record del database.
Prima di iniziare, se non l’hai già fatto, dai un’occhiata a questo articolo dove ti spiego in modo molto dettagliato come creare e configurare correttamente un Interactive Report.
Ehi, se vuoi puoi vedere il risultato dai un occhio a questa applicazione di demo che ho creato appositamente per questo tutorial.
Sperimenta pure e fammi sapere se ti piace nei commenti!
IN QUESTO ARTICOLO
Cosa ti serve per implementare un Interactive Report + Form
Per completare questo tutorial hai bisogno di:
- La tabella che deve essere aggiornata.
- Un ambiente Oracle APEX su cui lavorare.
Se in questo momento non hai a disposizione un ambiente di sviluppo in APEX leggi la guida su come ottenere un ambiente Oracle APEX di prova.
Come creare un’applicazione con Interactive Report + Form
Per fare questo tutorial creerò una applicazione che permetterà di leggere e modificare l’anagrafica dei dipendenti di una generica azienda.
Puoi creare una nuova applicazione da zero, oppure puoi aggiungere una pagina ad una tua applicazione di prova che hai creato.
Da questo link puoi scaricare lo script per installare gli oggetti del database (tabelle, sequence, ecc.) che userò in questo tutorial.
La nostra applicazione sarà strutturata in questo modo:
- la pagina di ricerca principale, basata su Interactive Report, che permetterà di interrogare i dati dal database.
- dalla pagina di ricerca, creeremo a livello di riga un bottone che aprirà una form attraverso la quale potremo modificare i dati del singolo record.
Crea una nuova applicazione
Se hai già una applicazione APEX e vuoi aggiungere una nuova pagina con un report interattivo, puoi tranquillamente saltare al paragrafo successivo.
Per creare una nuova applicazione, esegui i seguenti passaggi.
- Collegati ad Oracle APEX e seleziona App Builder

- Clicca sul bottone Create

- Seleziona New Application

- Dai un nome alla tua applicazione
- Premi Create Application

Crea una nuova pagina di tipo Report with Form
- Dall’App Builder di Oracle APEX, clicca sull’applicazione
- Clicca sul bottone Create Page

- Seleziona il tipo pagina Form e clicca Next

- Seleziona il tipo pagina Report with Form e clicca Next.

- Nella pagina seguente inserisci le informazioni richieste:
- Report Type: Interactive Report
- Report Page Name
- Form Page Name
- Clicca Next.

- Seleziona l’opzione per la creazione della voce di menù
- Clicca Next.

- Nella sezione Data Source specifica le seguenti informazioni:
- Source Type: Table
- Table: la tabella che deve essere aggiornata. Se stai seguendo questo tutorial inserisci S_EMP
- Select Columns: tutte le colonne che vuoi includere nel report
- Clicca Next.

- Specifica la PRIMARY-KEY della tabella da aggiornare.
- Clicca Create.

- Il sistema dovrebbe creare 2 pagine:
- Interactive Report with Form
- Form

Creazione delle Liste Valori
Alcuni campi della nostra applicazione di demo devono essere validati. Pertanto andremo a creare delle liste valori.
Dobbiamo creare 3 LOV:
- TITLE_LOV: Dynamic LOV, basata sui valori della tabella S_TITLE
- MANAGER_LOV: Dynamic LOV, basata sui valori della tabella S_EMP
- DEPARTMENT_LOV: Dynamic LOV, basata sui valori della tabella S_DEPT
List Of Values TITLE_LOV
- Clicca su Shared Components

- Clicca su List Of Values

- Clicca su Create

- Seleziona l’opzione From Scratch e clicca su Next

- Dai un nome alla LOV e seleziona il tipo
- Name: S_TITLE_LOV
- Type: Dynamic

- Specifica la tabella dalla quale prendere i valori
- Source Type: Table
- Table Owner: lo schema APEX del tuo workspace
- Table: S_TITLE

- Nella schermata successiva seleziona il campo che la lista valori deve visualizzare e restituire: TITLE

List Of Values DEPT_LOV
- Per creare questo tipo di lista valori, segui la procedura vista poco fa

- Specifica la tabella dalla quale prendere i valori
- Source Type: Table
- Table Owner: lo schema APEX del tuo workspace
- Table: S_DEPT

- Specifica il valore che deve essere visualizzato dall’utente e quello che deve essere salvato nel database
- Return Column: ID
- Display Column: NAME

List Of Values EMP_LOV
Questa lista valori è sempre dinamica e basata su una query SQL.
- Per creare questo tipo di lista valori, segui la procedura vista poco selezionando il tipo LOV Dynamic
- Nella sezione in cui devi specificare la sorgente, indica SQL Query ed inserisce la seguente query:
select ID as RETURN_VALUE,
LAST_NAME||', '||FIRST_NAME AS DISPLAY_VALUE
from s_emp

Configurazione Interactive Report
Per completare il setup della pagina di ricerca è necessario impostare delle List Of Values sui relativi campi dell’Interactive Report
Colonna TITLE
- Seleziona la colonna TITLE

- Cambia il tipo a Plain Text (based on List of Values)
- Imposta la lista valori S_TITLE_LOV

Colonna MANAGER_ID
- Seleziona la colonna MANAGER_ID

- Cambia il tipo a Plain Text (based on List of Values)
- Imposta la lista valori S_EMP_LOV

Colonna DEPT_ID
- Seleziona la colonna DEPT_ID

- Cambia il tipo a Plain Text (based on List of Values)
- Imposta la lista valori DEPT_LOV

Configurazione Form
Anche per completare il setup della form di aggiornamento è necessario implementare le alcune regole di validazione.
In generale puoi definire diverse tipi di validazione sui campi di una form Oracle APEX tramite la Validation Rules.
In questo esempio ci limiteremo a creare le seguenti validazioni:
- setup delle liste valori
- setup dei campi obbligatori
Campi validati da List Of Values
Prima di tutto configuriamo i campi che devono essere validati da LOV
Campo TITLE
- Seleziona il campo PX_TITLE (X è il numero della pagina che Oracle APEX ha assegnato alla form. Nel mio caso è 5)

- Cambia il tipo campo a Select List

- Imposta la lista valori S_TITLE_LOV creata precedentemente

Campo MANAGER
- Seleziona il campo PX_MANAGER_ID (X è il numero della pagina che Oracle APEX ha assegnato alla form. Nel mio caso è 5)
- Cambia il tipo campo a Popup LOV

- Imposta la lista valori S_TITLE_LOV creata precedentemente

Campo DEPT_ID
- Seleziona il campo PX_DEPT_ID (X è il numero della pagina che Oracle APEX ha assegnato alla form. Nel mio caso è 5)
- Cambia il tipo campo a Select List
- Imposta la lista valori DEPT_LOV creata precedentemente
Campi Obbligatori
Impostiamo come obbligatori i seguenti campi della form:
- PX_FIRST_NAME
- PX_LAST_NAME
- PX_USERID

Per configurare un campo come obbligatorio è sufficiente attivare l’opzione Value Required nel tab delle proprietà

Configurazione Primary Key
La form che Oracle APEX ha creato tramite il wizard permette di aggiornare un record del database sfruttando un meccanismo standard di APEX chiamato Automatic Row Processing (DML).


Questo non è l’unico metodo per salvare i dati nel database. Ad esempio, potresti creare un PLSQL custom per gestire le varie operazioni come INSERT, UPDATE e DELETE.
Per maggiori dettagli leggi questo tutorial su come processare in dati usando una procedura PLSQL.
Un’ applicazione pratica la puoi trovare in questo tutorial dove spiego come migrare di una applicazione da Oracle Forms & Report in Oracle APEX.
Quando utilizzi il metodo Automatic Row Processing (DML) devi assicurarti che la PRIMARY-KEY della tabella sia correttamente gestita nella tua applicazione APEX.
- Clicca sulla colonna PX_ID

- Verifica che il tipo campo sia Hidden e che sia attivata l’opzione Value Protected

- Nella sezione Default imposta le seguenti proprietà
- Type: Sequence
- Sequence: devi indicare la sequence del database che avrai già creato. Se hai installato gli oggetti che ho messo a tua disposizione all’inizio di questo tutorial puoi scrivere S_EMP_SEQ

Configurazione Form Layout
Quando crei una pagina con il wizard di Oracle APEX, il layout di default è abbastanza semplice. Tutti i campi vengono disposti in colonna.
Tuttavia è possibile aggiustarlo tramite il designer per ottenere un Look & Feel più appetibile.
Inoltre sarebbe opportuno cambiare le labels dei vari campi affinché siano più comprensibili per l’utente finale.

In conclusione
Bene, se sei arrivato a questo punto del tutorial, forse hai già creato la tua applicazione basata su Interactive Report + Form.
Anche io ho creato un’applicazione di demo: prova a darci un occhiata e fammi sapere cosa ne pensi.
Se questo tutorial ti è piaciuto fammelo sapere nei commenti e condividilo!
Un abbraccio
Daniele
Lascia un commento