| dalla versione 6.5.2680 - modificato il 28/01/2011 - link - english
|
Condizioni di notifica
Durante il ciclo di salvataggio dei dati, per ogni nuova riga inserita dall'utente viene notificato l'evento di
BeforeInsert prima che i dati vengano inseriti nel database. Dopo l'inserimento viene notificato l'evento di
AfterInsert.
Utilizzo consigliato
L'evento di
BeforeInsert può essere utilizzato per:
- Modificare i dati che verranno inseriti nel database, impostando i valori nella tabella IMDB sottesa al pannello.
- Utilizzare una propria procedura di salvataggio al posto di quella standard impostando il parametro Cancel a True.
- Saltare l'inserimento di una determinata riga impostando il parametro Cancel a True.
- Preparare l'inserimento della riga eseguendo delle operazioni preliminari. E' possibile leggere la tabella IMDB sottesa al pannello per sapere quali sono i dati in fase di aggiornamento.
Argomenti
Cancel
|
Se impostato a True non effettua l'inserimento dei dati di questa riga. La fase di salvataggio delle altre righe prosegue normalmente.
|
Note
- Normalmente questo evento non deve essere utilizzato per effettuare le validazioni: è meglio usare gli eventi OnUpdatingRow e BeforeCommit per questo.
- Nei pannelli basati su documenti, la gestione del ciclo di salvataggio deve essere eseguita tramite gli eventi del documento e non del pannello.
- Attenzione: Non utilizzare all'interno di questo evento funzioni che modificano il set di dati come RefreshQuery o UpdateData perchè possono creare malfunzionamenti o cicli infiniti.
>
- Questo evento scatta anche se il pannello registra i dati su una tabella in memoria o su un documento.
event DettagliOrdini.DettagliOrdini.BeforeInsert(
inout boolean Cancel
)
{
if NullValue(DettagliOrdini.PrezzoUnitarioDettagliOrdini, ZERO) = ZERO
{
currency PrezzoUnitarioProdotto = 0
select into variables
set PrezzoUnitarioProdotto := PrezzoUnitario
from
Prodotti
where
Id = DettagliOrdini.IdProdottoProdotto
DettagliOrdini.PrezzoUnitarioDettagliOrdini := PrezzoUnitarioProdotto
}
}
Cosa ne pensi?
Ti sono rimaste delle domande su punti che questo articolo non ha trattato? Pensi che sia utile aggiungere una nota all'articolo? Aiutaci a migliorare la documentazione di Instant Developer scrivendo il tuo commento nei campi qui sotto.