• Passa al contenuto principale
  • Passa alla barra laterale primaria
  • INIZIA QUI
  • HOME
  • CHI SONO

APPin5Minuti

Creare APP Gestionali con Oracle APEX e Low-Code

Crea Applicazioni Gestionali con Oracle APEX e gli strumenti Low-Code.

Oracle APEX: come recuperare le righe selezionate in una Interactive Grid (Row Selector)

Maggio 17, 2021

In questo tutorial voglio mostrarti come recuperare le righe selezionate in una Interactive Grid Oracle APEX usando il componente Row Selector.

Per aiutarti, ho preparato una semplice pagina di demo (che puoi visualizzare a questo link)

Utilizzeremo 3 oggetti:

  • Employees: Interactive Grid che mostra un elenco di dipendenti
  • Selected Employees: Interactive Report che mostra l’elenco dei record che sono stati selezionati nell’Interactive Grid Employees
  • Current Selection: Static Content contenente alcuni campi tecnici che ci serviranno per implementare la selezione.

Per fare questo esercizio ho usato la tabella S_EMP di cui qui sotto puoi trovare lo script. Se vuoi puoi crearla nella tua applicazione per fare insieme questo esercizio.

CREATE TABLE  "S_EMP" 
   (	"ID" NUMBER(7,0) CONSTRAINT "S_EMP_ID_NN" NOT NULL ENABLE, 
	"LAST_NAME" VARCHAR2(25) CONSTRAINT "S_EMP_LAST_NAME_NN" NOT NULL ENABLE, 
	"FIRST_NAME" VARCHAR2(25), 
	"USERID" VARCHAR2(8), 
	"START_DATE" DATE, 
	"COMMENTS" VARCHAR2(255), 
	"MANAGER_ID" NUMBER(7,0), 
	"TITLE" VARCHAR2(25), 
	"DEPT_ID" NUMBER(7,0), 
	"SALARY" NUMBER(11,2), 
	"COMMISSION_PCT" NUMBER(4,2), 
	 CONSTRAINT "S_EMP_COMMISSION_PCT_CK" CHECK (commission_pct IN (10, 12.5, 15, 17.5, 20)) ENABLE, 
	 CONSTRAINT "S_EMP_ID_PK" PRIMARY KEY ("ID")
  USING INDEX  ENABLE, 
	 CONSTRAINT "S_EMP_USERID_UK" UNIQUE ("USERID")
  USING INDEX  ENABLE
   )
/
ALTER TABLE  "S_EMP" ADD CONSTRAINT "S_EMP_DEPT_ID_FK" FOREIGN KEY ("DEPT_ID")
	  REFERENCES  "S_DEPT" ("ID") ENABLE
/
ALTER TABLE  "S_EMP" ADD CONSTRAINT "S_EMP_MANAGER_ID_FK" FOREIGN KEY ("MANAGER_ID")
	  REFERENCES  "S_EMP" ("ID") ENABLE
/
ALTER TABLE  "S_EMP" ADD CONSTRAINT "S_EMP_TITLE_FK" FOREIGN KEY ("TITLE")
	  REFERENCES  "S_TITLE" ("TITLE") DISABLE
/

IN QUESTO ARTICOLO

  • STEP 1: Crea una Interactive Grid
  • STEP 2: Crea i Page Item in cui scrivere i record selezionati
  • STEP 3: Crea un Interactive Report per visualizzare i records selezionati
  • STEP 4: Crea una Dynamic Action che recupera le righe selezionate nella Region Employees
  • STEP 5: Crea una True Action per aggiornare l’Interactive Report

STEP 1: Crea una Interactive Grid

Crea una region di tipo Interactive Grid con queste proprietà

  • Title: Employees – Interactive Grid
  • Type: Interactive Grid
  • SQL Query: vedi sotto
select ROWID,
       ID,
       LAST_NAME,
       FIRST_NAME,
       USERID,
       START_DATE,
       COMMENTS,
       MANAGER_ID,
       TITLE,
       DEPT_ID,
       SALARY,
       COMMISSION_PCT
  from S_EMP
  • Vai in Attributes e seleziona l’opzione Edit.
  • Attiva le specifiche operazioni che vuoi abilitare (Add, Update, Delete) come meglio credi. In questo esercizio non attiverò nessuna di queste opzioni.
  • Avendo attivato l’opzione Edit, automaticamente verranno creati nell’Interactive Grid 2 nuovi elementi: un Row Selector ed un Row Action.

STEP 2: Crea i Page Item in cui scrivere i record selezionati

Crea due Page Item che utilizzeremo per salvare le righe selezionate. In particolar modo nel Page Item P9_EMPS andremo a scrivere una stringa costruita come concatenazione degli ID di ciascun impiegato, ciascuno dei quali delimitato dal carattere “:”

Qualcosa di simile a questo:

:<exmployee_id1>:<exmployee_id2>:<exmployee_id3>:<exmployee_id3>:....
  • Page Item P9_EMPS: memorizza le righe selezionate
    • Name: PX_EMPS
    • Type: Hidden
    • Value Protected: No
  • Page Item P9_EMP: ultima riga selezionata
    • Name: PX_EMP
    • Type: Hidden
    • Value Protected: No

STEP 3: Crea un Interactive Report per visualizzare i records selezionati

Creiamo un Interactive Report per mostrare un modo per recuperare via SQL i record che sono stati selezionati nell’Interactive Grid.

Lo stesso metodo lo potrai utilizzare, ad esempio, in una procedura PL-SQL che deve eseguire delle elaborazioni sui record selezionati.

  • Name: Selected Employees – Interactive Report
  • Type: Interactive Report
  • SQL Query: vedi sotto
