Condizioni di notifica
Questo evento viene notificato dal pannello all'inizio della fase di salvataggio dei dati. Questo può avvenire se:
- L'utente preme il tasto Salva nella toolbar del pannello.
- Il programma esegue il comando UpdateData del pannello.
- Il pannello si trova in stato Auto Save, sono stati modificati i dati nel pannello e la validazione ha avuto esito positivo.
Utilizzo consigliato
L'evento di BeforeCommit può essere utilizzato per verificare se effettivamente i dati possono essere salvati e in caso negativo abortire il salvataggio impostando il parametro Cancel a True.
Può anche essere utilizzato in pannelli su database per gestire in un'unica transazione le modifiche che avvengono nel pannello.
Argomenti
Cancel | Se impostato a True, cancella il salvataggio dei dati. |
Esempio di codice
// ***************************************************
// Fired before changes in panel are saved to database
// ***************************************************
event DettagliOrdini.DettagliOrdini.BeforeCommit(
inout boolean Cancel // When set to TRUE, abort deletion
)
{
// Se la quantità dell'ordine è troppo elevata, non salvo
if DettagliOrdini.Quantita.Sum() > C1000
{
Cancel := True
DettagliOrdini.SetInfoMessage(ERROR, MSG Quantità Troppo Elevata, ??)
}
}
// Fired before changes in panel are saved to database
// ***************************************************
event DettagliOrdini.DettagliOrdini.BeforeCommit(
inout boolean Cancel // When set to TRUE, abort deletion
)
{
// Se la quantità dell'ordine è troppo elevata, non salvo
if DettagliOrdini.Quantita.Sum() > C1000
{
Cancel := True
DettagliOrdini.SetInfoMessage(ERROR, MSG Quantità Troppo Elevata, ??)
}
}
- Questo evento non si riferisce ad una particolare riga del pannello, ma al salvataggio dell'intero pannello nel suo complesso. Non è quindi di solito utile fare riferimento ai dati della tabella IMDB sottesa.
- Nei pannelli basati su documenti è consigliabile controllare il salvataggio attraverso gli eventi di salvataggio del documento stesso invece che con gli eventi del pannello.
- In caso di cancellazione di una riga scattano solo gli eventi BeforeDelete e AfterDelete.
Ultima modifica: 23/03/2021 / Validità: da 6.5.2680