dbSelect

dbSelect è uno dei widget più utili ed usati in Genropy. Lo scopo di dbSelect è essenzialmente quello di inserire nel record corrente la foreignkey da un altro record in relazione.

Uno dei modi più rapidi per ottenere ed inserire la foreign key è fornire all’utente quello che appare come un semplice campo testo, in cui possa digitare un frammento di testo (querystring) ed ottenere in tempo reale un menu a tendina di record compatibili con la stringa presente nel campo. Quando l’utente seleziona col click uno dei risultati dalla tendina o facendo invio il primo di essi, la foreignkey viene inserita come reale valore del campo, anche se nella form vedremo la sua rappresentazione, specificata dall’attributo rowcaption della table, o ridefinita dall’omonimo parametro. Il menu a tendina è configurabile (con i parametri columns ed auxcolumns) e può mostrare al suo interno una vera e propria tabella suddivisa in colonne.

L’utilizzo del widget dbselect implica l’esecuzione rapidissima e in tempo reale di svariate query che cerchino nella table indicata dal parametro dbtable record compatibili con la querystring. La colonna su cui viene cercato un match è di default quella specificata dall’attributo rowcaption, ma possono essere ridefinite dall’attributo columns.

Tipicamente la querystring può includere i primi caratteri di un nome o di un codice

I.E. «smi» per «Smith»

Ma anche diversi frammenti:

I.E. «Jo smi» per «John Smith»

O su diverse colonne presenti nel parametro columns

I.E. «smith boston» per John Smith che ha come colonna città Boston.


Esempi


Parameters:

Parameter name Type Description
value T Permette di inserire un valore, in termini assoluti (es. value=”Pippo”) o posizionali (es. value=”^.name”). Nel primo caso verrà assegnato il valore “Pippo”, nel secondo verrà assegnato a “name” il valore che inseriremo nell’inputfield.
lbl T Permette di inserire un’etichetta per il campo. Per div, caselle e aree di testo la «lbl» verrà visualizzata prima del campo, per le checkbox invece verrà mostrata dopo.
lbl_ T Permette di assegnare attributi alla lbl (es: «lbl_class»)
default T Valore di default se non modificato
placeholder T Testo di anteprima (non rappresenta un valore inserito ma solo un suggerimento)
disabled B Permette di disabilitare il campo. Es: disabled=True
tabindex L In un formbuilder con una serie di campi, permette di dare un ordinamento personalizzato nella compilazione nel passaggio da un campo a un altro con il tabulatore (es: tabindex=4)
_autoselect B Se impostato a True, alla selezione del campo il contenuto del campo sarà automaticamente selezionato
dbtable T (deprecato, sostituito da «table»)
table T Indica la tabella da cui reperire i dati, nella forma «package.table»
hasdownarrow B True or False, permette di indicare se il campo mostrerà o meno una tendina
columns T Le colonne su cui effettuare la query
auxcolumns T Per personalizzare l’anteprima dei risultati della query, è possibile mostrare subito altre colonne da visualizzare
condition T È possibile personalizzare la query con una «condition» equivalente a una WHERE in SQL
hiddencolumns T Per personalizzare l’anteprima dei risultati della query, è possibile nascondere subito alcune colonne
limit L Per personalizzare l’anteprima dei risultati della query, è possibile indicare un numero massimo di risultati (di default: 10)
rowcaption T Overrides table’s rowcaption. It’s a table’s column or columns that represents the rowinstead of record’s pkey. i.e. fullname instead of id.
selectedCb T A javascript callback function called when a record is selected with dbselect. The callback receives an item containing the selected record with all columns added in column, auxcolumns and hiddencolumns.
selected_ T It’s a prefix for kwargs. The parameter value is the datapath you want the column’s value copied into. i.e. selected_firstname=»myfriend.firstname»
condition_ T It’s a prefix for kwargs. Must be followed by the name of one variable used in the statement of condition parameter.
weakCondition B If there are no results applying the condition parameter, the condition is relaxed.
method T It’s a callable python function that overrides the standard way to get results from server.
order_by T Corresponding to the sql «ORDER BY» operator
alternatePkey T A column that you want to use instead of table’s pkey as value to set into your form.
selectmethod T It’s a callable python function that overrides the standard get the selection of results on database.
Validations Parameters
validate_empty T Restituisce un errore se il valore è nullo o è una stringa vuota
validate_notnull B Restituisce un errore se il campo è vuoto
validate_call T Restituisce un errore js
validate_regex T Restituisce un errore se il campo corrisponde esattamente a quanto indicato
validate_remote T Metodo RPC che effettua la validazione del valore inserito
Html Parameters
_class T Permette di assegnare una specifica classe CSS al widget
height T Permette di assegnare un’altezza al widget
width T Permette di assegnare una larghezza al widget
border T Permette di assegnare un bordo al widget
rounded L Permette di assegnare un rientro al widget
style T Permette di assegnare uno stile (da esprimersi come serie di attributi CSS) al widget
background T Permette di assegnare uno sfondo al widget