Condizioni di notifica
Questo evento viene notificato dal pannello dopo aver recuperato i dati della master query. Questo può avvenire nelle seguenti condizioni:
- In tutte le condizioni indicate nell'evento BeforeFind, se tale evento non è stato cancellato e la query non ha causato un errore
- Dopo aver effettuato il refresh dei dati della master query, sia tramite il pulsante della toolbar del pannello, sia da programma.
- Quando il pannello si prepara per l'inserimento ed era in stato QBE (questo può avvenire sia tramite il pulsante della toolbar del pannello, sia da programma perchè per creare un recordset vuoto viene eseguita una query che non ritorna record).
Utilizzo consigliato
L'evento di AfterFind può essere utilizzato per aggiornare le parti dell'interfaccia utente che dipendono dal valore dei dati presenti nel pannello, come ad esempio dei totali oppure dei messaggi a video. Può anche essere utilizzato per selezionare in automatico delle righe oppure per impostare il valore delle colonne unbound.
Argomenti
Command | Questo argomento è stato introdotto a partire dalla versione 6.8.3060 e rappresenta il comando di pannello che ha causato la notifica dell'evento. Può valere Find, Insert, o Refresh. Vedi anche la lista valori PanelCommands per maggiori informazioni |
Note
- Quando scatta questo evento il pannello è già in stato DATA (l'eventuale evento di OnChangeStatus è scattato prima) e i dati sono già presenti nel pannello (anche l'evento di OnChangeRow è già scattato).
- All'interno di questo evento è possibile effettuare cicli sul recordset del pannello.
- In un pannello DO detail, collegato ad un pannello master, questo evento scatta quando il documento master cambia e bisogna agganciare questo pannello ad una diversa collection. E' quindi il posto giusto per riattivare la proprietà Lockable del pannello se si vuole che il lucchetto appaia anche sui pannelli DO secondari.
Valori del parametro Command
- Find: l'evento AfterFind è stato notificato a causa dell'esecuzione del comando FindData, ad esempio quando l'utente preme F3 dopo aver inserito i criteri di ricerca.
- Refresh: l'evento AfterFind è stato notificato a causa dell'esecuzione del comando RefreshQuery, ad esempio quando l'utente preme F6 mentre sta guardando i dati nel pannello.
- Insert: l'evento AfterFind è stato notificato a causa dell'esecuzione del comando InsertRow mentre il pannello è in stato QBE, ad esempio quando l'utente preme F7 invece che inserire i criteri di ricerca.
Esempio di codice
// *****************************
// Fired after a query operation
// *****************************
event Prodotti.Prodotti.AfterFind()
{
int i = 0 // Contatore per le righe del pannello
//
// Seleziono tutti i prodotti sotto scorta
for each row (Prodotti)
{
record p
...
//
i := i + ONE
//
// Se è sotto scorta...
if p.Scorte < p.LivelloDiRiordino
{
// Lo seleziono.
Prodotti.SetRowSelected(True, i)
}
}
}
// Fired after a query operation
// *****************************
event Prodotti.Prodotti.AfterFind()
{
int i = 0 // Contatore per le righe del pannello
//
// Seleziono tutti i prodotti sotto scorta
for each row (Prodotti)
{
record p
...
//
i := i + ONE
//
// Se è sotto scorta...
if p.Scorte < p.LivelloDiRiordino
{
// Lo seleziono.
Prodotti.SetRowSelected(True, i)
}
}
}
Ultima modifica: 23/03/2021 / Validità: da 6.5.2680