Il layout di cruscotti e pulsantiere

Navigation:  I Viewer: esposizione dei dati > Il Viewer Grid > Esempi particolari di Grid >

Il layout di cruscotti e pulsantiere

Previous pageReturn to chapter overviewNext page

Mediante un Viewer di tipo Grid è possibile costruire layout altamente specializzati per la visualizzazione di:

pulsantiere,

monitor di controllo,

cruscotti informativi,

batterie di filtri,

pannelli di comando.

 

Il requisito minimo per la creazione di questi particolari layout, è quello di impostare la Band Property RowLayoutStyle a Column Layout. Questa proprietà consente di specificare la modalità in cui le colonne di una Band possono essere combinate tra loro. Essa può assumere i valori:

None permette di combinare le colonne senza snaturare l'aspetto tabellare della Grid;

ColumnLayout consente di combinare le colonne, ignorandone eventuali raggruppamenti, in svariati modi fino a snaturare l'aspetto tabellare della Grid;

GroupLayout simile a ColumnLayout, ma tiene conto di eventuali raggruppamenti di colonne.

 

info

Oltre la creazione di cruscotti e pulsantiere, il Column Layout può essere utilizzato per realizzare altri template grafici personalizzati, quali tabelle con record suddivisi su più righe.

 

Formalmente, ogni cruscotto o pulsantiera è un Viewer di tipo Grid associato ad una particolare tabella del Model sottostante. Tale tabella deve essere:

priva di record;

con Edit Mode impostato a Simple o Full;

contenente tanti campi quanti sono i pulsanti e/o i controlli (e.g. drop-down list e value list) da visualizzare.

 

Per trasformare una Grid in un cruscotto è necessario impostare:

le Grid Property UseAppStyling e HeaderStyle, rispettivamente, a False e Standard per rendere effettive tutte le impostazioni grafiche;

la Band Property RowSelector a False, per eliminare il selettore dei record;

la Band Property RowLayoutLabelStyle a WithCellData, affinché celle e rispettive intestazioni costituiscano un unico blocco;

la Band Property RowLayoutLabelPosition per definire la posizione delle intestazioni di colonna rispetto alla corrispondente cella;

le Column Property della classe RowLayoutColumnInfo, con cui creare interfacce altamente personalizzate.

 

La Band Property RowLayoutLabelStyle specifica la modalità di visualizzazione congiunta di celle e relative intestazioni. Essa può assumere i valori:

Separate visualizza le intestazioni di colonna in un'area separata dai record in cima alla Band corrente;

WithCellData visualizza in ogni cella della Band corrente anche la corrispondente intestazione di colonna.

 

La Band Property RowLayoutLabelPosition specifica le posizioni reciproche di celle e relative intestazioni. Essa può assumere i valori:

None nasconde le intestazioni ma visualizza le corrispondenti celle;

LabelOnly nasconde le celle ma visualizza le intestazioni corrispondenti;

Bottom visualizza l'intestazione di colonna alla base della cella corrispondente;

Top visualizza l'intestazione di colonna in cima alla cella corrispondente;

Left visualizza l'intestazione di colonna a sinistra della cella corrispondente;

Left visualizza l'intestazione di colonna a destra della cella corrispondente;

Default coincide con Top.

 

Le principali proprietà della classe RowLayoutColumnInfo sono:

OriginX specifica la distanza in celle di un blocco Cella-Intestazione, in orizzontale a partire dall’angolo in alto a sinistra della Band;

OriginY specifica la distanza in celle di un blocco Cella-Intestazione, in verticale a partire dall’angolo in alto a sinistra della Band;

CellInsets definisce lo spessore in pixel dei contorni delle celle;

LabelInsets definisce lo spessore in pixel dei contorni delle intestazioni;

SpanX imposta l’ampiezza in blocchi Cella-Intestazione di un singolo blocco, in orizzontale;

SpanY imposta l’ampiezza in blocchi Cella-Intestazione di un singolo blocco, in verticale;

LabelSpan specifica quale porzione di SpanX o SpanY riservare all’intestazione della cella.

 

warning

Nell'impostare le proprietà OriginX, OriginY, SpanX e SpanY è necessario tener presente che ogni blocco Cella-Intestazione vale 2 sia in orizzontale sia in verticale.

Inoltre il valore di default -1 per OriginX e OriginY consente di posizionare ogni blocco Cella-Intestazione nella prima posizione disponibile.

 

warning

Nel caso di export in Excel, l'uso della property SpanX può provocare la generazione di merged cells il cui contenuto potrebbe non essere visibile.

 

Infine, dopo aver configurato l'interfaccia del cruscotto è necessario definire controlli e pulsanti che lo compongono.

Per definire controlli di tipo drop-down list e value list è necessario:

impostare a True la Column Property AllowUpdate per i campi corrispondenti ai controlli;

associare drop-down list e value list alle corrispondenti celle del cruscotto, come descritto nei capitoli dedicati (Le drop-down list e Le value list).

Per definire pulsanti invece è necessario:

impostare a Button la Column Property Style per i campi associati a pulsanti;

impostare a True la Column Property DisableActiveItemBorder per i campi associati a pulsanti;

specificare la stringa da visualizzare sul pulsante mediante la Column Property NullText.