| dalla versione 9.5.4160 - modificato il 02/11/2016 - link - english
|
Condizioni di notifica
Se in un pannello è contenuta una query di lookup in cui è stata attivata la funzione di Smart Lookup, allora l'evento di
OnGetSmartLookup viene notificato al pannello durante la gestione della procedura di smart lookup, cioè quando l'utente scrive qualcosa nei campi di lookup e preme il tasto INVIO.
Utilizzo consigliato
Questo evento può essere utilizzato per modificare il comportamento standard della procedura di Smart Lookup, descritta nel seguito.
Argomenti
Recordset
|
E' il recordset che occorre riempire se si personalizzano le query eseguite durante l'evento di Smart Lookup.
|
Level
|
La procedura di Smart Lookup esegue più tentativi, allargando sempre più il campo di ricerca. Questo parametro intero indica il tentativo a cui si è arrivati.
|
Null Value
|
Parametro di output booleano. Se lo si imposta a True, allora verrà ritornato il valore NULL (nessun risultato trovato) al pannello.
|
Skip
|
Parametro di output booleano. Se lo si imposta a True allora non verranno eseguite le query standard per il livello attuale.
|
Cancel
|
Parametro di output booleano. Se lo si imposta a True, allora la procedura di Smart Lookup verrà interrotta.
|
Field Index
|
E' un numero intero che rappresenta il campo del pannello per cui viene eseguita questa query. Deve essere confrontato con la proprietà Me del campo di pannello.
|
Note
- L'elenco dei livelli di ricerca è il seguente:
Livello 0: vengono cercati i dati che corrispondono esattamente a quello che l'utente ha inserito, usando clausole AND se l'utente ha inserito dati in più campi.
Livello 1: vengono cercati i dati che cominciano per quello che l'utente ha inserito, usando clausole AND se l'utente ha inserito dati in più campi..
Livello 2: vengono cercati i dati che contengono quello che l'utente ha inserito, usando clausole AND se l'utente ha inserito dati in più campi.
Livello 3: vengono cercati i dati che contengono quello che l'utente ha inserito, usando clausole OR se l'utente ha inserito dati in più campi.
Livello 4: vengono cercati i dati che contengono quello che l'utente ha inserito, cercando in tutti i campi della query di lookup e usando clausole OR se l'utente hai inserito dati in più campi.
- Impostando il parametro Skip a True verranno effettuati sempre nuovi tentativi, finchè non verrà impostato a True anche il parametro Cancel, oppure Null Value.
- E' necessario usare la funzione CopyFrom dell'oggetto Recordset per copiare i dati nel recordset passato come parametro.
-
Per ottenere il corretto caricamento delle proprietà è necessario che i nomi fisici (DB Code) delle colonne del recordset siano corrispondenti ai nomi fisici (DB Code) delle colonne della query smartlookup definita a design-time.
- Il recordset può essere aperto, ad esempio, con una istruzione di tipo Select Into Recordset oppure con la funzione SQLQuery dell'oggetto database.
-
FieldIndex va confrontato sempre con il primo campo della query di lookup, anche se una query ha associati più campi.
event Prodotti.Prodotti.OnGetSmartLookup(
Recordset Recordset
int Level
inout boolean NullValue
inout boolean Skip
inout boolean Cancel
int FieldIndex
)
{
if (FieldIndex == Prodotti.NomeCategoria.me())
{
if (Level == 0)
{
Skip = true
return
}
{
Recordset rec = new()
select into recordset (rec)
Idcategoria as IDCATECATEGO
NomeCategoria as NOMECATECATE
from
Categorie
Recordset.copyFrom(rec)
}
}
}
Cosa ne pensi?
Ti sono rimaste delle domande su punti che questo articolo non ha trattato? Pensi che sia utile aggiungere una nota all'articolo? Aiutaci a migliorare la documentazione di Instant Developer scrivendo il tuo commento nei campi qui sotto.