Finestre di dialogo
Sage mette a disposizione diverse chiamate per mandare dei messaggi verso l’utente finale.
Messaggio semplice
call MESSAGE("Ciao") from GESECRAN
che si appoggia sull’istruzione Infbox
che però non è consigliata in ambienti di produzione:
Infbox "Ciao"
nel caso la chiamata MESSAGE from GESECRAN venga eseguita in modalità batch
gestisce la scrittura del messaggio nella traccia in modo automatico;
un messaggio dell’istruzione Infbox in tal caso viene invece perso.
Finestra di dialogo Yes/No
Le chiamate disponibli sono:
Call OUINON(MESSAGGIO, YN) From GESECRAN
Call OUINONT(MESSAGGIO, YN) From GESECRAN #con temporizzazione
Vediamo un esempio:
Local Integer YN YN = 2 :# By default points on Yes Call OUINON("Vuoi continuare?", YN) From GESECRAN If YN=1 : Infbox "HAI CLICCATO NO" : Endif If YN=2 : Infbox "HAI CLICCATO SI" : Endif
Questa chiamata internamente esegue indicativamente queste istruzioni:
Local Libelle REP Qstbox mess(2, 5, 1) - nomap Using [L]REP Case [L]REP When 1: Infbox "HAI CLICCATO SI" When 2: Infbox "HAI CLICCATO NO" Endcase
Finestra di dialogo Ok/Cancel
Le chiamate disponibli sono:
Call AVERTIR(MESSAGGIO, OKCAN) From GESECRAN
Call AVERTIRT(MESSAGGIO, OKCAN) From GESECRAN #con temporizzazione
Vediamo un esempio:
Local Integer OKCAN OKCAN = 2 # Ok di default Call AVERTIR(“Attenzione:\tutti i record verranno cancellati”, OKCAN) From GESECRAN
oppure (deprecato)
Local Libelle REP Wrnbox "Attenzione: proseguire?" Using [L]REP Case [L]REP When 1: Infbox "HAI CLICCATO Ok" When 2: Infbox "HAI CLICCATO Annulla" Endcase
Finestra di dialogo Informazione/Avviso
Le chiamate disponibili sono:
Call ERREUR(MESSAGGIO) From GESECRAN
Call ERREURT(MESSAGGIO, TIPO) From GESECRAN #con temporizzazione
Call ERRTIT(MESSAGGIO, TITOLO) From GESECRAN
Call ERRTITT(MESSAGGIO, TITOLO) From GESECRAN #con temporizzazione
oppure (deprecato)
Errbox "Error message"
TIPO può essere 0 (Informazione) o 1 (Errore);
l’icona visualizzata sarà rispettivamente una “i” su colore azzurro o un punto esclamativo su giallo.
Attenzione: se il paramtero MESSAGGIO è vuoto, l’avviso di errore non compare.
Molto comodo se si hanno dei messaggi di ritorno perché non serve star lì a controllarli,
ma può trarre in inganno se non si sta attenti.
Vediamo degli esempi:
Call ERREURT("Errore in inserimento", 1) From GESECRAN
Call ERREURT("Errore in inserimento", 0) From GESECRAN
Call ERRTIT("Errore", "Mio titolo") From GESECRAN
GTIMOUT=15 # timeout di 15 secondi
Call ERRTITT("Errore", "Mio titolo") From GESECRAN
Messaggio di errore grave
Un’altra chiamata disponibile è:
Call ERREND (MESSAGGIO) From GESECRAN
Si basa sull’istruzione Endbox (deprecata), che usa gli stessi principi di Errbox.
Cambia solo la grafica del messaggio, e viene utilizzata solo in casi gravi in cui in genere va interrotto il programma.
Eccone un esempio
Call ERREND (“Errore grave”) From GESECRAN
Messaggio di attesa in progressione
Per aprire un messaggio di progressione all’inizio di una serie di azioni:
Call TEMPON ("Azione in corso...0%") From GESECRAN
per modificare il messaggio basta rifare la stessa chiamata:
Call TEMPON ("Azione in corso...50%") From GESECRAN
per chiudere il messaggio:
Call TEMPOFF From GESECRAN
Per esempio
Call TEMPON ("Partenza...") From GESECRAN
#...istruzioni varie
Call TEMPON ("Azione in corso...0%") From GESECRAN
#...istruzioni varie
Call TEMPON ("Azione in corso...50%") From GESECRAN
#...istruzioni varie
Call TEMPON ("Azione in corso...100%") From GESECRAN
Call TEMPOFF From GESECRAN
Annotazioni varie
Testo su più righe
Per mettere il testo su più righe basta usare come separatore il carattere \
call MESSAGE("Ciao,\come stai?") from GESECRAN
Bottone di default
Il pulsante di default viene definito dalla variabile di tipo Integer passata per contenere il valore di ritorno:
Local Integer OKCAN OKCAN = 2 # Ok di default Call AVERTIR(“Warning:\All records will be deleted”, OKCAN) From GESECRAN
Timeout per le chiamate temporizzate
È possibile far si che dopo tot secondi la finestra si chiude da sola,
e la risposta di ritorno data sia quella del bottone di default.
Il tempo di attesa va impostato tramite la variabile globale GTIMOUT,
che a sua volta è inizializzata dal parametro TIMOUT.
Se GTIMOUT è impostata a 0 l’attesa non ha limiti, si aspetta finchè l’utente non fa una scelta.
La variabile TIMOUT si può modificare tramite il menu
Parametrizzazione \ Parametri generali \ Valori parametri (funzione ADPVAL),
selezionando il capitolo SUP a livello dossier, e andando nel dettaglio del gruppo PRF (Performance):
Spero vi sia stato utile!