Questa azione è chiamata subito dopo aver "cliccato" su un bottone o su un menù.
Inserimento finestra
Permette di eseguire un programma dopo aver "cliccato" su un bottone o su un menù. Infatti, per la maggior parte dei bottoni, il modello non ha programmi generici. L'elaborazione deve essere scritta in questa azione. I bottoni presi in carico dal modello sono i seguenti :
"FINE", "STAMPA", "ELENCO", "ALLEGATI", "COMMENTO", "PROPRIETA'".
Questa azione interviene prima delle azioni su bottone ( AVANT_BOUTON, BOUTON e AVANT_XXX, XXX ), dove XXX è l'identificativo del bottone predefinito.
Questa azione interviene prima delle azioni su menù (AVANT_MEN, MEN )
La variabile REPONSE contiene lo stato del bottone e, di conseguenza, indica il bottone attivato dall'utente.
Per i bottoni predefiniti, sono presenti qui in basso le variabili che identificano il bottone:
REPONSE | Stato | Bottone |
GSTAESC | 7 | FINE |
GSTANEW | 91 | Nuovo |
GSTAENR | 92 | Registra |
GSTACRE | 93 | Crea |
GSTAANU | 94 | Elimina |
GSTASEL | 95 | Selezione |
GSTAFIR | 96 | Primo |
GSTALAS | 97 | Ultimo |
GSTASUI | 98 | Successivo |
GSTAPRE | 99 | Precedente |
GSTAOK | 1029 | Ok |
GSTAFIN | 1792 | Annulla |
GSTACHG | 1793 | Cambio codice |
GSTAJOI | 1794 | Documenti allegati |
GSTACOM | 1795 | Commenti |
GSTAEDI | 1796 | Stampa |
GSTALIS | 1797 | Elenco |
GSTADAT | 1798 | Proprietà |
GSTARAF | 1799 | Refresh lista di selezione |
Per gli altri bottoni, la variabile REPONSE contiene uno stato che inizia da:
1101 per i bottoni validanti
1801 per i bottoni non validanti
2001 per i menù
Quindi, se si hanno 2 bottoni validanti seguiti da un bottone non validante, si hanno i seguenti stati in REPONSE:
1101
1102
1803
Non si utilizza direttamente questo stato poichè dipende dalla posizione del bottone nel dizionario della finestra. In un primo momento, si ricerca la posizione del bottone nel dizionario della finestra, poi, in funzione di questa posizione si deduce il codice del bottone. Si hanno a disposizione due riquadri: LBOUT(n) contiene lo stato dei bottoni, CBOUT(n) contiene il codice dei bottoni (n è la posizione del bottone nel dizionario della finestra).
Esempio:
$AP_CHOIX
When "M"
Local Integer I
I=find(REPONSE,LBOUT)
If I<1: Return: Endif
Case CBOUT(I-1)
When "R"
When "E"
Endcase
Return
Si utilizzano più frequentemente le azioni AVANT_BOUTON e AVANT_MEN per le quali il codice bottone / menù è contenuto nella variabile BOUT.