Difference between revisions of "Gestione videate e campi"

From SageDev KB
Jump to navigation Jump to search
Line 27: Line 27:
  
 
<code>ETABOU(GSPE1)=0 #disattivo pulsante</code>
 
<code>ETABOU(GSPE1)=0 #disattivo pulsante</code>
 +
 +
 +
== Aggiornare una finestra ==
 +
 +
Fonte:https://communityhub.sage.com/us/sage_x3/f/general-discussion/103996/hot-to-invoke-refresh-button
 +
 +
 +
Per aggiornare una finestra va eseguita la chiamata
 +
<pre>Gosub RELIT From GOBJSUB</pre>
 +
 +
ma prima vanno recuperate alcune variabili, in base alla situazione possono essere nessuna o solo alcune.
 +
Qui il codice per recuperale tutte all'apertura della finestra e poi la chiamata di aggiornamento:
 +
 +
<pre>
 +
$OUVRE
 +
 +
  Global Integer YCLECUR : YCLECUR = CLECUR
 +
  Global Char YCLECUR1(30) : YCLECUR1 = CLECUR1
 +
  Global Char YCLECUR2(30) : YCLECUR1 = CLECUR2
 +
  Global Integer YTYPGES : YTYPGES = TYPGES
 +
  Global Char YABFIC(30) : YABFIC = ABFIC
 +
  Global Char YCLEPRIM(30) : YCLEPRIM = CLEPRIM
 +
  Global Char YPROGOBJ(30) : YPROGOBJ = PROGOBJ
 +
  Global Integer YVERROU : YVERROU = VERROU
 +
  Global Integer YOVERROU : YOVERROU = OVERROU
 +
  Global Char YSYMBOLE(30) : YSYMBOLE = SYMBOLE
 +
  Global Integer YNBMASK : YNBMASK = NBMASK
 +
  Global Char YWINPROG(30) : YWINPROG = WINPROG
 +
  Global Integer YAMA(dim(AMA)) : YAMA = AMA
 +
  Global Integer AMAINDX : AMAINDX = dim(AMA)
 +
  Global Integer YAIMGLCK : YAIMGLCK = AIMGLCK
 +
Return
 +
</pre>
 +
 +
<pre>
 +
Subprog REFRESH_SCREEN()
 +
Local Integer AMA(AMAINDX)
 +
 +
  TYPGES = YTYPGES
 +
  CLECUR = YCLECUR
 +
  CLECUR1 = YCLECUR1
 +
  CLECUR2 = YCLECUR2
 +
  ABFIC = YABFIC
 +
  CLEPRIM = YCLEPRIM
 +
  PROGOBJ = YPROGOBJ
 +
  VERROU = YVERROU
 +
  OVERROU = YOVERROU
 +
  SYMBOLE = YSYMBOLE
 +
  NBMASK = YNBMASK
 +
  WINPROG = YWINPROG
 +
  AMA = YAMA
 +
  AIMGLCK = YAIMGLCK
 +
  Gosub RELIT From GOBJSUB
 +
End
 +
</pre>

Revision as of 13:24, 21 January 2026


  1. Grizo per disabilitare un campo di una videata;
    un altro modo è Chgfmt [M:YPE0]YMESSAGE With "KP:10"
    Grizo rank per disabilitare un blocco: rank deve essere il valore della colonna Numero della sezione Blocchi della scheda Generale in gestione maschera (GESAMK)
  2. Diszo per disabilitare (rendere solo visualizzato) un campo di una videata;
  3. Actzo istruzione per abilitare un campo di una videata;
  4. Effzo per sbiancare un campo di una videata; mette spazi bianchi indipendentemente dal tipo dato; le variabili corrispondenti della videata vengono resettate (vedi Raz); (la videata deve essere visualizzata, altrimenti usare Raz)
  5. Raz: per resettare una variabile; in pratica mette una stringa vuota, il valore 0 o la data nulla in base al tipo dato; se la variabile è multidimensionale e non viene indicato un indice, viene resettata completamente
  6. Per aggiornare in visualizzazione un campo di una videata: usare la funzione Affzo;
    Attenzione: Effzo + Grizo è diverso che fare Raz + Affzo
  7. Envzo: forza la visualizzazione di un campo (l'istruzione Affzo viene bufferizzata e ottimizzata, Envzo forza l'esecuzione)
  8. Per nascondere/fa riapparire un campo di una videata utilizzare Chgfmt, per esempio
    Chgfmt [M:YPE0]YMESSAGE With "-K:10" #nascondo il campo
    Chgfmt [M:YPE0]YMESSAGE With "K:10" #visualizzo il campo
  9. chgtzn per titolo campi in lista Chgtzn[M:TXM1]AMTVAL1 With "new text"
  10. onkey permette di eseguire un programma partendo dal clic del tasto destro in un campo (anche per help)
  11. setmok


  1. enable e disable per abilitare/disabilitare pulsanti, bottoni o menu della barra dei menu; in genere da usare nella azione SETBOUT (vedi anche variabili GSTABOU, ETABOU, CHMEN, CHAINE).

Esempi

#Esempio in cui si disattiva il bottone Nuovo in fase di modifica
If REP <> "" Then
    Disable GSTANEW  
Else
    Enable GSTANEW
Endif

ETABOU(GSPE1)=0 #disattivo pulsante


Aggiornare una finestra

Fonte:https://communityhub.sage.com/us/sage_x3/f/general-discussion/103996/hot-to-invoke-refresh-button


Per aggiornare una finestra va eseguita la chiamata

Gosub RELIT From GOBJSUB

ma prima vanno recuperate alcune variabili, in base alla situazione possono essere nessuna o solo alcune. Qui il codice per recuperale tutte all'apertura della finestra e poi la chiamata di aggiornamento:

$OUVRE

  Global Integer YCLECUR : YCLECUR = CLECUR
  Global Char YCLECUR1(30) : YCLECUR1 = CLECUR1
  Global Char YCLECUR2(30) : YCLECUR1 = CLECUR2
  Global Integer YTYPGES : YTYPGES = TYPGES
  Global Char YABFIC(30) : YABFIC = ABFIC
  Global Char YCLEPRIM(30) : YCLEPRIM = CLEPRIM
  Global Char YPROGOBJ(30) : YPROGOBJ = PROGOBJ
  Global Integer YVERROU : YVERROU = VERROU
  Global Integer YOVERROU : YOVERROU = OVERROU
  Global Char YSYMBOLE(30) : YSYMBOLE = SYMBOLE
  Global Integer YNBMASK : YNBMASK = NBMASK
  Global Char YWINPROG(30) : YWINPROG = WINPROG
  Global Integer YAMA(dim(AMA)) : YAMA = AMA
  Global Integer AMAINDX : AMAINDX = dim(AMA)
  Global Integer YAIMGLCK : YAIMGLCK = AIMGLCK
Return
Subprog REFRESH_SCREEN()
Local Integer AMA(AMAINDX)

  TYPGES = YTYPGES
  CLECUR = YCLECUR
  CLECUR1 = YCLECUR1
  CLECUR2 = YCLECUR2
  ABFIC = YABFIC
  CLEPRIM = YCLEPRIM
  PROGOBJ = YPROGOBJ
  VERROU = YVERROU
  OVERROU = YOVERROU
  SYMBOLE = YSYMBOLE
  NBMASK = YNBMASK
  WINPROG = YWINPROG
  AMA = YAMA
  AIMGLCK = YAIMGLCK
  Gosub RELIT From GOBJSUB
End