Scopo
Rappresenta il filtro QBE presente su questo campo. Questa proprietà può essere utilizzata per sapere quali filtri ha inserito l'utente; viene spesso utilizzata per impostare filtri QBE da Visual Code.
Sintassi
Pannello.Campo.QBEFilter := testo QBE
Quando letta
Restituisce una stringa che rappresenta il criterio di filtro QBE impostato dall'utente (o tramite Visual Code) su questo campo.
Quando impostata
Imposta un nuovo criterio QBE sul campo. Sarà utilizzato nella prossima fase di Find che avviene nel pannello.
Esempio di codice
// **************************************************
// Fired after changes in panel are saved to database
// **************************************************
event Fornitori.Filtri.AfterCommit(
int RowsUpdated // Number of rows inserted or updated
int RowsInErrors // Number of rows that cannot be updated due to database errors
)
{
// Cancello le eventuali modifiche apportate al pannello
Fornitori.UndoChanges()
//
// Vado in stato QBE
Fornitori.EnterQBEMode()
//
// Tolgo i criteri precedenti
Fornitori.UndoChanges()
//
// Imposto il nuovo criterio di filtro scritto dall'utente
Fornitori.NomeSocieta.QBEFilter := Filtri.NomeSocietà
//
// Eseguo la query
Fornitori.FindData()
}
// Fired after changes in panel are saved to database
// **************************************************
event Fornitori.Filtri.AfterCommit(
int RowsUpdated // Number of rows inserted or updated
int RowsInErrors // Number of rows that cannot be updated due to database errors
)
{
// Cancello le eventuali modifiche apportate al pannello
Fornitori.UndoChanges()
//
// Vado in stato QBE
Fornitori.EnterQBEMode()
//
// Tolgo i criteri precedenti
Fornitori.UndoChanges()
//
// Imposto il nuovo criterio di filtro scritto dall'utente
Fornitori.NomeSocieta.QBEFilter := Filtri.NomeSocietà
//
// Eseguo la query
Fornitori.FindData()
}
Il filtro QBE deve essere espresso con la sintassi normale dei filtri QBE che si può così riassumere:
-
Valore (ad esempio "abc"): se il campo è carattere allora verranno trovati tutti i record in cui il valore del campo comincia con il valore inserito; se il campo è data allora verranno trovati tutti i record per cui il valore del campo è compreso fra la mezzanotte del giorno indicato e la mezzanotte del giorno successivo (esclusa); se infine il campo è numerico allora verranno trovati i record per cui il valore del campo è esattamente quello indicato.
N.B. nel caso di campo carattere verrà effettuata una ricerca senza tenere conto delle maiuscole/minuscole; questo viene fatto utilizzando una funzione di conversione del database e può rendere più lenta la ricerca perchè può impedire all'ottimizzatore di query di utilizzare un indice. Per evitare questo è possibile impostare sul campo uno stile visuale che abbia come maschera ">" oppure "<": questo indica alll'applicazione che il campo conterrà sicuramente valori tutti maiuscoli o tutti minuscoli ed in questo caso non è più necessario l'uso della funzione di database. - Uguale Valore (ad esempio "=abc"): in questo caso verranno trovati tutti i record per cui il campo vale esattamente il valore indicato, indipendentemente dal tipo di campo.
- Maggiore Valore (ad esempio ">abc"): in questo caso verranno trovati tutti i record per cui il campo è maggiore o uguale al valore indicato.
- Minore Valore (ad esempio "<abc"): in questo caso verranno trovati tutti i record per cui il campo è minore o uguale al valore indicato.
- Diverso Valore (ad esempio "#abc"): in questo caso verranno trovati tutti i record per cui il campo è diverso dal valore indicato. Se il campo è carattere il significato del filtro è: tutto quelli che non cominciano per ...
- Vuoto (inserire "!"): in questo caso verranno trovati tutti i record per cui il campo è vuoto cioè vale "NULL".
- Non Vuoto (inserire "."): in questo caso verranno trovati tutti i record per cui il campo è non vuoto e quindi non vale "NULL".
- Sottostringa (ad esempio "*abc*"): se il campo è carattere è possibile utilizzare il carattere * oppure il carattere % per indicare il tipo di ricerca in sottostringa.
- Intervallo (ad esempio "10:50"): Indicando due valori separati da : verranno trovati tutti i record per cui il campo è compreso fra i valori indicati. Il primo valore deve essere inferiore al secondo.
- Criteri Multipli (ad esempio "10:50;>100"): E' possibile indicare più criteri di ricerca separati dal carattere ;. Essi saranno posti in OR sul campo indicato. Questo non è possibile se il primo carattere del filtro QBE è =. Nel caso il campo sia un DOC_ID il separatore da usare è ' ' (spazio).
Ultima modifica: 24/05/2024 / Validità: da 6.5.2680