.. _tablehandler/tipi_tablehandler/groupby_th:
groupByTableHandler
===================
Questo speciale TableHandler è quello che si ottiene anche da interfaccia in una qualunque vista cliccando sull'icona del sigma:
.. image:: /_static/images/tipi_tablehandler/sigma.png
:width: 30px
:align: center
Può essere usato all'interno di un altro TableHandler o in una webpage, purché sia indicata anche una `condition`::
def main(self,root,**kwargs):
bc = root.borderContainer(height='100%', datapath='main.tracks')
bc.contentPane(region='top', margin='5px').dbSelect(value='^artist', table='mu.artists', lbl='Seleziona un artista')
bc.contentPane(region='center').groupByTableHandler(table='mu.tracks',
struct=self.structAlbum,
condition='@albumid.artistid=:artist', condition_artist='^artist')
def structAlbum(self, struct):
r = struct.view().rows()
r.fieldcell('@albumid.albumid', hidden=True)
r.fieldcell('@albumid.title', name='album')
r.fieldcell('name')
r.fieldcell('genre_id')
r.fieldcell('composer')
Il risultato è il seguente:
.. image:: /_static/images/tipi_tablehandler/groupbyth.gif
:width: 760px
:align: center
Si noti che il *groupByTableHandler* presenta una `Grid View` e una `Tree View`, entrambe poi rappresentabili in modalità `Flat` e `Stacked`.
.. hint::
Può essere una rappresentazione utile nel caso in cui si voglia dare la possibilità di fare delle analisi statistiche su una tabella.
.. raw:: html
**Parametri:**
+------------------------+------+--------------------------------------------------+
| Nome parametro | Tipo | Descrizione |
+========================+======+==================================================+
|table |T |Permette di indicare la table di partenza dei dati|
+------------------------+------+--------------------------------------------------+
|relation |T |In caso di tabella in relazione, permette di |
| | |indicare la relation_name da seguire per |
| | |recuperare i dati |
+------------------------+------+--------------------------------------------------+
|formResource |T |Permette di indicare una specifica formResource |
| | |del Tablehandler da utilizzare |
+------------------------+------+--------------------------------------------------+
|viewResource |T |Permette di indicare una specifica viewResource |
| | |del Tablehandler da utilizzare |
+------------------------+------+--------------------------------------------------+
|condition |T |Permette di indicare la condition sulla base della|
| | |quale filtrare i dati (es: |
| | |condition='@albumid.artistid=:artist', |
| | |condition_artist='^artist') |
+------------------------+------+--------------------------------------------------+
|title |T |Titolo del box occupato dal Tablehandler |
| | |(visualizzato sopra la griglia) |
+------------------------+------+--------------------------------------------------+
|delrow |B |True o False, se impostato a False disattiva la |
| | |possibilità di eliminare record |
+------------------------+------+--------------------------------------------------+
|addrow |B |True o False, se impostato a False disattiva la |
| | |possibilità di aggiungere record |
+------------------------+------+--------------------------------------------------+
|export |B |True o False, se impostato a True permette di |
| | |esportare i dati in formato Excel |
+------------------------+------+--------------------------------------------------+
|virtualStore |B |True o False, se impostato a True il caricamento |
| | |dei dati sarà automatico e la ricerca |
| | |disabilitata. |
+------------------------+------+--------------------------------------------------+
|view_store_onStart |B |In caso di chiamata a un tablehandler con quindi |
| | |di default uno store statico, al fine di |
| | |visualizzare i dati nello store al caricamento si |
| | |può impostare un innesco oppure il parametro |
| | |view_store_onStart=True |
+------------------------+------+--------------------------------------------------+
|searchOn |B |Se impostato a "False" disabilita la casella di |
| | |testo per effettuare la ricerca quando questa è |
| | |già in sostituzione alla query classica (es: |
| | |quando virtualStore=False) |
+------------------------+------+--------------------------------------------------+
|extendedQuery |B |True o False, se impostato a True attiva la |
| | |ricerca avanzata e la toolbar di default del |
| | |tablehandler |
+------------------------+------+--------------------------------------------------+
|autoSave |B |Se impostato a True, il salvataggio automatico |
| | |delle modifiche sarà abilitato |
+------------------------+------+--------------------------------------------------+
|grid_autoSelect |B |Se impostato a True verrà automaticamente |
| | |selezionato il primo valore in griglia al |
| | |caricamento |
+------------------------+------+--------------------------------------------------+
|grid_multiSelect |B |True o False, se impostato a False impedisce la |
| | |selezione multipla delle celle |
+------------------------+------+--------------------------------------------------+
|grid_selfDragRows |B |True o False, se impostato a True permette |
| | |l'ordinamento personalizzato delle righe tramite |
| | |trascinamento |
+------------------------+------+--------------------------------------------------+
|form_locked |B |Permette di scegliere se la Form del th |
| | |rappresentato si mostrerà di default come aperta o|
| | |chiusa |
+------------------------+------+--------------------------------------------------+
|formInIframe |B |Se impostato a True la form sarà caricata in un |
| | |iframe |
+------------------------+------+--------------------------------------------------+
|configurable |B |Di default True, se impostato a False non mostrerà|
| | |la linguetta per configurare le colonne |
+------------------------+------+--------------------------------------------------+
|struct |T |Permette di indicare un metodo che descrive la |
| | |struct della vista |
+------------------------+------+--------------------------------------------------+
.. sectionauthor:: Davide Paci