Scopo
Questa procedura aggiunge ad un campo un intervallo personalizzato di valori su cui raggruppare; tutti i valori che cadranno dentro questo intervallo faranno parte di un solo gruppo, la cui intestazione sarà l'etichetta definita da questa procedura.
Sintassi
Pannello.AddGroupInterval(Campo, Minimo, Massimo, Etichetta)
Argomenti
| Campo | Intero che indica il campo a cui aggiungere l'intervallo, ottenibile attraverso la funzione Me dei campi di pannello. |
| Minimo | Estremo minimo dell'intervallo. |
| Massimo | Estremo massimo dell'intervallo. |
| Etichetta | Etichetta del gruppo che sarà mostrata nella sua intestazione. |
Valore di ritorno
Esempio di codice
// *********************************************************************
// Evento notificato alla videata al momento del caricamento in memoria.
// *********************************************************************
event Ordini.Load()
{
// Il pannello può ordinare e mostrare i gruppi
Ordini.canGroup = true
Ordini.showGroups = true
//
// Imposto i campi su cui ordinare
Ordini.addtoGroupList(Ordini.Idcliente.me(), true, Sfondogruppi)
Ordini.addtoGroupList(Ordini.DataOrdine.me(), true, Sfondogruppi)
//
// Imposto gli intervalli sulle date
Ordini.addGroupInterval(Ordini.DataOrdine.me(), #1/1/1970#, #31/12/1979#
, "Anni 70")
Ordini.addGroupInterval(Ordini.DataOrdine.me(), #1/1/1980#, #31/12/1989#
, "Anni 80")
Ordini.addGroupInterval(Ordini.DataOrdine.me(), #1/1/1990#, #31/12/1999#
, "Anni 90")
//
// Imposto la funzione di aggregazione
Ordini.setGroupFunction(Ordini.PaeseDestinatario.me(), Count, ...)
//
// Faccio caricare i dati
Ordini.findData()
//
// Aggiorno i raggruppamenti
Ordini.refreshGrouping()
//
// Mi memorizzo la posizione corrente
int rw = Ordini.activeRow
int ps = Ordini.actualPosition
//
// Posiziono il pannello sul primo ordine di Oggi
Ordini.findRecord(Ordini.DataOrdine.me(), today(), ...)
//
// Se è cambiata la posizione corrente significa che ho trovato il valore:
// espando il gruppo che lo contiene
if (rw != Ordini.activeRow || ps != Ordini.actualPosition)
{
Ordini.expandGroup(SelectedRow, true)
}
}
// Evento notificato alla videata al momento del caricamento in memoria.
// *********************************************************************
event Ordini.Load()
{
// Il pannello può ordinare e mostrare i gruppi
Ordini.canGroup = true
Ordini.showGroups = true
//
// Imposto i campi su cui ordinare
Ordini.addtoGroupList(Ordini.Idcliente.me(), true, Sfondogruppi)
Ordini.addtoGroupList(Ordini.DataOrdine.me(), true, Sfondogruppi)
//
// Imposto gli intervalli sulle date
Ordini.addGroupInterval(Ordini.DataOrdine.me(), #1/1/1970#, #31/12/1979#
, "Anni 70")
Ordini.addGroupInterval(Ordini.DataOrdine.me(), #1/1/1980#, #31/12/1989#
, "Anni 80")
Ordini.addGroupInterval(Ordini.DataOrdine.me(), #1/1/1990#, #31/12/1999#
, "Anni 90")
//
// Imposto la funzione di aggregazione
Ordini.setGroupFunction(Ordini.PaeseDestinatario.me(), Count, ...)
//
// Faccio caricare i dati
Ordini.findData()
//
// Aggiorno i raggruppamenti
Ordini.refreshGrouping()
//
// Mi memorizzo la posizione corrente
int rw = Ordini.activeRow
int ps = Ordini.actualPosition
//
// Posiziono il pannello sul primo ordine di Oggi
Ordini.findRecord(Ordini.DataOrdine.me(), today(), ...)
//
// Se è cambiata la posizione corrente significa che ho trovato il valore:
// espando il gruppo che lo contiene
if (rw != Ordini.activeRow || ps != Ordini.actualPosition)
{
Ordini.expandGroup(SelectedRow, true)
}
}
- I raggruppamenti sono utilizzabili solo in RD3.
Ultima modifica: 25/10/2016 / Validità: da 9.0.3940
procedura