DEFRIBBONBUTTON
Sovrascrive alcune delle caratteristiche di un bottone precedentemente definito con '@DEFRIBBONBAR
La specifica è utile nel caso in cui la videata viene sviluppata utilizzando sorgenti separati (multipagina o videate composte) consentendo l'utilizzo di variabili locali per la gestione del bottone.
Parametri
| Parametro | Definizione | I/O | Versione traduttore | SMP | |
|---|---|---|---|---|---|
| NOME | Intero | ||||
| ID | Stringa | ||||
| AZIONE | Azione | ||||
| DISABILITATO | Condizione | ||||
| EVIDENZIATO | Condizione |
ID
L'identificatore del bottone che deve corrispondere al medesimo ID definito tramite '@DEFRIBBONBAR.
AZIONE
Azione che deve essere eseguita alla pressione del click sul bottone.
DISABILITATO
Permette di definire una condizione per disabilitare il singolo pulsante.
A livello di ridefinizione del bottone, il parametro DISABILITATO, può essere gestito esclusivamente se il bottone si trova all’interno di una categoria di contesto. Questo perché è necessario avere la certezza che le variabili gestite siano quelle del sorgente BC attivo, altrimenti si punterebbe a degli indirizzi di memoria non validi, portando il programma al Crash. L'ambiente non può gestire le doppie callback. Un bottone non deve e non può avere la callback DISABILITATO sia in fase di definizione che in fase di ridefinizione.
::
Se presente il parametro DISABILITATO all'interno della specifica di ridefinizione, non verrà considerata l'eventuale DISABILITATO all'interno della '@DEFRIBBONBAR.
EVIDENZIATO
Espressione che definisce la condizione per la quale il controllo deve risultare evidenziato. Quando evidenziato, nell'angolo altro destro viene visualizzato un triangolino colorato.
Il colore del triangolino varia a seconda del contest: rosso per dekstop, giallo per web.
Esempi
Gestione dello stato di un pulsante switch su ribbon bar in multipagina
DIM stato[INT] = 1
'@DEFVID DIM[20,70] TIT["Videata"] ID["IDVideata2_2"] NOME[VideataEsempio2_2] RIBBON[IDRIBBON["IDRibbonEsempio2_2"]]
'@DEFRIBBONBAR NOME[Esempio2_2] IDRIBBONBAR["IDRibbonEsempio2_2"] _
CATEGORIA[ID["IDCategoria"] TIT["Azioni"] _
GRUPPO[ID["Grupppo1"] TIT["Navigazione"] _
BOTTONE[ID["SYS_EXIT"] TIT["Abbandona"] AZIONE[Abbandona()]] _
BOTTONE[ID["BTN_SWITCH"] TIT["Switch"] TIPO[#SWITCH_BUTTON] VALORE[stato] AZIONE[PrendiStato(stato)]] _
] _
]
'@DEFVIDMPAG TIT["Pagina1"] ID["Nodo_1"] GES[Finestra1()] _
TIT["Pagina2"] ID["Nodo_2"] GES[Finestra2()] _
SELETTORE[TIPO[#VERTICALE] DIM[20] ASSEGNAFUOCO[1]]
'@RUNVID
...
'Nella finestra 2
'@DEFVID DIM[20,70] TIT["Videata"] ID["IDVideataMultiPagina"] NOME[VideataMultiPagina] RIBBON[IDRIBBON["IDRibbonMulti"]]
'@DEFRIBBONBUTTON NOME[SWITCH_BTN_NAME] ID["BTN_SWITCH"] AZIONE[PrendiStato(stato)]
'@RUNVID
...
'@SRP PrendiStato(stato[INT] [IN])
stato = GETRIBBONBUTTONSTATE(VideataEsempio2_2.GetIdRuntime(),"BTN_SWITCH")
'@RESETVID VID[VideataEsempio2_2.GetIdRuntime()] ID["Edit_Status"]
Return
Ridefinizione di un bottone con menù contestuale
'@DEFVID DIM[20,70] TIT["Videata"] ID["IDVideata3"] NOME[VideataEsempio3] RIBBON[IDRIBBON["IDRibbonEsempio3"]]
'@DEFCONTEXTMENU IDMENU["MENU_CONTEXT"] _
TITOLO["Titolo 1"] _
TITOLO["Titolo 2"]
'@DEFRIBBONBAR NOME[Esempio2] IDRIBBONBAR["IDRibbonEsempio2"] _
CATEGORIA[ID["IDCategoria"] TIT["Azioni"] _
GRUPPO[ID["Grupppo1"] TIT["Navigazione"] _
BOTTONE[ID["SYS_EXIT"] TIT["Abbandona"] AZIONE[Abbandona()]] _
BOTTONE[ID["BTN_MENU"] TIT["Nuove azioni"] AZIONE[MENU["MENU_CONTEXT"]]] _
] _
]
'@RUNVID
...
' Sorgente in cui è necessario utilizzare il bottone
' Definizione del menu contestuale, comprese le azioni
'@DEFCONTEXTMENU IDMENU["MENU_CONTEXT"] _
TITOLO["Titolo 1"] AZIONE[Azione1()] _
TITOLO["Titolo 2"] AZIONE[Azione2()]
' Ridefinizione del bottone della ribbon bar
'@DEFRIBBONBUTTON NOME[btnMenu] ID["BTN_MENU"] AZIONE[MENU["MENU_CONTEXT"]]