.. _widgetpedia/grids/cells/cell:
cell
====
Il ``cell`` è un widget che si occupa della visualizzazione dei valori di una griglia quando queste non sono vere colonne di database.
L’elemento *cell* può quindi essere utilizzato se la colonna esiste **solo nel datastore** o se viene definita estemporaneamente come **formula**.
::
def th_struct(self,struct):
r = struct.view().rows()
r.fieldcell('prodotto_id',edit=dict(validate_notnull=True))
r.fieldcell('quantita',edit=dict(validate_notnull=True),width='7em')
r.fieldcell('prezzo_unitario')
r.cell('prezzo_totale',totalize=True,formula='quantita*prezzo_unitario')
.. raw:: html
**Parametri:**
+------------------------+------+--------------------------------------------------+
| Nome parametro | Tipo | Descrizione |
+========================+======+==================================================+
|width |T |Consente di definire l'eventuale larghezza di una |
| | |colonna, il valore può essere espresso in px o em.|
+------------------------+------+--------------------------------------------------+
|name |T |è il titolo della colonna che voglio mostrare |
| | |nell'header, se sto usando fieldcell il suo valore|
| | |di default è letto dagli attributi name_short e |
| | |name_long della colonna corrispondente, nella |
| | |definizione del model. |
+------------------------+------+--------------------------------------------------+
|text_align |T |consente di allineare il testo a sinistra (left, |
| | |default o center o right) |
+------------------------+------+--------------------------------------------------+
|format |T |è una stringa che rappresenta il pattern di |
| | |formattazione che voglio dare ad un dato di tipo |
| | |data o numerico. Ad esempio ``#,###.00`` |
+------------------------+------+--------------------------------------------------+
|dtype |T |è il tipo di dato nella solita codifica. Se si usa|
| | |fieldcell non serve perché il dtype è ricavato dal|
| | |model. |
+------------------------+------+--------------------------------------------------+
|columnset |T |ha uno scopo di esclusiva organizzazione visiva |
| | |e/o logica dei dati e ne consente una maggiore |
| | |leggibilità in quanto le colonne appartenenti allo|
| | |stesso columnset vengono visualmente raggruppate |
| | |sotto una sorta di cappelletto colorato |
+------------------------+------+--------------------------------------------------+
|sort |T |Permette di stabilire il criterio di ordinamento |
| | |(a=Ascendente, d=discendente) della griglia basato|
| | |sulla colonna in cui viene dichiarato. Ha la |
| | |precedenza rispetto all'ordinamento eventualmente |
| | |definito nel metodo th_order, che invece è |
| | |definito a livello di classe View. |
+------------------------+------+--------------------------------------------------+
|calculated |B |Se a un cell assegniamo il parametro |
| | |calculated=True, la colonna sarà considerata |
| | |"calcolata" e non sarà quindi presente nelle query|
+------------------------+------+--------------------------------------------------+
|formula |T |Per un cell calcolato, permette di inserire una |
| | |sintassi javascript per il calcolo (es: |
| | |formula='voto_si?popolazione_residente:0') |
+------------------------+------+--------------------------------------------------+
|totalize |B |Se impostato a True, specifica se totalizzare i |
| | |valori della colonna. Alternativamente, in caso |
| | |per esempio di colonne calcolate, può contenere |
| | |indicazione dei valori da totalizzare (es: |
| | |totalize='#FORM.record.mill_si') |
+------------------------+------+--------------------------------------------------+
|_customGetter |T |Permette di customizzare il contenuto della cella |
| | |e modificarlo tramite un contenuto js (per i |
| | |dettagli si rimanda alla sezione dedicata) |
+------------------------+------+--------------------------------------------------+
|rowTemplate |T |Permette di modificare la modalità di |
| | |visualizzazione della cella, inserendo |
| | |direttamente codice html (es: rowTemplate="$r|
| | |agione_sociale
$indirizzo
") |
+------------------------+------+--------------------------------------------------+
|semaphore |B |Se impostato a True, le celle di tipo booleano |
| | |verranno mostrate con un semaforo verde se Vero, |
| | |rosso se Falso |
+------------------------+------+--------------------------------------------------+
|tick |B |Se impostato a True, le celle di tipo booleano |
| | |verranno mostrate con un segno di spunta se Vero. |
+------------------------+------+--------------------------------------------------+
|three_state |B |Se impostato a True, il semaphore avrà tre stati |
| | |anziché due (rosso e verde più il giallo per i |
| | |valori nulli) |
+------------------------+------+--------------------------------------------------+
| *CSS Parametri* |
+------------------------+------+--------------------------------------------------+
|classes |T |Le classi css da assegnare alla colonna per intero|
+------------------------+------+--------------------------------------------------+
|cellClasses |T |Le classi css da assegnare alle celle |
+------------------------+------+--------------------------------------------------+
|headerClasses |T |Le classi css da assegnare alle testate delle |
| | |colonne |
+------------------------+------+--------------------------------------------------+
.. sectionauthor:: Davide Paci