.. _tutor/architettura/menu/tableBranch: tableBranch =========== Il *tableBranch* permette di costruire **dinamicamente** un branch basato su una `Table `_. Le voci contenute nel nuovo ramo saranno i singoli record della tabella, che è possibile filtrare specificando i parametri della query:: class Menu(object): def config(self,root): fatturazione = root.branch(u"Fatturazione") fatturazione.tableBranch('Ultime fatture',table='fatt.fattura', query_limit=5, query_order_by='$protocollo desc', cacheTime=5) fatturazione.tableBranch('Ultime fatture modificate',table='fatt.fattura', query_limit=5, query_order_by='$protocollo desc', cacheTime=5, branchId='modificate') fatturazione.tableBranch('Ultime per tipo',table='fatt.fattura', branchMethod='menuPerTipoCliente', cacheTime=5) fatturazione.tableBranch('Prodotti',table='fatt.prodotto', webpage='fatt/scheda_prodotto',query_limit=5, webpage_template='catalogo',cacheTime=5) Oltre ai parametri della ``query_``, si noti che è possibile specificare un ``branchId``, che richiamerà un :ref:`metodo automatico` automatico identificato dalla variante, oppure un ``branchMethod``, ovvero un altro :ref:`metodo` questa volta non automatico ma personalizzato, in entrambi i casi definiti nella *Table*. .. hint:: L'uso di ``branchId`` è particolarmente indicato in caso di `customizzazioni di package `_, il ``branchMethod`` invece nei casi in cui si necessita di metodi ad hoc definiti da zero. Come si presentano i record del tableBranch ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Oltre a condividere il ramo di menu, i record del *tableBranch* **condivideranno anche la stessa pagina**: al clic su uno dei record, quindi, verrà effettuato uno switch sul record selezionato, all'interno della stessa pagina. .. image:: /_static/images/menu/tablebranch.gif :width: 790px :align: center Si noti che la selezione può essere effettuata sia dal menu sia dal selettore apposito presente accanto al titolo del record. Questo consentirà innanzitutto di inviduare i record dal menu effettuando una ricerca testuale, e secondariamente di risparmiare tempo e risorse al caricamento. .. raw:: html
**Parametri:** +------------------------+------+--------------------------------------------------+ | Nome parametro | Tipo | Descrizione | +========================+======+==================================================+ |checkpref |T |Permette di mostrare la voce di menu o il branch | | | |solo se rispettata una determinata condizione | | | |espressa nelle preferenze, nella forma | | | |"pkg.nomepreferenza" (es: | | | |checkpref='adm.gestione_utenti_nel_menu') | +------------------------+------+--------------------------------------------------+ |checkenv |T |Permette di mostrare la voce di menu o il branch | | | |solo se rispettata una determinata condizione | | | |espressa nell'environment (es: | | | |checkenv='deposito_id') | +------------------------+------+--------------------------------------------------+ |newPanel |B |Se impostato a True la voce di menu si aprirà in | | | |un nuovo tab del browser | +------------------------+------+--------------------------------------------------+ |newWindow |B |Se impostato a True la voce di menu si aprirà in | | | |una nuova finestra del browser | +------------------------+------+--------------------------------------------------+ |table |T |La table su cui si vuole operare (es: | | | |table='fatt.fattura') | +------------------------+------+--------------------------------------------------+ |branchMethod |T |Permette di indicare il nome del metodo | | | |personalizzato della Table che si occupa della | | | |costruzione del menu (es: | | | |branchMethod='costruisciMenuPersonalizzato') | +------------------------+------+--------------------------------------------------+ |branchPage |B |Di default True, permette di specificare se aprire| | | |gli elementi nella stessa pagina oppure in tab | | | |separati | +------------------------+------+--------------------------------------------------+ |branchId |T |Permette di specificare il branchId del metodo da | | | |utilizzare (es: branchId='alfa') | +------------------------+------+--------------------------------------------------+ |branch\_ |T |Permette di passare un qualunque parametro al | | | |metodo di costruzione del menu (es: | | | |branch_date='31/12/2021') | +------------------------+------+--------------------------------------------------+ |query\_ |T |Permette di passare vari parametri alla query da | | | |effettuare sulla tabella (es: query_limit=5, | | | |query_order_by='$protocollo desc') | +------------------------+------+--------------------------------------------------+ |webpage |T |Permette di specificare il path della webpage da | | | |utilizzare (webpage='fatt/scheda_prodotto') | +------------------------+------+--------------------------------------------------+ |webpage\_ |T |Permette di passare vari parametri alla webpage | | | |(webpage_template='catalogo') | +------------------------+------+--------------------------------------------------+ |th\_ |T |Permette di passare una serie di parametri alla | | | |risorsa th (es: th_viewResource='ViewFromCliente')| +------------------------+------+--------------------------------------------------+ |cacheTime |L |Il tempo di caching, in secondi, tra un | | | |caricamento e l'altro (es: cacheTime=5) | +------------------------+------+--------------------------------------------------+ |titleCounter |B |Se impostato a True, accanto alla voce di menu | | | |verrà mostrato un contatore con il numero di | | | |record presenti | +------------------------+------+--------------------------------------------------+ | *Common Parameters* | +------------------------+------+--------------------------------------------------+ |label |T |Solitamente implicito, si riferisce all'etichetta | | | |della voce di menu | +------------------------+------+--------------------------------------------------+ |tags |T |Permette di indicare i tag utente a cui le pagine | | | |sono riservate (es: tags='admin') | +------------------------+------+--------------------------------------------------+ .. sectionauthor:: Davide Paci