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

L’attributo selected_

Grazie all’attributo selected_ è possibile portare nel workspace, oltre alla foreignkey del record selezionato, anche delle altre colonne del record a piacimento, e specificare il path nel quale andare a immagazzinare tale valore, nella forma:

selected_nomecolonna = 'pathdidestinazione'

Nell’esempio stiamo quindi copiando, al path .vat_type_code, il valore della colonna vat_type_code del record che andremo a selezionare. Ogni volta che cambieremo la selezione, ovviamente, verrà rieseguita la query e verrà aggiornato il valore al path indicato.

Suggerimento

Si noti che non è assolutamente necessario che il nome della colonna e del path corrispondano, ma il nome del path può essere totalmente a piacere

Da un recente aggiornamento di novembre 2022 è anche possibile usare la selected con colonne in relazione, senza che sia obbligatorio l’uso di una aliasColumn. La sintassi sarà la seguente:

selected_nomeapiacere = '.pathdidestinazione=@colonnainrelazione'

selected_provincia_cliente = '.provincia=@cliente_id.provincia'

Suggerimento

Si noti che in questa sintassi andrà indicato il path di destinazione, il path della colonna in relazione, e nella parte dopo selected_ sarà possibile indicare non il nome della colonna di provenienza, ma un nome totalmente a piacere.


Parametri:

Nome parametro

Tipo

Descrizione

hasDownArrow

B

True or False, permette di indicare se il campo mostrerà o meno una tendina

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»

Html Parametri

_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 arrotondamento 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

Validations Parametri

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

Common Parametri

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

dbSelect Parametri

emptyLabel

T

Permette di personalizzare la label della riga vuota (es: emptyLabel=”Nuovo record”)

emptyLabel_

T

Permette di aggiungere dei parametri personalizzati alla emptyLabel (es: emptyLabel_first=True per posizionare la emptyLabel all’inizio, e emptyLabel_class per assegnare una classe css particolare)

alternatePkey

T

Permette di indicare una colonna della tabella da salvare al path indicato in alternativa alla pkey (es: alternatePkey=”code”)

zoom

B

Di default True, se impostato a False viene disabilitata la freccina accanto alla label che permette di aprire in modalità dialog il TableHandler della tabella a cui si riferisce il widget

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.

method

T

Permette di indicare un metodo che sostituisce quello standard per recuperare i dati dal server

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.

Query Parametri

dbtable

T

(deprecato, sostituito da «table»)

table

T

Indica la tabella da cui reperire i dati, nella forma «package.table»

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

condition_

T

Permette di passare i parametri alla condition

weakCondition

B

If there are no results applying the condition parameter, the condition is relaxed.

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)

order_by

T

Corresponding to the sql «ORDER BY» operator