Il Tree è uno dei Viewer selezionabili nell'omonimo tab del Book.
Al fine di permettere ed organizzare la visualizzazione di più viewer diversi nell'output del Book, è necessario inserire gli stessi negli appositi contenitori: ✓ ModalViewerContainer ✓ DockViewerContainer |
La property NodesTable definisce il collegamento alla tabella del Model contenente i dati.
Il Tree consente di visualizzare, sotto forma di albero, i dati di una tabella organizzata secondo una struttura gerarchica.
La property BuildStrategy definisce come leggere tale struttura. Essa può assumere i seguenti valori, ciascuno riferibile ad un diverso modello di gerarchia:
✓ Path: la tabella possiede un campo contenente il percorso dal nodo dell'albero al record corrente (e.g. "nodo1\nodo2\nodo3");
✓ Parent-child: la tabella contiene un campo con l'id del record corrente e un ulteriore campo con l'id del record padre;
✓ WBS: la tabella possiede un campo che ne definisce la posizione nella Work Breakdown Structure (e.g. "1.1.2").
Per porter generare un tree con il modello Path, è necessario che, sulla tabella referenziata, esista una colonna che definisce il fullpath dell'elemento, con una struttura del tipo:
\LevelRoot
\LevelRoot\Child1
\LevelRoot\Child2
La colonna deve essere indicata nella property NodePathColumn.
Per impostare un ordinamento fra i nodi all' interno di uno stesso parent, occorre valorizzare la property NodePositionColumn
Per poter generare un tree con il modello Parent-Child, devono essere presenti sulla tabella del Model referenziata le due seguenti colonne:
✓ la chiave dell' elemento,
✓ la chiave dell' elemento padre.
I nodi root sono caratterizzati dal fatto che la chiave del parent è NULL o uguale all' elemento stesso. Per impostare le colonne, occorre valorizzare le properties NodeIdColumn e NodeParentColumn.
Per impostare un ordinamento fra i nodi, occorre valorizzare la property NodePositionColumn
Per poter generare un tree con il modello WBS, è necessario che, sulla tabella referenziata, esista una colonna che definisce una work breakdown structure che definisca path e posizione degli elementi della gerarchia (e.g. valori del tipo 1, 1.1, 1.2, 1.2,1, 1.2.2, 2).
La colonna deve essere indicata nella property NodeWbsColumn.
Il tree può essere visualizzato in due modalità:
✓ Standard: i nodi del tree sono rappresentati con una label di testo;
✓ OutlookGroupBy: il tree assume l' aspetto di una griglia: vengono mostrate tutte le colonne della tabella sottostante invece di una label di testo ed è possibile definire le caratteristiche delle colonne tramite la property ColumnSettings.
Nel caso della modalità Standard, il valore della label viene calcolato automaticamente in base a come è stato costruito il tree. Ad esempio, se il Tree è stato costruito in modalità WBS il testo del nodo coincide con il suo WBS. Inoltre è possibile definire:
✓ la colonna da cui prendere il testo impostando la property NodeLabelColumn;
✓ un'immagine che viene messa accanto al testo, tramite la property NodeImageColumn.
La property Allow Zoom, se impostata a True, consente di effettuare uno zoom del contenuto usando la rotellina del mouse.
ESEMPIO: ALBERO GERARCHICO IN PARENT - CHILD Consideriamo la classica tabella Employees, organizzata secondo il modello Parent-Child: È possibile costruire un Book in cui la tabella è visualizzata sotto forma di gerarchia. Il primo passo consiste nell'aggiunta della tabella Employees al Model e nella creazione del Tree all'interno del tab Viewers.
A questo punto è necessario lanciare il Book ed attivare il Design Mode, per configurare il Tree tramite il riquadro delle Properties: ✓ BuildStrategy deve essere valorizzata con ParentChild, ovvero il modello utilizzato per costruire la gerarchia; ✓ NodesTable corrisponde alla tabella del Model che contiene la gerarchia (Employees); ✓ NodeIdColumn è il campo che corrisponde alla chiave della tabella (EmployeeID); ✓ NodeParentColumn è il campo che corrisponde all'identificativo del padre (ManagerID).
Le proprietà aggiuntive NodeImageColumn e NodeLabelColumn consentono di personalizzare ulteriormente il Tree, selezionando rispettivamente una colonna contenente l'immagine da associare ai nodi dell'albero (Image) ed una contenente il testo da visualizzare nel Tree (FullName).
Per abilitare il drag&drop dei nodi nell'albero, è necessario impostare le seguenti proprietà: ✓ DragDropMode, per consentire le azioni di modifica sulla struttura dell'albero (TreeEdit); ✓ DropNodeArea, per specificare dove è possibile rilasciare i nodi trascinati (InRowAndIntraRows); ✓ DragOverMessage, per visualizzare un messaggio personalizzato durante il trascinamento; ✓ DragDropImage, per mostrare un'immagine custom durante il trascinamento.
|