Difference between revisions of "Gestione Bottoni"
| (14 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| − | = Finestre = | + | ...appunti sparsi... |
| + | |||
| + | = Nelle Finestre = | ||
| + | * BOTTONI | ||
| + | ** SETBOUT refresh dei bottoni | ||
| + | ** AP_CHOIX dopo clic su bottone | ||
| + | ** AVANT_BOUTON: prima dell'esecuzione bottone specifico | ||
| + | ** AVANT_XXX: prima dell'esecuzione bottone standard | ||
| + | ** BOUTON: dopo esecuzione bottone specifico | ||
| + | ** XXX: dopo esecuzione bottone standard | ||
| + | |||
| + | * Menu | ||
| + | ** AVANT_MEN prima dell'esecuzione | ||
| + | ** MEN: dopo l'esecuzione | ||
| + | |||
| + | == Gestione tipica == | ||
| + | |||
| + | Altro esempio da qualche sorgente SUB*.src: | ||
| + | |||
| + | Finestra | ||
| + | <pre>$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</pre> | ||
| + | |||
| + | oppure | ||
| + | |||
| + | <pre>$APRES_CHOI | ||
| + | Case REPONSE | ||
| + | When GSTARET : | ||
| + | Case GREP | ||
| + | When "C", "D" : REPONSE = GSTACRE | ||
| + | When "M" : REPONSE = GSTAENR | ||
| + | Endcase | ||
| + | Endcase | ||
| + | # | ||
| + | Case REPONSE | ||
| + | ...</pre> | ||
| + | |||
| + | <pre>$CHOIX | ||
| + | Case REPONSE | ||
| + | When GSTARET, GSTAOK : Gosub ENREG | ||
| + | When GSTAEND, GSTAESC : FIN=1 | ||
| + | Endcase | ||
| + | Return</pre> | ||
| + | |||
| + | Dialog box | ||
| + | <pre>$AP_CHOIX | ||
| + | Case REPONSE | ||
| + | When GSTARET : Gosub VALID | ||
| + | When GSTAEND, GSTAESC : Gosub CONFIRME | ||
| + | When Default | ||
| + | Endcase | ||
| + | Return</pre> | ||
| + | |||
| + | Righe Menu | ||
| + | <pre>$SETBOUT | ||
| + | CHMEN+="Z1" #attivo Menu con codice Z1 (righe del menu con codice Z) | ||
| + | Gosub SET_BOUT_SPE From GSAISIE | ||
| + | Return | ||
| + | </pre> | ||
| + | |||
== Pulsanti standard == | == Pulsanti standard == | ||
| Line 12: | Line 81: | ||
Disable GSTAENR #disabilito il pulsante Registra | Disable GSTAENR #disabilito il pulsante Registra | ||
</pre> | </pre> | ||
| + | |||
| + | |||
| + | == Oggetto combinato == | ||
| + | |||
| + | Oggetto TPT (Pagamenti, dal sorgente SUBTPT) troviamo dentro $SETBOUT: | ||
| + | |||
| + | <pre> If GREP = "" Then | ||
| + | # Note FGR : obligé de l'ajouter à la main. comme il y a plus de deux | ||
| + | # éléments dans la clé, le superviseur ne le mets pas tout seul | ||
| + | CHAINE += "A" | ||
| + | # FGR 23/04/2013 : X3SUIVI71937 : obligé de le réactivé à la main parce que 3 éléments de PK | ||
| + | CHAINE += "H" | ||
| + | Endif</pre> | ||
| + | |||
| + | Quindi nel caso la prima chiave di un oggetto combinato sia composta da 3 o più campi alcuni pulsanti vanno gestiti a mano. | ||
| + | |||
| + | Altro esempio | ||
| + | |||
| + | <pre>$SETBOUT | ||
| + | #Negli oggetti di tipo combinato con chiave multipla, non si attiva il bottone Elimina. | ||
| + | #Per attivarlo aggiungere la seguente istruzione nella SETBOUT | ||
| + | #If CLECUR & SUPPR : CHAINE+="A" : Endif #Per attivare il bottone elimina | ||
| + | If CLECUR & REP<>"M" & VERROU #oppure If CLECUR<>0 & REP="" & VERROU | ||
| + | CHAINE += "A" : # Attivo bottone standard elimina | ||
| + | Endif | ||
| + | Return</pre> | ||
| + | |||
| + | = In azioni oggetto = | ||
| + | |||
| + | Per bottoni: SETBOUT(per disattivarli, CHAINE), AVANTBOUT (prime dell'esecuzione, variabile BOUT), EXEBOUT (dopo l'esecuzione, variabile BOUT) | ||
| + | |||
| + | Per menu: SETBOUT(per disattivarli, CHMEN), AVANTBOUT (prime dell'esecuzione, variabile BOUT), STATUT(dopo l'esecuzione, variabile BOUT) | ||
| + | |||
| + | Per pulsanti standard: | ||
| + | * AVANT_XXX (AVANT_NEW, AVANT_END, XXX è il codice standard) | ||
| + | * XXX dopo l'esecuzione (NEW, END, S, C,...) | ||
| + | |||
| + | Per pulsanti specifici: | ||
| + | * AVANTBOUT (dove la variabile BOUT contiene il codice) | ||
| + | * EXEBOUT dopo l'esecuzione (dove la variabile BOUT contiene il codice) | ||
| + | |||
| + | |||
| + | |||
| + | Per togliere un pulsante da programma specifico: | ||
| + | |||
| + | <pre>Call VIREBOUT (CHAINE, LISTA) From GOBJET</pre> | ||
| + | * CHAINE : variable char, lista di bottoni disponibili (viene definita nel programma GOBJET) | ||
| + | * LISTA : value char, lista di bottoni da cancellare | ||
| + | |||
| + | Questi i valori dei bottoni: | ||
| + | * C - Crea | ||
| + | * D – Duplica | ||
| + | * M - Salva | ||
| + | * A - Elimina | ||
| + | * F - FINE | ||
| + | * H – CAMBIAMENTO CODICE lettere aggiornate: bottoni standard | ||
| + | * J – Allegati | ||
| + | * K - Commenti | ||
| + | * E - Stampa | ||
| + | * L – Lista | ||
| + | * R - Selezione | ||
| + | * 0 - PRIMO | ||
| + | * 9 - ULTIMO | ||
| + | * da 1 a 8 : bottoni standard | ||
| + | * da a a z : bottoni specifici | ||
| + | * @ - PROPRIETA’ | ||
| + | * > - Successivo | ||
| + | * < - Precedente | ||
| + | |||
| + | Esempio: togliere il bottone Crea e attivare il pulsante registrare | ||
| + | <pre>$SETBOUT | ||
| + | Call VIREBOUT (CHAINE, "C") From GOBJET #togliere il bottone Crea | ||
| + | REP = "M" : # attivazione del bottone REGISTRARE | ||
| + | # attivazione di una riga menu con codice i (di default le sottorighe dei menu NON sono attive) | ||
| + | CHMEN += "i" | ||
| + | Return</pre> | ||
| + | |||
| + | = Azioni campo = | ||
| + | Variabili coinvolte | ||
| + | |||
| + | GREP, GBOUT1..20, GBOUTS, GBOUTA, GBOUTI | ||
| + | |||
| + | GREP: | ||
| + | * vuoto: nessun bottone selezionato | ||
| + | * A : annulla | ||
| + | * C : creazione | ||
| + | * D : duplicazione | ||
| + | * M : modifica | ||
| + | |||
| + | == Bx_ZONE == | ||
| + | |||
| + | Esecuzione del bottone x | ||
| + | * mkstat = 4, per attivare il bottone registra. | ||
| + | * mkstat = 99, per posizionare il cursore sul campo successivo | ||
== Altro == | == Altro == | ||
| − | vedi anche [[Finestre#Aggiungere_un_bottone.2Fmen.C3.B9_contestuale_che_apre_un_oggetto| Aggiungere un bottone che un oggetto]] | + | vedi anche [[Finestre#Aggiungere_un_bottone.2Fmen.C3.B9_contestuale_che_apre_un_oggetto| Aggiungere un bottone che apre un oggetto]] |
= Videate = | = Videate = | ||
Latest revision as of 13:56, 23 November 2020
...appunti sparsi...
Nelle Finestre[edit]
- BOTTONI
- SETBOUT refresh dei bottoni
- AP_CHOIX dopo clic su bottone
- AVANT_BOUTON: prima dell'esecuzione bottone specifico
- AVANT_XXX: prima dell'esecuzione bottone standard
- BOUTON: dopo esecuzione bottone specifico
- XXX: dopo esecuzione bottone standard
- Menu
- AVANT_MEN prima dell'esecuzione
- MEN: dopo l'esecuzione
Gestione tipica[edit]
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
...
$CHOIX Case REPONSE When GSTARET, GSTAOK : Gosub ENREG When GSTAEND, GSTAESC : FIN=1 Endcase Return
Dialog box
$AP_CHOIX Case REPONSE When GSTARET : Gosub VALID When GSTAEND, GSTAESC : Gosub CONFIRME When Default Endcase Return
Righe Menu
$SETBOUT CHMEN+="Z1" #attivo Menu con codice Z1 (righe del menu con codice Z) Gosub SET_BOUT_SPE From GSAISIE Return
Pulsanti standard[edit]
Talvolta ci sono dei problemi con l'attivazione/disattivazione dei pulsanti standard.
Con le istruzioni enable e disable seguite dal codice del pulsante possiamo gestire la cosa mano.
I codici sono memorizzati in alcune variabili globali.
Enable GSTACRE #abilito il pulsante Crea Disable GSTAENR #disabilito il pulsante Registra
Oggetto combinato[edit]
Oggetto TPT (Pagamenti, dal sorgente SUBTPT) troviamo dentro $SETBOUT:
If GREP = "" Then
# Note FGR : obligé de l'ajouter à la main. comme il y a plus de deux
# éléments dans la clé, le superviseur ne le mets pas tout seul
CHAINE += "A"
# FGR 23/04/2013 : X3SUIVI71937 : obligé de le réactivé à la main parce que 3 éléments de PK
CHAINE += "H"
Endif
Quindi nel caso la prima chiave di un oggetto combinato sia composta da 3 o più campi alcuni pulsanti vanno gestiti a mano.
Altro esempio
$SETBOUT
#Negli oggetti di tipo combinato con chiave multipla, non si attiva il bottone Elimina.
#Per attivarlo aggiungere la seguente istruzione nella SETBOUT
#If CLECUR & SUPPR : CHAINE+="A" : Endif #Per attivare il bottone elimina
If CLECUR & REP<>"M" & VERROU #oppure If CLECUR<>0 & REP="" & VERROU
CHAINE += "A" : # Attivo bottone standard elimina
Endif
Return
In azioni oggetto[edit]
Per bottoni: SETBOUT(per disattivarli, CHAINE), AVANTBOUT (prime dell'esecuzione, variabile BOUT), EXEBOUT (dopo l'esecuzione, variabile BOUT)
Per menu: SETBOUT(per disattivarli, CHMEN), AVANTBOUT (prime dell'esecuzione, variabile BOUT), STATUT(dopo l'esecuzione, variabile BOUT)
Per pulsanti standard:
- AVANT_XXX (AVANT_NEW, AVANT_END, XXX è il codice standard)
- XXX dopo l'esecuzione (NEW, END, S, C,...)
Per pulsanti specifici:
- AVANTBOUT (dove la variabile BOUT contiene il codice)
- EXEBOUT dopo l'esecuzione (dove la variabile BOUT contiene il codice)
Per togliere un pulsante da programma specifico:
Call VIREBOUT (CHAINE, LISTA) From GOBJET
- CHAINE : variable char, lista di bottoni disponibili (viene definita nel programma GOBJET)
- LISTA : value char, lista di bottoni da cancellare
Questi i valori dei bottoni:
- C - Crea
- D – Duplica
- M - Salva
- A - Elimina
- F - FINE
- H – CAMBIAMENTO CODICE lettere aggiornate: bottoni standard
- J – Allegati
- K - Commenti
- E - Stampa
- L – Lista
- R - Selezione
- 0 - PRIMO
- 9 - ULTIMO
- da 1 a 8 : bottoni standard
- da a a z : bottoni specifici
- @ - PROPRIETA’
- > - Successivo
- < - Precedente
Esempio: togliere il bottone Crea e attivare il pulsante registrare
$SETBOUT Call VIREBOUT (CHAINE, "C") From GOBJET #togliere il bottone Crea REP = "M" : # attivazione del bottone REGISTRARE # attivazione di una riga menu con codice i (di default le sottorighe dei menu NON sono attive) CHMEN += "i" Return
Azioni campo[edit]
Variabili coinvolte
GREP, GBOUT1..20, GBOUTS, GBOUTA, GBOUTI
GREP:
- vuoto: nessun bottone selezionato
- A : annulla
- C : creazione
- D : duplicazione
- M : modifica
Bx_ZONE[edit]
Esecuzione del bottone x
- mkstat = 4, per attivare il bottone registra.
- mkstat = 99, per posizionare il cursore sul campo successivo
Altro[edit]
vedi anche Aggiungere un bottone che apre un oggetto
Videate[edit]
Pulsante contestuale su riga di un riquadro[edit]
I pulsanti di riquadro possibili sono 20, la cui etichetta è contenuta nelle variabili globali GBOUT1, GBOUT2 ...GBOUT20
Per aggiungere un pulsante contestuale su riga di un riquadro:
- selezionare tra i campi della videata il campo numeratore di riga, spesso NBLIG
- impostare un'azione Bottone (dalla 2 in poi, la prima libera); l'azione può essere sia SPE che un'azione vera e propria
- validare la videata
- aprire il sorgente corrispondente: se è di tipo SPE troverai aggiunto un
Subprog B2_NBLIGdove scrivere il codice da eseguire alla selezione del menu appena creato
Disattivazione[edit]
Attivare l'evento di riga "Init Bottone" sempre sul campo numeratore di riga (NBLIG).
Dentro il Subprog IB_NBLIG che verrà creato nel sorgente azzerare la variabile corrispondente
Subprog IB_NBLIG Raz GBOUT2 #disattivo il pulsante 2 GBOUT3='bla bla' # attivo il pulsante 3 con eticheta 'bla bla' end