Gestione videate e campi

From SageDev KB
Jump to navigation Jump to search


  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[edit]

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 Char YFILRAP(30)  : YFILRAP = FILRAP
#  Global Integer YIFILRAP  : YIFILRAP = IFILRAP
#  Global Integer YSAIRAP   : YSAIRAP = 0        #:  Infbox 'dim_SAIRAP='-num$(dim(SAIRAP))
#  Global Char YBOXCURR(30) : YBOXCURR=BOXCURR   #: Infbox 'FILRAP='-num$(FILRAP)-'IFILRAP='-num$(IFILRAP)-'BOXCURR='-num$(BOXCURR)
  #Global Integer YCHGLIS(0..10) : YCHGLIS=CHGLIS
#  Global Char YREP(1)  : YREP= REP

  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()

#  FILRAP  = YFILRAP
#  IFILRAP = YIFILRAP
#  SAIRAP  = YSAIRAP
#  BOXCURR = YBOXCURR
# Global Integer CHGLIS(0..10)
# #CHGLIS   = YCHGLIS
#  REP     = YREP

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 RAFFRAICHIR From GOBJSUB
  Gosub RELIT From GOBJSUB
End