English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Pannelli
  • Libreria Pannello
  • Raggruppamenti

Set Group Function

procedura copia link

Scopo

Questa funzione assegna ad un campo una funzione di aggregazione; questa funzione verrà calcolata sui valori del campo appartenenti ad ogni gruppo e il risultato verrà mostrato nell'intestazione del gruppo in corrispondenza del campo.

Sintassi

Pannello.SetGroupFunction(Campo, Funzione, Etichetta)

Argomenti

Campo Campo di cui calcolare la funzione di aggregazione e in cui mostrare il risultato.
Funzione Funzione di aggregazione da mostrare, contenuta nella lista valori GroupingFunctions.
Etichetta Etichetta che verrà mostrata prima del risultato della funzione di aggregazione. Se non specificata verrà utilizzata una etichetta predefinita in base all'aggregazione scelta.

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)
  }
}
  • I raggruppamenti sono disponibili solo in RD3.
  • Se l'etichetta non è definita verrà utilizzata quella predefinita per il tipo di aggregazione scelto.
  • E' sufficiente assegnare come etichetta la stringa vuota per mostrare solo il risultato dell'aggregazione.

Ultima modifica: 25/10/2016 / Validità: da 9.0.3940

Vedi Anche

  • Grouping Functions (lista valori)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum