.. _orm_genropy/virtual_columns/bagitemcolumns: bagItemColumn ============= La bagItemColumn permette di valorizzare all'interno di una table un **path interno a una Bag**. I valori non saranno "copiati", ma **verrà utilizzata** a tutti gli effetti la `Bag `_ garantendo l'integrità dei dati, ma allo stesso tempo la colonna sarà equiparabile nell'utilizzo a una colonna "vera" della table di destinazione. .. hint:: La bagItemColumn è particolarmente utile in caso di colonne di tabelle in relazione che vengono utilizzate spesso nelle :ref:`Operazioni di lettura` Per aggiungere una bagItemColumn all'interno di una table:: class Table(object): def config_db(self, pkg): tbl.column('personalizzazioni', dtype='X', name_long='Personalizzazioni') tbl.column('dettaglio_vendita', dtype='X', name_long='Dettaglio vendita') tbl.bagItemColumn('personalizzazione_1',bagcolumn='$personalizzazioni', itempath='#0?_displayedValue',name_long='Personalizzazione 1') tbl.bagItemColumn('personalizzazione_2',bagcolumn='$personalizzazioni', itempath='#1',name_long='Personalizzazione 2') dt.bagItemColumn('data_arrivo',bagcolumn='$dettaglio_vendita', itempath='data_arrivo',name_long='Data arrivo',dtype='D') La bagItemColumn è definita da queste componenti: - un ``name``, generalmente implicito, analogamente a una :ref:`colonna "vera"` - una ``bagcolumn``, ovvero il rimando alla colonna vera di tipo *Bag* - un ``itempath``, che può essere espresso con la chiave (es: *data_arrivo*) oppure posizionalmente (es: *#0*) .. hint:: Si noti che l'*itempath* restituisce di default il ``value``, ma è possibile invece riportare un qualsiasi attributo con la consueta sintassi del ``?`` per `leggere gli attributi della Bag `_ .. sectionauthor:: Davide Paci