English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Pannelli
  • Libreria Pannello
  • Eventi

On Command

evento copia link

Condizioni di notifica

Evento notificato dal pannello prima di eseguire un comando di pannello. Questo può avvenire quando:

  • L'utente preme il relativo bottone nella toolbar del pannello.
  • Il programma esegue l'istruzione relativa ad un comando di pannello.

Utilizzo consigliato

L'evento di OnCommand può essere utilizzato per intercettare i comandi inviati al pannello e sostituirli od integrarli con proprie procedure.

Il comando notificato dall'evento può essere cancellato impostando il parametro Cancel, quindi è possibile utilizzare questo evento per verificare che ci siano tutte le condizioni per poter eseguire tale comando.

Argomenti

Command E' un numero intero che rappresenta il comando che sta per essere eseguito. Deve essere confrontato con uno dei valori della lista valori PanelCommands.
Cancel Può essere impostato a True per cancellare il comando.
User Operation E' un valore booleano che vale True se l'evento è stato notificato perché l'utente ha cliccato un bottone della toolbar del pannello, False se l'evento è stato notificato a seguito di una chiamata da codice di una delle procedure del pannello. Tale parametro è stato introdotto a partire dalla versione 7.1.3300.

Esempio di codice

// ***************************************************
// Fired when a panel command is about to be executed.
// ***************************************************

event Prodotti.Prodotti.OnCommand(
  int Command          // Command issued
  inout boolean Cancel // Set to TRUE to cancel the command
)
{
  // Se voglio duplicare un prodotto...
  if Command = Duplicate
  {
    // Evito che il pannello esegua lui il comando
    Cancel := True
    // 
    // E lo sostituisco con la mia procedura

    this.DuplicaProdotto(Prodotti.IdProdotto)
  }
}
  • Se durante l'esecuzione di questo evento vengono inviati ulteriori comandi al pannello, è possibile che si creino le condizioni per un loop infinito. Se il caso, utilizzate delle variabili "semaforo" globali alla videata.
  • Come al solito durante questo evento i dati della riga attiva possono essere letti dalla tabella IMDB sottesa al pannello.

Ultima modifica: 23/03/2021 / Validità: da 6.5.2680

Vedi Anche

  • Comandi
  • Panel Commands (lista valori)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum