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.
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”) |
Autore della sezione: Davide Paci