Condizioni di notifica
Questo evento viene notificato al documento quando un sotto-documento è stato effettivamente rimosso da una delle sue collection. L'evento è congelabile quindi non viene notificato durante la fase di Load e se la proprietà FreezeEvents è True.
Utilizzo consigliato
Questo evento può essere utilizzato per aggiornare lo stato del documento al variare della sua struttura. Ad esempio è possibile aggiornare il totale dell'ordine quando vengono tolte delle righe.
Argomenti
Collection | Indica da quale Collection l'oggetto è stato rimosso. E' un parametro di tipo IDCollection uguale ad una delle collection del documento a cui viene notificato l'evento. |
New Child | Parametro di tipo IDDocument che rappresenta il documento tolto dalla collection. |
Esempio di codice
// ***********************************************************************************
// Fired when a child document is removed from a collection. This event can be frozen.
// ***********************************************************************************
event Ordine.OnRemoveChild(
IDCollection Collection // Collection where the child was removed
IDDocument Removed Child //
)
{
// Se tolgo una riga, allora ricalcolo il totale
if Collection IS RigheOrdini
{
this.AggiornaTotale()
}
}
// *************************
// Aggiorna il totale ordine
// *************************
public void Ordine.AggiornaTotale()
{
Totale := ZERO
//
// Ciclo sulle righe per calcolare il totale
for each row (RigheOrdini)
{
record ro
RigaOrdine ro //
//
Totale := Totale + ro.Quantita * ro.PrezzoUnitario
}
}
// Fired when a child document is removed from a collection. This event can be frozen.
// ***********************************************************************************
event Ordine.OnRemoveChild(
IDCollection Collection // Collection where the child was removed
IDDocument Removed Child //
)
{
// Se tolgo una riga, allora ricalcolo il totale
if Collection IS RigheOrdini
{
this.AggiornaTotale()
}
}
// *************************
// Aggiorna il totale ordine
// *************************
public void Ordine.AggiornaTotale()
{
Totale := ZERO
//
// Ciclo sulle righe per calcolare il totale
for each row (RigheOrdini)
{
record ro
RigaOrdine ro //
//
Totale := Totale + ro.Quantita * ro.PrezzoUnitario
}
}
- Siccome l'evento è congelabile, occorre tenere conto che potrebbe non essere notificato al documento che perde il sotto-documento.
- Se si cancella un documento da un pannello DO, il documento entra in stato Deleted ma non viene tolto subito dalla Collection. Sarà tolto solo dopo il salvataggio del documento sul database.
Ultima modifica: 23/03/2021 / Validità: da 6.5.2680