Il componente input panel è sostanzialmente una form, cioè un insieme di campi modificabili utilizzati per richiedere all’utente l’immissione di una serie di informazioni richieste. Utilizzato molto spesso, in quanto versatile, è utile capirne appieno il funzionamento: andiamo quindi a vedere quali sono le funzioni base dell’input panel.

Inizializzazione dell’ Input panel

FUN dei dati

Un input panel, solitamente, viene caricato tramite una FUN di dati e, nello specifico, la FUN definisce i campi e il tipo di dati che essi devono contenere.

Servizio associato

Per la comunicazione con il server è necessario associare all’input panel un servizio, e per far questo, ci vogliono 2 attributi:

  • UPDSVC: dove scriviamo il nome del servizio.
  • UPDPAR: dove specifichiam i parametri da passare al servizio.

Il servizio di aggiornamento o update, oltre che implementare le funzioni che vedremo successivamente in questo articolo (*CHECK, *UPDATE, *EXIT, *SETUP), deve rispettare un protocollo di comunicazione con i client: ovvero ad una chiamata deve corrispondere un determinato formato di risposta che il client riconosce.


*SETUP

La funzione di *SETUP è una chiamata al server lanciata al caricamento dell’input panel.
Questa funzione, fondamentalmente, definisce la configurazione dei dati.
Un esempio della struttura della FUN che deve essere implementata all’interno del servizio di UPDATE per richiamare questa funzione è:
F(EXU;nomeServizioUpdate;*SETUP) P(...) INPUT(...)

Layout

script di layout

Il Layout serve a gestire lo spazio dei campi nello schermo, quindi definisce la posizione dei campi, le sezioni, la forma grafica di output dei singoli campi.
il Layout si va a definire in uno script di Layout (SCP_LAY) al cui interno si definiscono le posizioni e le dimensioni per i vari campi. Questo script per essere applicato, viene richiamato all’interno del setup (::G.SET) del componente.
Per gestire tutti questi elementi richiamiamo uno script di Layout nel quale sono specificate delle valorizzazioni dei parametri sopra elencati.

Script di scheda in cui viene richiamato lo script di Layout nel ::G.SET

Controllo e aggiornamento dei dati

Le funzionalità di *Check e *Update servono a effettuare controlli, segnalare all’utente eventuali anomalie dei dati inseriti ed inviarli poi al server.

*CHECK

script di scheda esemplificativo su alcuni esempi di funzionalità avanzate dell'input panel

la funzione di *CHECK attiva una funzione di controllo sui campi utile a verificare che i dati inseriti o modificati rispettino determinati criteri.

Per abilitare la chiamata *CHECK su un campo si deve impostare l’attributo AutoEnter='1' nell’xml di *SETUP e dopo che un utente si sarà posizionato sul campo successivo, si attiverà questa funzione di controllo dati, evidenziando eventuali errori.
F(EXU;nomeServizioUpdate;*CHECK) P(...) INPUT(...)

*UPDATE

La funzione di *UPDATE richiama un servizio che aggiorna i dati dei campi ed effettua i controlli dopo che un utente ha cliccato sul bottone di conferma. F(EXU;nomeServizioUpdate;*UPDATE) P(...) INPUT(...)


Chiusura dell’input panel

*EXIT

La funzione *EXIT è una funzione richiamata alla chiusura dell’Input panel.
Il servizio al suo interno può effettuare ulteriori controlli e procedure di chiusura (ad esempio, potrebbe ripulire la memoria).

F(EXU;nomeServizioUpdate;*EXIT) P(...) INPUT(...)

Extended info

Un modo molto utile per visualizzare le informazioni che si scambiano client e server si trova nella vista di debug del componente, aprendo il tab: EXTENDED INFO.

In questa sezione è possibile infatti visionare tutto i passaggi di comunicazione e gli XML mandati al server e ritornati ogni volta che viene chiamata una funzione.


Abbiamo visto le funzioni base dell’input panel e cioè il “dietro le quinte” che sta alla base del funzionamento di questo componente.