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) |
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. |
ordered_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. |
Style Parameters | ||
style | T | |
Html Parameters | ||
_class | T | |
height | T | |
width | T | |
border | T | |
rounded | L | |
background | T | |
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 |