select
    userid,
    last_name,
    first_name
from
    s_emp
where
    userid in (
        select
            t.column_value as employee_id
        from
            table ( apex_string.split(rtrim(ltrim(:p9_emps, ':'), ':'), ':') ) t
    )
  • Page Items To Submit: P9_EMPS

STEP 4: Crea una Dynamic Action che recupera le righe selezionate nella Region Employees

Questo è il punto più importante del tutorial. Usando del semplicissimo codice JavaScript andremo a recuperare le righe che sono state selezionate dall’utente nella griglia.

  • Seleziona l’Interactive Grid
  • Crea una nuova Dynamic Action
    • Name: da_select
    • Event: Selection Change [Interactive Grid]
    • Selection Type: Region
    • Region: Employees
  • Seleziona la Dynamic Action da_select che abbiamo appena creatore e definisci una True Action
    • Action: Execute JavaScript Code
    • Code: Inserisci il seguente codice JavaScript:
var i, i_empids = ":", i_empid,
model = this.data.model;
for ( i = 0; i < this.data.selectedRecords.length; i++ ) {
    i_empid = model.getValue( this.data.selectedRecords[i], "USERID");   
    i_empids += model.getValue( this.data.selectedRecords[i], "USERID") + ":";
}
apex.item( "P9_EMPS" ).setValue (i_empids);
apex.item( "P9_EMP" ).setValue (i_empid);

Il codice JavaScript che abbiamo creato andrà a scrivere nel campo P9_EMPS la concatenazione di tutti i record (colonna USERID) che sono stati selezionati, mentre nel campo P9_EMP andrà a scrivere il riferimento all’ultimo record selezionato.

STEP 5: Crea una True Action per aggiornare l’Interactive Report

L’ultimo pezzetto della nostra applicazione permette di far si che l’Interactive Report Selected Employees si aggiorni automaticamente in funzione delle selezioni che vengono fatte.

In generale non hai bisogno di creare sempre un Interactive Report. In questa applicazione di demo è una funzionalità puramente dimostrativa che ho creato per farti vedere come visualizzare le righe selezionate attraverso del semplice codice SQL.

  • Action: Refresh
  • Selection Type: Region
  • Region: Selected Employees – Interactive Report (creato nello STEP-3 di questo tutorial)

Questo è il risultato

TI POTREBBE INTERESSARE:

  • CPQ in Oracle APEX
  • Come migrare le applicazioni da Oracle Forms ad Oracle APEX
  • Come sviluppare applicazioni sicure con Oracle APEX
  • Come gestire i files su Object Storage da Oracle APEX
  • Costruiamo un CRM con Oracle APEX
  • 5 Modi per Cercare i Dati in Oracle APEX

interactive grid, interactive report, javascript, oracle apex

Interazioni del lettore

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Barra laterale primaria

BENVENUTO!

Il mio nome è Daniele Trasarti, autore di APPin5Minuti, il blog italiano che parla di piattaforme di Oracle APEX e applicazioni low-code.

Qui troverai tantissimi tutorial e risorse per imparare a sviluppare in pochissimo tempo bellissime applicazioni per gestire i dati ed i processi della tua azienda.

Se vuoi saperne di più inizia da qui.

Seguimi sui social!

  • LinkedIn
  • Twitter

NEWSLETTER

Iscriviti anche tu per far parte della più grande community italiana di persone che amano sviluppare low-code!

api rest appsheet appsheet data sources appsheet views appsheet workflow automation autonomous database build apps cpq crm css cyber security database dynamic layout facebook flowform flows4apex google google cloud interactive grid interactive report javascript list microsoft microsoft access mobile oracle oracle apex oracle cloud oracle rest data service ords pl-sq PL-SQL power apps product configurator sales configurator security social login software gestionale sql theme roller ux woocommerce wordpress workflows

COMMENTI RECENTI

  1. Daniele Trasarti su Oracle APEX: come creare un’applicazione web in 5 minuti

    Ciao Sabatino, grazie per l'apprezzamento. Riguardo alla tua domanda ti consiglio di usare Oracle Cloud. Puoi creare un account gratis…

  2. Sabatino Iannazzo su Oracle APEX: come creare un’applicazione web in 5 minuti

    Ciao Daniele, complimenti per la guida, mi hai aperto un mondo! volevo chiederti se con Apex e Oracle Database Express…

  3. Laura su Autenticazione a 2 Fattori basata su TOTP (Time-based One-time Password) con Oracle APEX

    Ciao, trovo molto interessante il tuo articolo. Hai qualche suggerimento per l'autenticazione con spid? pensi di fare qualche guida al…

  4. Mario Volpetti su Oracle APEX: come creare un’applicazione web in 5 minuti

    Ottima spiegazione e complimenti per la semplicità che ai usato. Sono riuscito a farlo anche io con un foglio excel…

  5. Riccardo Liviabella su Google AppSheet: come creare una APP Mobile da un foglio Excel in 5 minuti

    Ciao Daniele e grazie per le tue interessanti spiegazioni. E' da un pò di anni che lavoro su Appsheet e…

  6. Daniele Trasarti su Come costruire Workflows Approvativi in Oracle APEX

    Ciao Bhavin, I think you badly copied PL-SQL because the one you provided is not correct. Fix the script and…

  7. Daniele Trasarti su Applicazione di Prenotazione Appuntamenti in Oracle APEX

    Grazie mille Franca!

Copyright © 2023 · APPin5Minuti.it · Privacy Policy · Cookie Policy