.. _tablehandler/tipi_tablehandler: Tipi di Tablehandler ==================== .. toctree:: :maxdepth: 1 :hidden: :titlesonly: dialog_th stack_th plain_th inline_th border_th palette_th related_th th_formhandler groupby_th Abbiamo visto come il TableHandler possa considerarsi a tutti gli effetti uno dei pilastri di Genropy che rende semplice ed agevole la gestione di una table. Ma un TableHandler, generato tramite ``gnrmkthresource``, non esaurisce la sua ragione di vita solo ed esclusivamente per la gestione della singola tabella, ma **può essere integrato**, magari dopo qualche modifica e personalizzazione, **in altri TableHandler o in webpage dedicate** consentendo in tal modo di poter riutilizzare codice già scritto. Per fare un esempio pratico, partendo come sempre dal progetto `Sandbox `_, immaginiamo di avere generato le risorse per le tabelle ``cliente``, ``fattura``, ``fattura_riga`` e ``prodotto``. Ciascuna risorsa generata ha lo scopo preciso di gestire la *View* e la *Form* di ciascuna tabella, ma le tabelle sono legate da delle relazioni: un **prodotto sarà inserito in una riga di una fattura** che a sua volta **farà parte di una fattura relativa ad un cliente**. In questo caso le risorse già generate per la singola tabella possono essere riutilizzate per creare *Form* complesse in cui vengono visualizzati dati provenienti da più tabelle seguendo le relazioni che le legano. Si potrà pertanto costruire una form del cliente che tramite il TableHandler delle fatture mostrerà la lista (*view*) delle sue fatture e la form della fattura le sue righe, ovvero potremmo avere un'altra form del cliente in cui vengono mostrati, tramite le relazioni che li legano, tutti i prodotti acquistati da un cliente. In altre parole definita una risorsa, questa potrà essere riutilizzata molteplici volte in situazioni e contesti diversi, andando ad assemblare come un mosaico "pezzi" di codice autoconsistenti a servizio di form o view. I TableHandler si differenziano, sulla base della loro maniera di implementare la :ref:`FormResource` in: .. list-table:: Tipi di Tablehandler :widths: 50 50 :header-rows: 1 * - TableHandler - Form * - :ref:`stackTableHandler` - nella stessa finestra * - :ref:`dialogTableHandler` - in una nuova finestra “dialog” * - :ref:`plainTableHandler` - assente * - :ref:`inlineTableHandler` - integrata alla view (inline) * - :ref:`borderTableHandler` - nella stessa finestra, sotto alla view * - :ref:`paletteTableHandler` - in una nuova finestra “palette” Esistono inoltre altre forme particolari di TableHandler che non rientrano in questa prima classificazione: - Il :ref:`groupByTableHandler` - Il :ref:`relatedTableHandler` - Il :ref:`thFormHandler` Ciascuno di questi svolge un ruolo specifico descritto in dettaglio ed il suo comportamento può essere personalizzato tramite i parametri passati dal chiamante. Possono essere utilizzati, oltre a parametri specifici, tutti i parametri utilizzati nel :ref:`Metodo th_options` . Questo garantisce una notevole dinamicità al comportamento dei TableHandler, che possono essere personalizzati a seconda della pagina in cui vengono utilizzati. Infine, ricordiamo che è sempre possibile nella chiamata al TableHandler specificare :ref:`quale View e Form utilizzare` con i parametri ``ViewResource`` e ``FormResource``. .. 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 applicare una condizione ai dati | | | |forniti dalla relazione o dalla tabella | +------------------------+------+--------------------------------------------------+ |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 | +------------------------+------+--------------------------------------------------+ .. sectionauthor:: Valter Vettorello e Davide Paci