In Oracle APEX puoi rendere le righe di una Interactive Grid editabili in modo dinamico usando una semplice condizione SQL.
Supponiamo, ad esempio, che tu abbia creato una applicazione per gestire le richieste di acquisto tramite un workflow.
Ciascun utente deve poter inserire e consultare le proprie RDA da una pratica Interactive Grid.
Tuttavia, una volta che l’RDA viene sottomessa, il record non deve più essere modificabile.
Pertanto, ci sarà una colonna che rappresenta lo stato della richiesta di acquisto: se lo stato è BOZZA allora il record è modificabile, altrimenti no.
IN QUESTO ARTICOLO
Come utilizzare la proprietà Allowed Row Operations Column
- Crea una Interactive Grid

- Abilita l’opzione Edit Enabled e specifica il tipo di operazioni che è possibile eseguire sulla griglia.

Con questa configurazione di base, tutte le righe dell’interactive GRID possono essere modificate o cancellate.
Invece, quello che vogliamo è permettere le operazioni di modifica solo se lo stato record è BOZZA, ovvero per quei record che soddisfano questa condizione: STATO=’BOZZA’
Vediamo come implementare questa funzionalità in pochi semplici passi.
- Seleziona l’Interactive Grid e aggiungi una nuova colonna di nome EDITABLE

- Proprietà della colonna EDITABILE
- Column Name: EDITABLE
- Type: Hidden
- Value Protected: No
- Source: SQL Expression
- SQL Expression: DECODE(STATO,’BOZZA’,’U’,’X’)
- Data Type: VARCHAR2

- In alternativa, se la tua Interactive Grid è basata su query, puoi aggiungere la condizione direttamente nella query dell’Interactive Grid

- Seleziona l’Interactive Grid e vai in Attributes > Edit
- Vai alla proprietà Allowed Row Operations Column e seleziona la colonna EDITABLE

Il risultato finale
- Una volta che hai completato avvia l’applicazione.
- Se hai fatto tutto correttamente, le righe nello stato diverso da quello previsto non dovrebbero essere editabili. Se vuoi puoi vedere il risultato a questo link.

Fammi sapere se ci sei riuscito e se hai dubbi o domande fammelo sapere nei commenti!
Iscriviti alla NEWSLETTER e seguimi su Linkedin per ricevere contenuti e articoli ogni settimana.
Un abbraccio
Daniele
Lascia un commento