from gnr.app.gnrapp import GnrApp
#istanzio oggetto GnrApp passando il nome dell'istanza di sandbox chiamata sandboxpg
app = GnrApp('sandboxpg')
#dell'oggetto GnrApp mi interessa al momento solo il puntatore all'oggetto GnrSqlDb
#questo è il mapper corrispondente dal database dell'applicazione
mydb = app.db
#prendo la table cliente
tbl_cliente = mydb.table('fatt.cliente')
#questa è una query sulla table cliente. Vorrei semplificare la lettura delle colonne in relazione
rel_query = tbl_cliente.query(columns='$ragione_sociale,@provincia.nome AS nome_provincia',
where='@provincia.regione = :reg',
reg='LOM',
limit=5)
rel_query.fetch()
tbl.aliasColumn('provincia_nome', relation_path='@provincia.nome', name_long='Nome provincia')
tbl.aliasColumn('regione_sigla', relation_path='@provincia.regione', name_long='Regione sigla')
tbl.aliasColumn('regione_nome', relation_path='@provincia.@regione.nome', name_long='Regione nome')
tbl_cliente.model.virtual_columns.keys()
rel_query = tbl_cliente.query(columns='$ragione_sociale,$provincia_nome',
where='$regione_sigla = :reg',
reg='LOM',
limit=5)
#rel_query.fetch()
print(rel_query.sqltext)
tbl_cliente.query(columns="$etichetta", order_by='LENGTH($ragione_sociale) DESC').fetch()
tbl.formulaColumn('n_fatture',select=dict(table='fatt.fattura', columns='COUNT(*)', where='$cliente_id=#THIS.id'), dtype='L',name_long='N.Fatture')
tbl.formulaColumn('tot_fatturato',select=dict(table='fatt.fattura', columns='SUM($totale_fattura)', where='$cliente_id=#THIS.id'), dtype='N',name_long='Tot.Fatturato')
q_formula = tbl_cliente.query(columns='$etichetta,$n_fatture,$fatt_avg', where='$n_fatture > :n', n=5, order_by='$n_fatture DESC')
print(q_formula.sqltext)
q_formula.fetch()