field¶
field
è uno speciale widget di Genropy per selezionare, visualizzare e modificare i valori di una colonna di una tabella del database all’interno di un formbuilder .
La sintassi del widget è estremamente semplice, e nella sua forma più minimale si limita a specificare in maniera implicita il field
(inteso questa volta come attributo del widget) a cui si riferisce il valore:
fb.field('nome')
fb.field(field='nome')
La particolarità del field è che si occuperà di effettuare un controllo sui permessi, stabilendo cosa mostrare/nascondere/filtrare all’utente che sta visualizzando la pagina, di controllare nelle preferenze se la colonna è abilitata o disabilitata, infine di individuare il widget di inputazione corretto sulla base del dtype
definito nel model. Per esempio, se il dtype è di tipo L (long-integer), il widget utilizzato automaticamente sarà una numberTextBox , se di tipo D (date), sarà una dateTextBox , e così via.
Suggerimento
Si noti che è comunque possibile specificare un widget a piacere utilizzando l’attributo tag
, insieme agli altri attributi richiesti dal tipo di widget prescelto:
fb.field('note', tag='simpleTextArea', width='100%', height='100%', editor=True)
Si noti che il widget si limita a specificare il campo, e non il path dello stesso. Affinché la «magia» funzioni, è quindi necessario che il formbuilder si trovi nel corretto datapath.
Suggerimento
Si ricorda che il formbuilder può ricevere l’attributo table
: in quel caso sarà possibile in qualunque contesto sfruttare il widget field
Parametri:
Nome parametro |
Tipo |
Descrizione |
---|---|---|
cols |
L |
Stabilisce il numero di colonne (es: cols=3) |
table |
T |
Permette di indicare una table a cui riferire i vari «field» del formbuilder (es: table=”fatt.fattura”) |
byColumn |
B |
Permette di percorrere il formbuilder con il tabulatore in verticale (per colonna) anziché in orizzontale (per riga) |
field |
T |
La colonna di cui costruire il campo nel formbuilder |
lbl |
T |
La label (se diversa dal name_long definito nel model) |
tag |
T |
Il widget da utilizzare per il campo (se diverso da quello utilizzato in automatico) |
Html Parametri |
||
_class |
T |
Permette di assegnare una specifica classe CSS al widget |
height |
T |
Permette di assegnare un’altezza al widget |
width |
T |
Permette di assegnare una larghezza al widget |
border |
T |
Permette di assegnare un bordo al widget |
rounded |
L |
Permette di assegnare un arrotondamento al widget |
style |
T |
Permette di assegnare uno stile (da esprimersi come serie di attributi CSS) al widget |
background |
T |
Permette di assegnare uno sfondo al widget |
CSS Parametri |
||
tblclass |
T |
Permette di assegnare una classe css all’intera tabella |
lblclass |
T |
Permette di assegnare una classe css alle label del formbuilder |
fieldclass |
T |
Permette di assegnare una classe css ai field del formbuilder |
Columns Parametri |
||
colswidth |
T |
Permette di indicare la larghezza delle colonne del formbuilder (es: colswidth=”100%”) |
Label Parametri |
||
lblpos |
T |
Permette di indicare dove posizionare le label, di default è lblpos=”L” (valori alternativi: “T”, per mostrare la lbl sopra al campo) |
lblalign |
T |
Permette di personalizzare l’allineamento delle label del formbuilder, di default lbl_align=”left” |
lblvalign |
T |
Permette di personalizzare l’allineamento verticale delle label del formbuilder, di default lbl_align=”top” |
Field Parametri |
||
fldalign |
T |
Permette di personalizzare l’allineamento dei field del formbuilder, di default fld_align=”left” |
fldvalign |
T |
Permette di personalizzare l’allineamento verticale dei field del formbuilder, di default fld_align=”top” |
Autore della sezione: Davide Paci