Scopo
Questa funzione posiziona il pannello sulla prima riga i cui valori corrispondono a quelli forniti come parametri. La ricerca viene effettuata scorrendo i record mostrati dal pannello e confrontando i valori dei campi indicati con i corrispondenti valori forniti alla procedura stessa. Qualora non venga trovata nessuna riga che soddisfa i criteri di ricerca forniti, il pannello conserva la posizione attiva al momento della chiamata alla funzione.
Sintassi
Pannello.FindRecord(campo1, valore1, campo2, valore2, campo3, valore3,
campo4, valore4, campo5, valore5)
campo4, valore4, campo5, valore5)
Argomenti
Campo1 | E' un numero intero che indica da quale campo del pannello occorre estrarre il valore da confrontare con il parametro Valore1. Utilizzare la funzione Me dei campi di pannello per fornire tale valore |
Valore1 | Rappresenta il valore che viene cercato tra le righe del pannello per il campo identificato dal parametro Campo1. |
Campo2 | E' un numero intero che indica da quale campo del pannello occorre estrarre il valore da confrontare con il parametro Valore2. |
Valore2 | Rappresenta il valore che viene cercato tra le righe del pannello per il campo identificato dal parametro Campo2. |
Campo3 | E' un numero intero che indica da quale campo del pannello occorre estrarre il valore da confrontare con il parametro Valore3. |
Valore3 | Rappresenta il valore che viene cercato tra le righe del pannello per il campo identificato dal parametro Campo3. |
Campo4 | E' un numero intero che indica da quale campo del pannello occorre estrarre il valore da confrontare con il parametro Valore4. |
Valore4 | Rappresenta il valore che viene cercato tra le righe del pannello per il campo identificato dal parametro Campo4. |
Campo5 | E' un numero intero che indica da quale campo del pannello occorre estrarre il valore da confrontare con il parametro Valore5. |
Valore5 | Rappresenta il valore che viene cercato tra le righe del pannello per il campo identificato dal parametro Campo5. |
Esempio di codice
// **********************************************
// Posiziona il pannello sulla categoria con ID=7
// **********************************************
public void Categorie.Categoria7()
{
// Cerco la categoria con ID uguale a 7
Categorie.FindRecord(Categorie.Idcategoria.Me(), C7, ??, ??, ??, ??,
??, ??, ??, ??)
}
// Posiziona il pannello sulla categoria con ID=7
// **********************************************
public void Categorie.Categoria7()
{
// Cerco la categoria con ID uguale a 7
Categorie.FindRecord(Categorie.Idcategoria.Me(), C7, ??, ??, ??, ??,
??, ??, ??, ??)
}
- Non è necessario specificare tutti i valori. E' possibile, per esempio, cercare un solo valore specificando solo i parametri Campo1 e Valore1. E' importante, però, specificare i campi a due a due.
- Normalmente la funzione viene utilizzata nell'evento AfterFind del pannello per posizionarsi su una particolare riga di interesse per l'utente. In alternativa può essere utilizzata anche nell'evento AfterCommit per posizionare il pannello su una determinata riga inserita o modificata. Per esempio potrebbe essere utile per posizionare il pannello su una riga appena inserta dall'utente qualora il pannello sia dotato di un proprio ordinamento e sia necessario effettuare la rilettura dei dati tramite la procedura RefreshQuery. In tal caso, infatti, la riga verrebbe automaticamente ordinata con le altre e l'utente potrebbe trovarsi confuso dato che, dopo il salvataggio, non vedrebbe più la riga appena inserita.
- Il confronto tra campi viene effettuato controllando che il valore del campo sia uguale al valore fornito al corrispondente parametro. Non vengono gestiti criteri di ricerca QBE.
- Dalla versione 12.5 questa procedura è stata trasformata in funzione (con la possibilità di usarla come procedura) e restituisce un intero con il numero della riga su cui è stato posizionato il pannello, oppure 0 qualora non siano state trovate corrispondenze rispetto ai criteri di ricerca specificati.
-
Nei temi Bootstrap questa funzione non è completamente supportata, in quanto il tema richiede che l'actualPosition sia sempre 1.
Per posizionare un pannello Bootstrap su una riga della lista è necessario il seguente codice:
int = Pannello.findRecord( Campo1 , Valore1 , ... ) // // Calcolo la nuova dimensione della finestra (serve per far funzionare correttamente lo scroll, viene fatto in base alla dimensione // della finestra impostando le righe dinamiche), poi posiziono il pannello alla prima riga e attivo la riga che voglio selezionare float newWindow = ceil(( toFloat(i) / 30 )) Pannello.setDynamicRows( newWindow * 30 , ... ) Pannello.actualPosition = 1 Pannello.activeRow = i - 1
Ultima modifica: 06/04/2022 / Validità: da 8.0.3560