Nodi

copia link

Introduzione

Elenco dei metodi e degli eventi dell'albero relativi ai nodi non document oriented.

Refresh Nodes Aggiorna il contenuto dell'albero rieseguendo le query opportune
Expand Node Espande un nodo di un albero
Expand Nodes By Level Espande o collassa tutti i nodi di un albero per livello di profondità
Activate Node Attiva un nodo dell'albero identificandolo tramite l'HashKey
Get Active Node Restituisce l'HashKey del nodo attivo
Select Node Seleziona un nodo dell'albero
Get Selected Node Count Restituisce il numero totale di nodi selezionati in un albero
Get Selected Node Restituisce l'HashKey dell'i-esimo nodo selezionato in un albero.
Get Children Node Count Restituisce il numero di nodi figli del nodo identificato tramite HashKey
Get Children Node Restituisce l'HashKey dell'i-esimo figlio del nodo identificato tramite HashKey
Get Parent Node Restituisce l'HashKey del nodo padre di quello fornito
On Drop Node Evento notificato dall'albero quando un nodo viene tirato su un'altro nodo
On Activate Node Evento notificato dall'albero quando un nodo viene attivato
On Expand Node Evento notificato dall'albero quando un nodo viene espanso per la prima volta
On Change Selection Evento notificato dall'albero quando cambia lo stato di selezione di un nodo
Select All Seleziona o deseleziona tutti i nodi dell'albero
On Change Expand Node Evento notificato dall'albero al cambiamento dello stato di apertura/chiusura di un nodo.
Update Queries Reinizializza le query dell'albero

Identificazione dei nodi: la proprietà HashKey

Questo paragrafo descrive come il sistema identifica ogni singolo nodo di un albero il cui contenuto provenga da query su tabelle del database.

Ogni metodo, funzione ed evento contenuto nella cartella Nodes della libreria degli alberi possiede, infatti, almeno un parametro chiamato HashKey. Questo parametro è ciò che permette di identificare ed operare su un singolo nodo dell'albero.

Durante la fase di creazione dell'albero il sistema assegna ad ogni nuovo nodo un nome che deve essere univoco. Tale nome è calcolato come segue:

  • Se esiste, nella query di un TreeItem, una colonna con DBCode uguale ad HASH il sistema utilizza il valore di questa colonna come nome del nodo;
  • se non esiste una colonna con DBCode uguale ad HASH il sistema concatena tutti i valori delle colonne Primary Key utilizzate nella select list della query dei nodi dell'albero.
Normalmente, se l'albero contiene oggetti diversi provenienti da tabelle diverse, è necessario definire l'espressione HASH per poter distinguere i diversi nodi tra loro. Per esempio se un albero contiene nodi della tabella Categorie (avente il campo IDCATEGORIA di tipo intero come Primary Key) e per ogni categoria vengano creati nodi provenienti dalla tabella Prodotti (avente il campo IDPRODOTTO di tipo intero come Primary Key) è necessario specializzare i vari nodi. Una soluzione potrebbe essere quella di definire una colonna calcolata nella query delle categorie così fatta:
    'C' +c ToString(IDCATEGORIA) as HASH
ed una colonna calcolata nella query dei prodotti così fatta:
    'P' +c ToString(IDCATEGORIA) as HASH
In questo modo tutti i nodi delle categorie hanno un HashKey che inizia per 'C' mentre i nodi dei prodotti iniziano con 'P'.

Se non avessimo definito tali colonne calcolate tutti i nodi dell'albero avrebbero avuto come HashKey il loro ID con evidente sovrapposizione delle categorie con i prodotti. Se avessimo avuto necessità di attivare la categoria con ID uguale ad 1 avremmo dovuto chiamare la procedura SelectNode fornendo il valore '1' (stringa) come parametro. Il sistema non avrebbe potuto selezionare tale nodo in quanto avrebbe trovato 2 nodi diversi con lo stesso valore di HashKey. In questo caso, il nodo non sarebbe stato attivato ed avremmo visto un messaggio di Warning nella videata di Debug che segnalava l'ambiguità.

Badge

Questo paragrafo descrive come il sistema associa un Badge ad un nodo dell'albero.

  • Albero DB : Se esiste, nella query di un TreeItem, una colonna con DBCode uguale a BADGE il sistema utilizza il valore di questa colonna come Badge del nodo.
  • Albero DO : Il sistema chiede ad ogni documento il valore della Named property BADGE; il documento può usare l'evento OnGetNamedPropertyValue per assegnare il valore del Badge.


Query di un TreeItem DB con la colonna BADGE.

Evento DO utilizzato per associare un Badge ad un nodo di un albero.

Ultima modifica: 28/07/2022 / Validità: da 6.5.2680