Difference between revisions of "Variabili globali"
Jump to navigation
Jump to search
| (33 intermediate revisions by 7 users not shown) | |||
| Line 1: | Line 1: | ||
== Variabili globali == | == Variabili globali == | ||
| − | Ci sono delle variabili | + | 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''': | * '''GREP''': | ||
| + | *# vuoto,"", quando l'utente sta visualizzando i dati | ||
*# vale "C" se siamo in creazione (quando viene premuto il pulsante <code>Crea</code>) | *# vale "C" se siamo in creazione (quando viene premuto il pulsante <code>Crea</code>) | ||
*# vale "M" se siamo in visualizzazione/modifica (quando è attivo e viene premuto il pulsante <code>Registra</code>) | *# vale "M" se siamo in visualizzazione/modifica (quando è attivo e viene premuto il pulsante <code>Registra</code>) | ||
| Line 10: | Line 13: | ||
* '''GIMPORT''': variabile utilizzata per gestire la fase di [[ImportExport|importazione/esportazione]]; se vale 1 vuol dire che si è in fase di importazione/esportazione | * '''GIMPORT''': variabile utilizzata per gestire la fase di [[ImportExport|importazione/esportazione]]; se vale 1 vuol dire che si è in fase di importazione/esportazione | ||
* '''GIMP()''': vedi [[ImportExport#Programmazione| Programmazione per Import/Export]] | * '''GIMP()''': vedi [[ImportExport#Programmazione| Programmazione per Import/Export]] | ||
| − | * '''GSILENCE''': se vale 0 indica che sono abilitati i messaggi | + | * '''GSILENCE''': se vale 0 indica che sono abilitati i messaggi di errore; 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: messaggio d'errore | ||
| + | *# 2: messaggio informativo | ||
| + | *# 3: messaggio di avviso | ||
| + | *# 4: messaggio in fondo alla videata | ||
* '''GMESSAGE''': contiene un eventuale messaggio di errore | * '''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 | * '''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 | + | * '''GWEBSERV''': indica modalità Web Services |
| + | * '''GUSER''': codice utente corrente | ||
| + | * '''GNOMUSER''': nome utente corrente | ||
| + | * '''GPROFIL''': profilo funzione | ||
| + | * '''GTRACE''': indica il nome del file traccia attivo, vuoto se non c'è un file di traccia attivo (vedi [[Gestione tracce]]) | ||
* '''GFONCTION''': indica la funzione corrente | * '''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 | * '''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) | * '''GFONC1''': indica sempre la funzione precedente, in ogni caso (quindi anche quando una funzione viene aperta tramite F7) | ||
| + | * '''GLANDEF''': lingua default | ||
* '''GLANGUE''': lingua della sessione corrente | * '''GLANGUE''': lingua della sessione corrente | ||
* '''GFLAG''': transazione corrente | * '''GFLAG''': transazione corrente | ||
| + | * '''GBOITE''': finestra corrente | ||
| + | * '''GABREV''': abbreviazione oggetto corrente | ||
| + | * '''GFCYDEF(n)''': sito di default per i vari moduli; vengono impostati in [[GESAFT]] | ||
| + | * 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" | ||
| + | ** '''GSTAOK''': pulsante standard "Ok" | ||
| + | ** '''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) | * '''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]] | ||
| + | * '''GOBJET''': flag gestione oggetto; usato per capire all'interno di alcune chiamate (vedi per esempio file W1ITM0.src) se si è in [[GESAOB|gestione oggetto]] o meno | ||
| + | * '''GDECPRI''': numer decimali per i prezzi; | ||
| + | * '''GCURLEG''': legislazione corrente | ||
| + | * '''GSOCIETE''': società corrente | ||
| + | * '''PROGSPE''': programma specifico corrente | ||
| + | * '''PROGSPV''': programma verticale corrente | ||
| + | * '''PROGSUB''': programma standard corrente | ||
Esempi: | Esempi: | ||
| Line 44: | Line 77: | ||
GSERVEUR = 0 | GSERVEUR = 0 | ||
</pre> | </pre> | ||
| + | |||
| + | == Gestione tipica == | ||
| + | |||
| + | Lo standard in generale fa queste due chiamate all'apertura e alla chiusura di una finestra (sorgenti SUB*.src): | ||
| + | |||
| + | Dentro $OUVRE | ||
| + | <pre>#Salva l'attuale situazione delle variabili globali | ||
| + | Gosub SAUV_GLOB From TRTX3GLOB</pre> | ||
| + | |||
| + | Dentro $FERME | ||
| + | <pre>#Ripristina le variabili globali | ||
| + | Gosub REST_GLOB From TRTX3GLOB</pre> | ||
== Variabili speciali == | == Variabili speciali == | ||
* '''zc''' contiene il valore del campo corrente, o il valore di una formula corrente o altro in base al contesto <br />da non confondere con | * '''zc''' contiene il valore del campo corrente, o il valore di una formula corrente o altro in base al contesto <br />da non confondere con | ||
| − | ** CZ, variabile attiva in base all'azione, per es. in APRES_MODIF | + | ** CZ, variabile attiva in base all'azione, per es. in APRES_MODIF; contiene il valore del campo corrente |
* '''zoncou''' contiene il nome del campo corrente in inserimento nella videata <br />da non confondere con | * '''zoncou''' contiene il nome del campo corrente in inserimento nella videata <br />da non confondere con | ||
| − | ** COUZON, variabile attiva in base all'azione, per es. in APRES_MODIF | + | ** COUZON, variabile attiva in base all'azione, per es. in APRES_MODIF; contiene il nome del campo corrente |
| − | ** ZONSUI, variabile che permette di indicare il prossimo campo su cui mettere il focus (per es.:<code>zonsui = "[M:PTH1]YNUMPEZZI("+num$(nolign-1)+")"</code>) | + | ** COUIND variabile attiva in base all'azione, per es. in APRES_MODIF; contiene l'indice del campo corrente, se apppartiene ad un riquadro. |
| + | ** [[ZONSUI]], variabile che permette di indicare il prossimo campo su cui mettere il focus (per es.:<code>zonsui = "[M:PTH1]YNUMPEZZI("+num$(nolign-1)+")"</code>) | ||
* '''zonsor''' è una variabile alfanumerica in cui si trova il nome dell'ultimo campo in inserimento nella videata | * '''zonsor''' è una variabile alfanumerica in cui si trova il nome dell'ultimo campo in inserimento nella videata | ||
| − | * '''maskcou''' contiene il nome della videata | + | * '''maskcou''' contiene l'abbreviazione della videata corrente |
| + | * '''masknam()''' restituisce il nome, per esempio <code>masknam([M:YWY4])</code> | ||
| + | * '''masknbf([ITM0]))''' restituisce il numero di campi presenti nella videata ITM0 (se è aperta) | ||
| + | * '''masklev()''' restituisce il livello di nidificazione della videata; 0 significa che la videata non è aperta; 1 che è aperta all'interno di un processo; N che è aperta dalla N-esima subroutine nidificata in una istruzione Call. | ||
* '''trtcou''' contiene il nome del programma 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) | * '''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) | * '''datesyst''' data di sistema (pag.30 di Linguaggio.pdf) | ||
| + | * '''mkstat''' stato quando si esce da un campo | ||
| + | * '''fstat''' stato dopo un'operazione su una tabella | ||
| + | * '''currbox''' : contiene il valore del browser corrente (GAU_CHE browser principale, GAU_CHE1...GAU_CHE8, GAU_CHE9 ultimi letti) | ||
| + | * '''Adxlog''' transazione in corso (0: se non c'è una transazione; 1: se c'è una transazione) | ||
| + | |||
| + | Poco usate | ||
| + | * '''maskabr(i)''' contiene le abbreviazioni delle videate aperte | ||
| + | * '''maskrk(<class | num_exp>, row_exp)''' returns the rows of the fields for an open screen | ||
| + | * '''masksiz(i)''' numero di bytes usati dalla i-esima videata (il cui nome è <code>masknam(i)</code>) | ||
Latest revision as of 08:29, 4 August 2025
Variabili globali[edit]
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:
- vuoto,"", quando l'utente sta visualizzando i dati
- vale "C" se siamo in creazione (quando viene premuto il pulsante
Crea) - vale "M" se siamo in visualizzazione/modifica (quando è attivo e viene premuto il pulsante
Registra) - vale "D" se siamo in duplicazione (quando viene premuto il pulsante
Duplica) - 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 di errore; 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: messaggio d'errore
- 2: messaggio informativo
- 3: messaggio di avviso
- 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
- GWEBSERV: indica modalità Web Services
- GUSER: codice utente corrente
- GNOMUSER: nome utente corrente
- GPROFIL: profilo funzione
- GTRACE: indica il nome del file traccia attivo, vuoto se non c'è un file di traccia attivo (vedi Gestione tracce)
- 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)
- GLANDEF: lingua default
- GLANGUE: lingua della sessione corrente
- GFLAG: transazione corrente
- GBOITE: finestra corrente
- GABREV: abbreviazione oggetto corrente
- GFCYDEF(n): sito di default per i vari moduli; vengono impostati in GESAFT
- 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"
- GSTAOK: pulsante standard "Ok"
- 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
- GOBJET: flag gestione oggetto; usato per capire all'interno di alcune chiamate (vedi per esempio file W1ITM0.src) se si è in gestione oggetto o meno
- GDECPRI: numer decimali per i prezzi;
- GCURLEG: legislazione corrente
- GSOCIETE: società corrente
- PROGSPE: programma specifico corrente
- PROGSPV: programma verticale corrente
- PROGSUB: programma standard corrente
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[edit]
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
Variabili speciali[edit]
- 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; contiene il valore del campo corrente
- 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; contiene il nome del campo corrente
- COUIND variabile attiva in base all'azione, per es. in APRES_MODIF; contiene l'indice del campo corrente, se apppartiene ad un riquadro.
- 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 l'abbreviazione della videata corrente
- masknam() restituisce il nome, per esempio
masknam([M:YWY4]) - masknbf([ITM0])) restituisce il numero di campi presenti nella videata ITM0 (se è aperta)
- masklev() restituisce il livello di nidificazione della videata; 0 significa che la videata non è aperta; 1 che è aperta all'interno di un processo; N che è aperta dalla N-esima subroutine nidificata in una istruzione Call.
- 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)
- mkstat stato quando si esce da un campo
- fstat stato dopo un'operazione su una tabella
- currbox : contiene il valore del browser corrente (GAU_CHE browser principale, GAU_CHE1...GAU_CHE8, GAU_CHE9 ultimi letti)
- Adxlog transazione in corso (0: se non c'è una transazione; 1: se c'è una transazione)
Poco usate
- maskabr(i) contiene le abbreviazioni delle videate aperte
- maskrk(<class | num_exp>, row_exp) returns the rows of the fields for an open screen
- masksiz(i) numero di bytes usati dalla i-esima videata (il cui nome è
masknam(i))