Il layout master-detail

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

Il layout master-detail

Previous pageReturn to chapter overviewNext page

In IrionEDM la rappresentazione di una relazione parent-child prende il nome di layout master-detail.

La Grid consente di rappresentare in modo semplice ed efficace layout di tipo master-detail, rappresentando in Band distinte, chiamate rispettivamente Master e Detail, la tabella padre e la tabella figlio.

 

Il requisito minimo per realizzare un layout di tipo master-detail mediante una Grid, è quello di associare al Data Member del Viewer la tabella padre. In questo modo il Viewer è in grado di predisporre la Master Band e tante Detail Band quante sono le tabelle figlio.

In particolare una Grid espone automaticamente a video tutte le Datail Band dipendenti dalla Master Band. Per condizionare la visualizzazione delle Detail Band è necessario agire sulle seguenti proprietà:

ViewStyle, Grid Property con cui è possibile limitare la visualizzazione di una relazione parent-child alla sola Master Band;

Hidden, Band Property con cui nascondere la Detail Band attualmente selezionata a video.

 

La proprietà ViewStyle può assumere i seguenti valori:

SingleBand visualizza la sola Master Band;

MultiBand visualizza Master Band e tutte le Detail Band ad essa associate.

 

Per personalizzare l'aspetto grafico di un layout master-detail sono disponibili numerose Band e Grid Property.

Le principali Band Property caratteristiche di un layout master-detail consentono di definire la modalità di visualizzazione delle Detail Band a partire dalla Master Band. Esse sono:

ExpansionIndicator personalizza la visualizzazione del pulsante per espandere i record delle Detail Band a partire dalla Master Band corrente;

Expandable abilita (valore True) o disabilita (vlaore False) gli expansion indicator eventualmente visibili sulla Master Band corrente.

 

info

Le Band Property caratteristiche di layout master-detail sono efficaci solo in caso la Grid Property ViewStyle sia MultiBand.

 

La proprietà ExpansionIndicator, presente nella classe Override, può assumere i valori:

Always visualizza l’expansion indicator per ogni record della Master Band;

Never nasconde l’expansion indicator per ogni record della Master Band;

CheckOnDisplay visualizza l’expansion indicator in corrispondenza dei record della Master Band a cui è associato almeno un record di una Detail Band;

CheckOnExpand coincide inizialmente con Always, ma l’expansion indicator, se premuto, resta visibile solo in caso esista almeno un record associato in una Detail Band;

Default coincide con CheckOnExpand.

 

Le principali Grid Property caratteristiche di un layout master-detail permettono, invece, di agire sulla disposizione e l'esposizione delle Detail Band rispetto alla Master Band associata. Esse sono:

HeaderPlacement definisce la collocazione delle intestazioni di colonna per Master Band e Detail Band;

ViewStyleBand determina il posizionamento delle Detail Band rispetto alla Master Band associata;

RowConnectorStyle consente di scegliere lo stile grafico (e.g. Dotted, Dashed o Solid) delle linee che connettono tra loro gli expansion indicator;

RowConnectorColor permette di personalizzare il colore delle linee che connettono tra loro gli expansion indicator;

MaxBandDepth definisce il numero massimo di Band caricabili nella Grid corrente, contando anche la Master Band.

 

LightBulb

In caso si conosca il numero esatto di Band che compongono un layout master-detail, è possibile ottimizzare il caricamento della Grid specificando tale numero nella Grid Property MaxBandDepth.

 

La proprietà HeaderPlacement, presente nella classe Override, può assumere i valori:

RepeatOnBreak mostra le intestazioni di colonna per ogni sezione visualizzata di Master e Detail Band;

FixedOnTop visualizza le intestazioni di colonna di ogni Band una sola volta, in testa alla Grid corrente;

OncePerRowIsland mostra le intestazioni di colonna della Master Band una sola volta mentre quelle delle Detail espanse sono sempre visibili.

OncePerRowGroupedIsland simile a OncePerRowIsland ma, in caso di raggruppamenti sulla Detail Band, non ripete le intestazioni di colonna sopra ogni gruppo;

Default coincide con RepeatOnBreak.

 

info

Il comportamento delle intestazioni di colonna può essere specializzato a livello delle singole Band componenti il layout master-detail mediante la Band property HeaderPlacement della classe Override.

 

La proprietà ViewStyleBand può assumere i valori:

Horizontal espone le Detail Band a destra dei record della Master Band, a cui esse sono associate, e disabilita la funzione di raggruppamento;

Vertical visualizza le Detail Band sotto i record della Master Band, a cui esse sono associate, e disabilita la funzione di raggruppamento;

OutlookGroupBy simile a Vertical, ma conserva la funzione di raggruppamento attraverso il GroupByBox.