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.
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.
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.
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.