.. _orm_genropy/orm_genropy/model/column/colgroup: Colgroups ========= Un ``colgroup`` è un raggruppamento di più colonne e si definisce come segue:: class Table(object): def config_db(self, pkg): tbl = pkg.table('anagrafica') group = tbl.colgroup('dati', name_long='Dati', col_defaultFrom='@cliente_id') group.column('ragione_sociale') group.column('nome') group.column('cognome') L'effetto del *colgroup*, oltre a migliorare la leggibilità del codice, è quello di raggruppare sotto la stessa voce, quella del gruppo, tutte le colonne affini, effetto che verrà propagato anche all'albero della View. Inoltre, al trascinamento del titolo del gruppo in una vista, verrà direttamente generato il `columnset `_ corrispondente. Si noti che con ``col_`` è possibile assegnare un parametro a tutte le colonne del gruppo contemporaneamente. .. hint:: I colgroups sostituiscono la vecchia sintassi del *group* come attributo di :ref:`colonna` , arricchendone ulteriormente le potenzialità sul fronte interfaccia. .. raw:: html
**Parametri:** +------------------------+------+--------------------------------------------------+ | Nome parametro | Tipo | Descrizione | +========================+======+==================================================+ |name |T |Generalmente implicito, definisce il nome del | | | |gruppo (es: 'dati') | +------------------------+------+--------------------------------------------------+ |size |L |Permette di definire il numero dei caratteri del | | | |contenuto della colonna (es: size=':22') | +------------------------+------+--------------------------------------------------+ |dtype |T |Permette di indicare il datatype tra quelli | | | |disponibili di default ('T', 'B', 'X', 'I', 'L', | | | |'N', 'D', 'H', 'DH', 'P') o customizzati. Se | | | |omesso è sempre dtype='T' | +------------------------+------+--------------------------------------------------+ |name_long |T |Permette di definire il name_long ("friendly | | | |name") della colonna (es: name_long='Nome e | | | |Cognome') | +------------------------+------+--------------------------------------------------+ |name_plural |T |Permette di definire un friendly name al plurale | | | |(es: 'Numeri di telefono') | +------------------------+------+--------------------------------------------------+ |name_short |T |Permette di indicare un friendly name abbreviato | | | |(es: name_short='Pr.') | +------------------------+------+--------------------------------------------------+ |group |T |**Deprecato, sostituito dai colgroups** Permette | | | |di indicare un codice di raggruppamento, affinché | | | |le colonne siano raggruppate sotto un'unica voce | | | |nel selettore delle colonne di destra del | | | |tablehandler | +------------------------+------+--------------------------------------------------+ |unmodifiable |B |Se impostato a True, il campo non sarà più | | | |modificabile una volta che è stato salvato (sarà | | | |quindi possibile solo il primo inserimento alla | | | |creazione del record) | +------------------------+------+--------------------------------------------------+ |unique |B |Introduce un vincolo di unicità, corrispondente | | | |all'SQL UNIQUE. Di default la primary key è sempre| | | |unique=True, ma è possibile assegnare questo | | | |parametro anche ad altre colonne (per es. in caso | | | |di colonne con contatori) | +------------------------+------+--------------------------------------------------+ |values |T |Se sono presenti solo un limitato numero di valori| | | |predeterminati per la colonna, questi vanno | | | |indicati in questo campo (es: tbl.column('type', | | | |name_long='type', | | | |values='RESPONSE,UPDATE,MESSAGE_TAG,CONTACT')) | +------------------------+------+--------------------------------------------------+ |subfields |T |In caso di Bag contenente i dynamic fields di una | | | |tabella in relazione, permette di indicare la | | | |colonna con i campi da mostrare e che riempiranno | | | |la Bag (es: tbl.column('custom_fields', dtype='X',| | | |name_long='Custom Fields', subfields='type_id')) | +------------------------+------+--------------------------------------------------+ |indexed |B | | +------------------------+------+--------------------------------------------------+ |_sendback |B | | +------------------------+------+--------------------------------------------------+ |defaultFrom |T |Permette di indicare un valore da ereditare e | | | |mostrare come default nella Form, partendo da una | | | |relazione (es: | | | |defaultFrom='@parent_id.voce_fatturazione_id' in | | | |caso di figlio di una tabella gerarchica, o | | | |defaultFrom='@tipo_prodotto_id.tipo_iva' in caso | | | |di una relazione). | +------------------------+------+--------------------------------------------------+ |plugToForm |B |Se impostato a True, permette di mostrare | | | |direttamente il field nella Form della tabella, | | | |senza necessità di modificare la risorsa. | | | |Particolarmente utile in caso di customizzazioni | | | |di package. | +------------------------+------+--------------------------------------------------+ |sql_value |T |Permette di inserire una formula di calcolo del | | | |valore della colonna, a livello di sql (quindi | | | |ricalcolata a ogni operazione di insert/update, | | | |es: sql_value=":area_modulo_dflt||'/'||:codice_mod| | | |ulo_dflt") | +------------------------+------+--------------------------------------------------+ |col\_ |T |Permette di attribuire dei parametri a tutte le | | | |colonne del colgroup (es: col_dtype='B', | | | |col_defaultFrom='@cliente_id') | +------------------------+------+--------------------------------------------------+ | *Validations Parameters* | +------------------------+------+--------------------------------------------------+ |validate\_ |T |Permette di definire i parametri di validazione | +------------------------+------+--------------------------------------------------+ |validate_notnull |B |Se impostato a True rende il riempimento della | | | |colonna obbligatorio | +------------------------+------+--------------------------------------------------+ |validate_len |L |Permette di indicare una lunghezza affinché il | | | |campo della colonna sia valido (es: | | | |validate_len='2:40') | +------------------------+------+--------------------------------------------------+ .. sectionauthor:: Davide Paci