English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Pannelli
  • Libreria Pannello
  • Selezione Multipla

On Change Selection

evento copia link

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)
  }
}
  • 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

Vedi Anche

  • Selected (proprietà)
  • Set Row Selected (procedura)
  • Validating Row (funzione)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum