Condizioni di notifica
Questo evento viene notificato da un pannello con multi-selezione attiva quando l'insieme delle righe selezionate cambia. Questo può avvenire quando:
- L'utente seleziona o deselezione una o più righe del pannello.
- Il programma modifica l'insieme delle righe selezionate utilizzando la funzione SetRowSelected.
Utilizzo consigliato
Questo evento può essere utilizzato per aggiornare le parti dell'interfaccia utente che dipendono dall'insieme delle righe selezionate. Ad esempio è possibile calcolare il numero di righe selezionate o un totale relativo alle stesse.
Siccome questo evento è cancellabile, è anche possibile evitare che la selezione cambi in modi non desiderati.
Argomenti
| Selected | E' un valore booleano che vale True se la riga per cui viene chiamato l'evento è stata selezionata. I dati della riga per cui viene chiamato l'evento sono disponibili, come al solito, nella tabella IMDB sottesa al pannello. |
| Final | Questo evento viene chiamato per ogni riga per cui cambia lo stato di selezionato, più una volta al termine dell'operazione. Durante quest'ultima chiamata il parametro Final vale True. |
| Cancel | Può essere impostato a True per evitare il cambio di selezione (vale solo se Final = false). |
Esempio di codice
// ********************************************************************
// Fired when a user selects a row using the Multiple Selection feature
// ********************************************************************
event Prodotti.Prodotti.OnChangeSelection(
boolean Selected // True if the row has been selected
boolean Final //
inout boolean Cancel // Set to TRUE to cancel the selection
)
{
int i = 1 // Per ciclare sulle righe
int s = 0 // Per sommare le scorte
//
// Al termine del cambio di selezione, posso conteggiare le quantità
if Final
{
// Ciclo su tutti i prodotti e vedo quelli selezionati...
for each row (Prodotti)
{
record Prodotto
...
//
if Prodotti.IsRowSelected(i)
{
s := s + Prodotto.Scorte
}
i := i + ONE
}
Prodotti.LabelTotale.Caption := MSG Scorta Prodotti +c ToString(s)
}
}
// Fired when a user selects a row using the Multiple Selection feature
// ********************************************************************
event Prodotti.Prodotti.OnChangeSelection(
boolean Selected // True if the row has been selected
boolean Final //
inout boolean Cancel // Set to TRUE to cancel the selection
)
{
int i = 1 // Per ciclare sulle righe
int s = 0 // Per sommare le scorte
//
// Al termine del cambio di selezione, posso conteggiare le quantità
if Final
{
// Ciclo su tutti i prodotti e vedo quelli selezionati...
for each row (Prodotti)
{
record Prodotto
...
//
if Prodotti.IsRowSelected(i)
{
s := s + Prodotto.Scorte
}
i := i + ONE
}
Prodotti.LabelTotale.Caption := MSG Scorta Prodotti +c ToString(s)
}
}
- L'evento viene notificato una volta per ogni riga che è stata selezionata o deselezionata, più una volta al termine della modifica della selezione. Quest'ultima fase può essere usata per ricalcolare i totali o agire sull'intera selezione.
- Siccome l'evento è cancellabile, esso viene notificato prima che lo stato di selezionato della riga cambi. In questo senso, se il pannello è DO, la proprietà Selected del documento relativo alla riga per cui viene chiamato l'evento non è ancora cambiata, ma lo sarà solo alla fine della gestione dell'evento se non viene impostato il parametro Cancel.
- Dalla versione 9.5 è possibile conoscere la riga per cui è stata cambiata la selezione tramite la funzione ValidatingRow.
Ultima modifica: 23/03/2021 / Validità: da 6.5.2680
evento