Variabili globali

From SageDev KB
Jump to navigation Jump to search

Variabili globali

Ci sono delle variabili definite globalmente che permettono di gestire le diverse condizioni che sovvengono nelle varie fasi di esecuzione del codice.

Per vederle tutte vai alla funzione GESAGB.

  • GREP:
    1. vuoto,"", quando l'utente sta visualizzando i dati
    2. vale "C" se siamo in creazione (quando viene premuto il pulsante Crea)
    3. vale "M" se siamo in visualizzazione/modifica (quando è attivo e viene premuto il pulsante Registra)
    4. vale "D" se siamo in duplicazione (quando viene premuto il pulsante Duplica)
    5. vale "A" se siamo in annullamento (quando viene premuto il pulsante Annulla)
  • GIMPORT: variabile utilizzata per gestire la fase di importazione/esportazione; se vale 1 vuol dire che si è in fase di importazione/esportazione
  • GIMP(): vedi Programmazione per Import/Export
  • GSILENCE: se vale 0 indica che sono abilitati i messaggi popup; quando viene impostata a 1 l'utente non vedrà più tali messaggi; utile in programmi non interattivi, va poi rimessa a 0
  • GERR: indica/imposta se c'è un messaggio d'errore
    1. 1: messaggio d'errore
    2. 2: messaggio informativo
    3. 3: messaggio di avviso
    4. 4: messaggio in fondo alla videata
  • GMESSAGE: contiene un eventuale messaggio di errore
  • GSERVEUR: indica se l'esecuzione è in modalità interattiva o batch (0 interattivo, 1 batch); se in batch non si creano file di log
  • GTRACE: indica il nome del file traccia attivo, vuoto se non c'è un file di traccia attivo
  • GFONCTION: indica la funzione corrente
  • GFONCTION1: indica la funzione chiamante solo in caso di tunnel o chiamante da un oggetto all'altro, come la precedente (o vuota?) altrimenti
  • GFONC1: indica sempre la funzione precedente, in ogni caso (quindi anche quando una funzione viene aperta tramite F7)
  • GLANGUE: lingua della sessione corrente
  • GFLAG: transazione corrente
  • PULSANTI
    • GSTACRE: pulsante standard "Crea"
    • GSTANEW: pulsante standard "Nuovo"
    • GSTAENR: pulsante standard "Registra"
    • GSTAANU: pulsante standard "Elimina"
    • GSTAFIN: pulsante standard "Annulla"
    • GSTARET: pulsante standard "return"
    • GBOUT1,GBOUT2,...GBOUT20: contengono le etichette dei pulsanti di riquadro di videata (vedi Gestione Bottoni)
  • GREPORT1 e GREPORT2: contengono il codice stampa scheda e il codice stampa liste, vedi Help funzione da GESAFC (campi Stampa RPT1 e Liste RPT2)
  • GSTALIT: per forzare la rilettura di un record visualizzato

Esempi:

If GREP = "C" and !GIMPORT
   # azione da eseguire se siamo in fase di creazione ma non in fase di importazione
Endif
If !GSERVEUR          
    #siamo in modalità interattiva: posso chiedere conferma all'utente
    Local Integer YESNO : Raz YESNO
    Call OUINON('Import ODA/ODV da AS400?',YESNO) From GESECRAN
    If YESNO=1 : Infbox 'Elaborazione bloccata!' : Return : Endif  
Endif
# Far eseguire in modalità batch del codice (e non generare log)
GSERVEUR = 1
  Call ...
  Call ...
  Call ...
GSERVEUR = 0

Gestione tipica

Lo standard in generale fa queste due chiamate all'apertura e alla chiusura di una finestra (sorgenti SUB*.src):

Dentro $OUVRE

#Salva l'attuale situazione delle variabili globali
Gosub SAUV_GLOB From TRTX3GLOB

Dentro $FERME

#Ripristina le variabili globali
Gosub REST_GLOB From TRTX3GLOB


Altro esempio da qualche sorgente SUB*.src:

Finestra

$APRES_CHOI
Case REPONSE 
 When GSTACRE  : Gosub CREATE : #Créer
 When GSTAANU  : Gosub ANNUL  : #Supprimer
 When GSTAENR  : Gosub MODIF  : #Enregistrer
 When GSTARET  :
  If REP="C" | REP="D" : Gosub CREATE 
  Elsif REP="M" : Gosub MODIF 
  Endif 
 When Default
Endcase
Return

oppure

$APRES_CHOI
Case REPONSE
  When GSTARET :
    Case GREP
      When "C", "D" : REPONSE = GSTACRE
      When "M"      : REPONSE = GSTAENR
    Endcase
Endcase
#
Case REPONSE
...

Dialog box

$AP_CHOIX
Case REPONSE
 When GSTARET          : Gosub VALID
 When GSTAEND, GSTAESC : Gosub CONFIRME
 When Default
Endcase
Return

Variabili speciali

  • zc contiene il valore del campo corrente, o il valore di una formula corrente o altro in base al contesto
    da non confondere con
    • CZ, variabile attiva in base all'azione, per es. in APRES_MODIF
  • zoncou contiene il nome del campo corrente in inserimento nella videata
    da non confondere con
    • COUZON, variabile attiva in base all'azione, per es. in APRES_MODIF
    • ZONSUI, variabile che permette di indicare il prossimo campo su cui mettere il focus (per es.:zonsui = "[M:PTH1]YNUMPEZZI("+num$(nolign-1)+")")
  • zonsor è una variabile alfanumerica in cui si trova il nome dell'ultimo campo in inserimento nella videata
  • maskcou contiene il nome della videata corrente
  • trtcou contiene il nome del programma corrente
  • adxpno restituisce i nomi dei programmi accodati (il livello 0 è il livello corrente, il livello 1 è quello del programma chiamante, ecc)
  • datesyst data di sistema (pag.30 di Linguaggio.pdf)