<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://kb.sagedev.it/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=5.90.65.201</id>
	<title>SageDev KB - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://kb.sagedev.it/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=5.90.65.201"/>
	<link rel="alternate" type="text/html" href="https://kb.sagedev.it/index.php/Special:Contributions/5.90.65.201"/>
	<updated>2026-09-27T12:07:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://kb.sagedev.it/index.php?title=Gestione_Bottoni&amp;diff=1142</id>
		<title>Gestione Bottoni</title>
		<link rel="alternate" type="text/html" href="https://kb.sagedev.it/index.php?title=Gestione_Bottoni&amp;diff=1142"/>
		<updated>2026-09-17T10:45:31Z</updated>

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

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