Grid Widgets

Le griglie (grid) sono un elemento molto importante per la presentazione in formato tabellare di collezione di dati con campi omogenei. Le griglie possono essere chiamate in molti modi diversi e sono spesso incorporate in Components per mostrare dei dati di varia origine.

Le griglie sono caratterizzate principalmente da due elementi :

  • Lo store dei dati

  • La struttura delle colonne (la struct)

Una griglia utilizza come store una Bag di dati e questa Bag può essere strutturata differentemente a seconda del tipo di uso. La Bag può infatti essere rappresentata come Bag di attributi o di valori, a seconda di come viene definito il parametro datamode (attr o Bag):

  • se uguale a Bag, allora nello store troveremo una sola riga, con la Bag, che poi all’interno contiene tutte le singole righe

  • se invece uguale ad attr nello store troveremo direttamente tutte le singole righe con i loro valori.

Suggerimento

Il TableHandler, ovvero il component «griglia» principe di Genropy, lavora sempre in datamode=attr.

Si segnala che il datamode attr non permette di default l’editing dello store. Infatti, nell”inlineTableHandler è necessario utilizzare l’attributo edit=True per apportrare modifiche ai record direttamente nella griglia, e questo fa sì che vengano recuperati anche i valori, che altrimenti non sarebbero presenti. Nel momento in cui facciamo doppio clic per modificare un valore, la riga viene «copiata» nello store, e compariranno anche i valori. Il valore «originale» sarà sempre disponibile tra gli attributi come _loadedValue, e al salvataggio le modifiche verranno implementate.

I vari tipi di griglie possono essere classificati a seconda della modalità di uso:

  • Griglie su tabella di database per selezioni molto numerose (Virtual Grid)

  • Griglie su tabella di database per selezioni di dimensioni contenute (Static Grid)

  • Griglie che hanno come store una serie di documenti nel filesystem

  • Griglie che operano su una Bag

I primi due tipi fanno capo al vasto mondo dei TableHandler e alla distinzione tra Store statico o store virtuale, per i quali rimandiamo alla Documentazione dedicata.

Vediamo invece in questa sede nel dettaglio l’ultimo tipo, le griglie che operano su una Bag: la bagGrid e la quickGrid .

Autore della sezione: Davide Paci