.. _orm_genropy/virtual_columns/formulaColumn/formulacolumn_parametriche: formulaColumn parametriche ========================== Grazie alle formulaColumn parametriche è possibile rendere le formulaColumn sensibili a un parametro, sia questo *hard-coded*, definito nell'*env* dell'applicativo, o richiesto all'utente direttamente al momento del trascinamento della colonna tramite una `ask`. Ad esempio, nella tabella *prodotto* di `Sandbox `_, è possibile costruire una colonna che mi permetta di calcolare il totale delle vendite di ciascun prodotto a una specifica data nella regione richiesta:: tbl.formulaColumn('tot_fatturato_alla_data',select=dict(table='fatt.fattura_riga', columns='SUM($prezzo_totale)', where="""$prodotto_id=#THIS.id AND $data_fattura<=:data_limite AND @fattura_id.@cliente_id.@provincia.regione=:reg_selezionata"""), ask=dict(title='Richiesta dati', fields=[ dict(name='data_limite', tag='dateTextBox', lbl='Data limite'), dict(name='reg_selezionata', tag='dbSelect', table='glbl.regione', lbl='Regione')]), dtype='N',name_long='Tot.Fatturato alla data') Questo rende il sistema estremamente ricco e dinamico, garantendo un'elevatissima flessibilità all'utente che può così produrre infinite colonne per l'analisi dei dati e salvarle nella sua vista. Le formulaColumn parametriche sono oggetto di un `Tutorial dedicato sul nostro Blog `_. .. raw:: html
**Parametri:** +------------------------+------+--------------------------------------------------+ | Nome parametro | Tipo | Descrizione | +========================+======+==================================================+ |value |T |Generalmente implicito, permette di calcolare un | | | |valore secondo una regola definita come una | | | |stringa di SQL | +------------------------+------+--------------------------------------------------+ |static |B | | +------------------------+------+--------------------------------------------------+ |select |T |Alternativamente al value calcolato, la | | | |formulaColumn può restituire un valore originato | | | |da una query, i cui parametri possono essere | | | |indicati con un dizionario all'interno di questo | | | |parametro. Può contenere tutti i parametri di una | | | |query ("table", "where", "columns", "condition", | | | |"order_by", "limit") | +------------------------+------+--------------------------------------------------+ |var\_ |T |È possibile passare tutte le variabili che si | | | |vuole alla formulaColumn precedute da var_ (es: | | | |var_data_rif='2015-01-01'), in questo modo non | | | |andranno a mischiarsi agli altri parametri. | +------------------------+------+--------------------------------------------------+ |ask |T |Permette di identificare in un dizionario i | | | |parametri da richiedere all’utente al | | | |trascinamento della colonna nella vista, che | | | |verranno poi utilizzati dalla colonna (es. ask=dic| | | |t(title='Regione',fields=[dict(name='regione', | | | |tag='dbSelect', table='glbl.regione', | | | |lbl='Regione')])) | +------------------------+------+--------------------------------------------------+ |fieldname |T |In caso di formulaColumn parametriche permette di | | | |pre-impostare un template per la generazione del | | | |nome della colonna, così da non richiederlo | | | |all'utente (es: fieldname='tot_fatt_$data_rif') | +------------------------+------+--------------------------------------------------+ |header |T |In caso di formulaColumn parametriche permette di | | | |pre-impostare un template per la generazione | | | |dell'etichetta della colonna, così da non | | | |richiederla all'utente (es: header='Tot.Fatt. al | | | |$data_rif') | +------------------------+------+--------------------------------------------------+ .. sectionauthor:: Davide Paci