DEFCIRCULARINDICATOR
Consente di definire un Gauge, ovvero un indicatore che, data una scala con una escursione massima definita, visualizza graficamente il valore rilevato.
Può essere utilizzato per la realizzazione di cruscotti aziendali dove vengono mostrati graficamente i valori in tempo reale.
Consente inoltre di visualizzare il controllo di forma circolare (simile al quadrante di un orologio analogico) impostandone tutti i parametri utili.
Oltre alla definizione di valori della scala di rilevazione e all'indicazione del valore rilevato, è anche possibile definire uno stile per impostare un colore sulla corona dell'indicatore.
Parametri
| Parametro | Definizione | I/O | Versione traduttore | SMP | |
|---|---|---|---|---|---|
| NOME | Intero | ||||
| ID | Stringa | ||||
| POS | |||||
| DIM | |||||
| GRID | |||||
| IMMAGINE | Variabile | ||||
| SCALA | |||||
| VISUALIZZAVALORE | Intero | ||||
| COLLEZIONE | |||||
| TIPOINDICATORE | Enumerazione | ||||
| STRUTTURA | Stringa | ||||
| STACK | |||||
| EXPANDER | |||||
| DOCK | |||||
| PERSONALIZZABILE | Intero | ||||
| LINKTO |
NOME
Consente di definire il nome del controllo.
ID
Consente di definire l'identificativo univoco del controllo.
Viene utilizzato dall'ambiente per gestire le personalizzazioni effettuate durante l'esecuzione del programma.
POS
Consente di definire la posizione del controllo rispetto al contenitore.
DIM
Dimensione del controllo.
Consente di indicare l'altezza e la larghezza. Per entrambi è possibile specificare l'unità di misura.
DIM[Altezza [UnitàMisura], Larghezza [UnitàMisura]]
L'unità di misura può essere: 'C' per il posizionamento a caratteri e 'P' per il posizionamento in pixel. L'indicazione è opzionale, se omesso si assume 'C' come default.
GRID
Consente di definire l'attached property riferita ad un pannello grid.
IMMAGINE
Consente di definire il percorso dell'immagine, o il nome della risorsa, da visualizzare.
L'immagine deve essere in formato PNG.
SCALA
Consente la definizione della scala su cui rappresentare il Gauge.
Una scala definita per visualizzare valori in percentuale deve avere un valore minimo di 0 e un valore massimo di 100.
VISUALIZZAVALORE
Consente di indicare se visualizzare il valore rilevato dall'indicatore.
Se non indicato assume 0 come valore di default.
Parametro con valori ammessi, si possono utilizzare i seguenti valori:
| Valore | Descrizione |
|---|---|
0 | Non visualizzare valore rilevato |
1 | Visualizza valore rilevato |
COLLEZIONE
Consente di indicare la collezione su cui si basa il grafico.
Ogni modifica effettuata sulla collezione si riflette automaticamente sul grafico.
TIPOINDICATORE
Consente di indicare il tipo di indicatore.
Parametro enumerato, può assumere i seguenti valori:
| Valore | Descrizione |
|---|---|
CIRCOLARE | Definizione di un indicatore circolare |
SEMICIRCOLARE | Definizione di un indicatore semicircolare |
STRUTTURA
Consente di indicare il nome della struttura dinamica su cui si basa il Gauge.
Ogni modifica effettuata sulla struttura dinamica si riflette automaticamente sul controllo grafico.
STACK
Consente di definire l'attached property riferita ad un pannello stack.
EXPANDER
Consente di definire l'attached property riferita ad un pannello expander.
DOCK
Consente di indicare se il controllo deve occupare tutto lo spazio del DockPanel in verticale e/o in orizzontale.
PERSONALIZZABILE
Consente di definire se il controllo grafico è personalizzabile dall'utente in fase di runtime.
Parametro con valori ammessi, si possono utilizzare i seguenti valori:
| Valore | Descrizione |
|---|---|
0 | No |
1 | Si |
LINKTO
Consente di definire un legame tra due controlli esistenti all'interno della stessa videata.
Esempi
Esempio
' Definizione variabili scala
SHARED DIM ScaleMinValue[INT]
SHARED DIM ScaleMaxValue[INT]
SHARED DIM ScaleValue[INT]
' Definizione primo range di valori
SHARED DIM MinValue1[INT]
SHARED DIM MaxValue1[INT]
SHARED DIM Style1[STRING]
' Definizione secondo range di valori
SHARED DIM MinValue2[INT]
SHARED DIM MaxValue2[INT]
SHARED DIM Style2[STRING]
' Definizione terzo range di valori
SHARED DIM MinValue3[INT]
SHARED DIM MaxValue3[INT]
SHARED DIM Style3[STRING]
SHARED DIM Structure[STRING] = "CIRCOLARINDICATOR"
SHARED DIM tmp[INT]
...
'@DEFVID DIM[20,70] NOME[Videata] ID["VIDEATA"] TIT["Titolo Videata"] TOOLBAR[IDTOOLBAR["TOOLBAR"]]
'@DEFTOOLBAR IDTOOLBAR["TOOLBAR"] _
BOTTONE[IDBOTTONE["SYS_EXIT"] AZIONE[Exit()]] _
BOTTONE[IDBOTTONE["SYS_EXIT_ESC"] AZIONE[Exit()] INVISIBILE[1]]
'@DEFCIRCULARINDICATOR NOME[CIRC_INDICATOR] POS[1,1] DIM[0,0] STRUTTURA[Structure] _
SCALA[VARMIN["ScaleMinValue"] VARMAX["ScaleMaxValue"] VARVALORE["ScaleValue"] _
RANGE[VARMIN["MinValue1"] VARMAX["MaxValue1"] VARSTILE["Style1"]] _
RANGE[VARMIN["MinValue2"] VARMAX["MaxValue2"] VARSTILE["Style2"]] _
RANGE[VARMIN["MinValue3"] VARMAX["MaxValue3"] VARSTILE["Style3"]]] _
VISUALIZZAVALORE[1] _
GRID[COL[3] RIGA[2] COLDIN[1] RIGADIN[1]]
'@DEFTIMER SECONDI[1] AZIONE[GoSub Refresh]
'@RUNVID
...
'@SRP Load()
' Definizione stili
'@DEFSTYLE STILE["ROSSO"] COLORESFONDO[255, 0, 0]
'@DEFSTYLE STILE["VERDE"] COLORESFONDO[0, 255, 0]
'@DEFSTYLE STILE["BLU"] COLORESFONDO[0, 0, 255]
' Definizione Struttura
GoSub DefStructure
Return
...
'@SRP Exit()
'@EXITWINDOW
Return
...
'@SR DefStructure
' Definizione struttuta
'@DEFDYNSTRUCT STRUTTURA[Structure] CAMPI[ScaleMinValue, ScaleMaxValue, ScaleValue, _
MinValue1, MaxValue1, Style1, _
MinValue2, MaxValue2, Style2, _
MinValue3, MaxValue3, Style3]
' Popolamento struttura
'@ZAPDYNSTRUCT STRUTTURA[Structure]
' Valorizzazione variabili di scala
ScaleMinValue=0:ScaleMaxValue=100:ScaleValue=0
' Valorizzazione variabili primo range di valori
MinValue1=0:MaxValue1=33:Style1="ROSSO"
' Valorizzazione variabili secondo range di valori
MinValue2=33:MaxValue2=66:Style2="VERDE"
' Valorizzazione variabili terzo range di valori
MinValue3=66:MaxValue3=100:Style3="BLU"
'@ADDDYNSTRUCT STRUTTURA[Structure] CAMPI[ScaleMinValue, ScaleMaxValue, ScaleValue, _
MinValue1, MaxValue1, Style1, _
MinValue2, MaxValue2, Style2, _
MinValue3, MaxValue3, Style3]
Return
...
'@SR Refresh
' Verifica raggiungimento valore massimo di ScaleValue
If ScaleValue = 100 Then
' Azzeramento valore
ScaleValue = 0
EndIf
' Incremento valore e impostazioni variabili
ScaleValue = ScaleValue + 1
tmp = ScaleValue
' Modifica campo dell'unico elemento nella struttura
'@SETDYNSTRUCTFIELD STRUTTURA[Structure] ELEMENTO[1] TIPOVAR[1] CAMPO["ScaleValue"] VALNUM[tmp]
Return