Scopo
Questa funzione calcola la somma dei valori del campo presenti nel set di dati del pannello. E' in grado di calcolare correttamente anche le eventuali righe modificate dall'utente ma non ancora confermate ed è quindi il modo più semplice di calcolare il totale di una colonna in fase di modifica.
Sintassi
decimal Somma = 0
//
Somma := Pannello.Campo.Sum()
//
Somma := Pannello.Campo.Sum()
Argomenti
Questa funzione non ha argomenti.Valore di ritorno
Viene ritornato un numero intero, decimale o float che rappresenta la somma dei valori del campo presenti nel set di dati del pannello oppure presenti nelle righe in fase di inserimento. Il tipo di valore ritornato dipende dal tipo dei valori presenti nel campo del pannello.
Esempio di codice
// ***********************************
// Fired when the panel changes status
// ***********************************
event Prodotti1.Prodotti.OnChangeStatus(
int OldStatus //
)
{
// Mostro lo stato del pannello esplicitamente
Prodotti.StatoPannello.Caption := Stato Pannello +c Decode(Prodotti.Status(),
PanelStatus)
//
// Mostro la somma dei prodotti solo se non sono in stato
// inserimento criteri di ricerca
Prodotti.Somma.SetVisible(Prodotti.Status() <> QBE)
//
// Aggiorno il conteggio delle scorte.
// Deve essere fatto anche nell'evento di AfterFind e OnUpdatingRow
Prodotti.Somma.Caption := ToString(Prodotti.Scorte.Sum())
//
// Pulisco i campi Where Clause
Prodotti.WH.Caption := Empty String
Prodotti.SWH.Caption := Empty String
}
// Fired when the panel changes status
// ***********************************
event Prodotti1.Prodotti.OnChangeStatus(
int OldStatus //
)
{
// Mostro lo stato del pannello esplicitamente
Prodotti.StatoPannello.Caption := Stato Pannello +c Decode(Prodotti.Status(),
PanelStatus)
//
// Mostro la somma dei prodotti solo se non sono in stato
// inserimento criteri di ricerca
Prodotti.Somma.SetVisible(Prodotti.Status() <> QBE)
//
// Aggiorno il conteggio delle scorte.
// Deve essere fatto anche nell'evento di AfterFind e OnUpdatingRow
Prodotti.Somma.Caption := ToString(Prodotti.Scorte.Sum())
//
// Pulisco i campi Where Clause
Prodotti.WH.Caption := Empty String
Prodotti.SWH.Caption := Empty String
}
- La funzione Sum funziona in modo indifferente dal tipo di set di dati presente nel pannello (DB, IMDB, DO).
- Se il campo non è numerico, il pannello è in stato QBE, nessun dato è presente nel pannello oppure il campo non appartiene alla master query allora viene ritornato un valore nullo.
Ultima modifica: 23/03/2021 / Validità: da 6.5.2680