Scopo
Questa procedura espande o collassa dei gruppi.
Sono definite due tipi di granularità per l'espansione: o tutti i gruppi oppure tutti i gruppi che contengono la riga attualmente selezionata.
Questo permette di rendere visibile o nascondere la riga su cui il pannello è posizionato al momento della chiamata di questa procedura.
Sintassi
Pannello.ExpandGroup(Granularità, Espansione)
Argomenti
| Granularità | Tipo di espansione da effettuare, deve essere un valore contenuto nella lista valori GroupExpansionType. |
| Espansione | Valore booleano, True per espandere e False per collassare. |
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 abilitati solo in RD3.
- Collassare i gruppi che contengono la riga attuale implica che vengono collassati tutti i gruppi che la contengono (dal primo all'ultimo), e non solo l'ultimo sottogruppo che lo contiene.
- La chiamata a questa procedura scatena l'evento di OnExpandingGroup.
- Dopo aver chiamato la funzione con i parametri All e True è necessario impostare l'ActualPosition del pannello a 1.
Ultima modifica: 28/03/2019 / Validità: da 9.0.3940
procedura