Calcolo dei totali e di altre aggregazioni (Generatore report 2.0)

In un'area dati Tablix è possibile visualizzare i totali di aggregazione di un gruppo, di un'area dati o di un set di dati del report. È possibile utilizzare l'aggregazione predefinita fornita dal comando Aggiungi totale e l'ambito predefinito. In alternativa, è possibile specificare una funzione di aggregazione diversa dalle funzioni predefinite o indicare un altro ambito.

Informazioni sul comando Aggiungi totale

Per visualizzare i totali complessivi e i subtotali del gruppo dell'area dati Tablix, utilizzare il comando del menu di scelta rapida Aggiungi totale. Tale comando è sensibile al contesto. Per una cella dell'area gruppo di righe, il comando Aggiungi totale consente di aggiungere automaticamente una riga all'esterno del gruppo dei totali. Per una cella dell'area gruppo di colonne, il comando Aggiungi totale consente di aggiungere automaticamente una colonna all'esterno del gruppo dei totali. Per una cella dell'area del corpo che contiene un'espressione campo numerica, il comando Aggiungi totale consente di scegliere se aggiungere un totale a una riga o una colonna. Per ulteriori informazioni sull'utilizzo del comando Aggiungi totale, vedere Procedura: Aggiunta di un totale a un gruppo o a un'area dati Tablix (Generatore report 2.0).

Per impostazione predefinita, il comando Aggiungi totale utilizza la funzione Sum. È tuttavia possibile impostare la funzione Sum su una funzione predefinita diversa ed eseguire un'aggregazione diversa per un ambito. È inoltre possibile scrivere espressioni personalizzate per calcolare i valori di aggregazione di un ambito rispetto a un altro. È ad esempio possibile calcolare la percentuale di un valore del gruppo rispetto al set di dati completo. Per ulteriori informazioni sull'utilizzo delle altre funzioni predefinite per l'esecuzione di aggregazioni, vedere Utilizzo delle funzioni predefinite di report e aggregazione nelle espressioni (Generatore report 2.0). Per l'elenco delle funzioni predefinite, vedere Utilizzo delle funzioni predefinite di report e aggregazione nelle espressioni (Generatore report 2.0).

Informazioni sull'ambito predefinito

Quando vengono eseguiti l'elaborazione e il rendering di un'area dati Tablix, Generatore report 2.0 consente di valutare il valore di ogni cella della Tablix nel contesto del relativo ambito. Quando una cella si trova in una riga associata a un gruppo di righe o di colonne, essa può appartenere a più gruppi. Si definisce ambito il set di gruppi al quale una cella appartiene, l'area dati o il set di dati per il quale un'espressione viene valutata. L'ambito predefinito è dato dal gruppo di righe e di colonne più interno a cui appartiene la cella. Indicatori visivi consentono di identificare i gruppi dei quali una cella selezionata è membro. Per ulteriori informazioni, vedere Informazioni su celle, righe e colonne dell'area dati Tablix (Generatore report 2.0).

Per un esempio di ambito predefinito, nella figura seguente vengono mostrati un gruppo di righe padre basato sulla data, un gruppo di righe figlio basato sull'ordine e un gruppo dettagli.

Visualizzazione Progettazione: totale complessivo in una tabella di base

Nella figura viene mostrata un'espressione in più righe per i campi Qty e LineTotal nelle celle del corpo della Tablix. Nell'elenco seguente viene descritto l'ambito predefinito per queste espressioni campo per ogni riga:

  • Riga 1. In questa riga vengono visualizzate le etichette delle colonne che contengono testo statico. L'ambito predefinito corrisponde all'area dati. La riga si ripete una volta e viene anche definita riga di intestazione.

  • Riga 2. In questa riga vengono visualizzati i dati dettaglio, indicati dall'handle di riga per i dettagli (Handle di riga con 3 linee parallele per la riga di dettaglio). L'ambito predefinito per [Qty] corrisponde al gruppo dettagli, ovvero ai dati del set di dati associato a questa area dati dopo l'applicazione di tutti i filtri del set di dati, dell'area dati e del gruppo. Questa riga si ripete una volta per ogni riga del set di risultati della query del set di dati. Il valore [Qty] visualizza i dati dettaglio del set di dati.

  • Riga 3. In questa riga vengono visualizzati i valori di aggregazione. L'ambito predefinito per [Sum(Qty)] è il gruppo di righe figlio Order. La riga si ripete una volta per ogni valore univoco del numero di ordine. Il valore [Sum(Qty)] visualizza la somma di aggregazione per ogni numero di ordine.

  • Riga 4. In questa riga vengono visualizzati i valori di aggregazione. L'ambito predefinito per [Sum(Qty)] è il gruppo di righe padre Date. La riga si ripete una volta per ogni specifico valore di data. Il valore [Sum(Qty)] visualizza la somma di aggregazione per ogni data.

  • Riga 5. In questa riga vengono visualizzati i valori di aggregazione. L'ambito predefinito per [Sum(Qty)] corrisponde all'area dati. La riga si ripete una volta e viene anche definita riga del piè di pagina. Il valore [Sum(Qty)] visualizza la somma di aggregazione per l'area dati.

Per ulteriori informazioni sul contesto e sull'ambito, vedere Utilizzo delle funzioni predefinite di report e aggregazione nelle espressioni (Generatore report 2.0). Per ulteriori informazioni sull'interpretazione degli indicatori visivi nelle aree dati Tablix, vedere Informazioni su celle, righe e colonne dell'area dati Tablix (Generatore report 2.0).

Specifica dei calcoli di aggregazione con ambiti denominati

Per specificare un ambito diverso da quello predefinito, indicare un ambito denominato. Un ambito denominato include il nome del set di dati, dell'area dati o del gruppo. Poiché le espressioni sono sensibili al contesto, l'ambito denominato specificato deve essere valido per la funzione predefinita. Ogni funzione predefinita specifica gli ambiti validi come parametro. Per ulteriori informazioni, vedere l'argomento di riferimento per le singole funzioni in Utilizzo delle funzioni predefinite di report e aggregazione nelle espressioni (Generatore report 2.0).

Per un esempio di impostazione dell'ambito predefinito su un ambito denominato, si supponga che un report presenti le strutture di dati seguenti:

  • Un set di dati del report denominato Sales.

  • Un'area dati della tabella denominata Tablix1 contenente i gruppi seguenti:

    • Un gruppo di righe padre denominato Category con un gruppo figlio denominato Subcat.

    • Un gruppo di colonne padre denominato Geography con un gruppo figlio denominato CountryRegion.

Nel caso di questo report il comando Aggiungi totale viene utilizzato per aggiungere i totali alle varie celle. Il report risultante potrebbe essere simile a quello della figura seguente.

Matrice, gruppi di righe e di colonne nidificati con totali

In questa figura è stata selezionata una delle celle. Per la cella selezionata, le parentesi quadre dell'indicatore del gruppo di colore arancione indicano le appartenenze ai gruppi più interni, ovvero Category e CountryRegion. Le appartenenze ai gruppi più interni determinano l'ambito predefinito per questa cella. Per la cella selezionata sono presenti anche altre due parentesi di colore grigio che mostrano il gruppo di righe Subcat e il gruppo di colonne Geography. I gruppi contrassegnati da una parentesi grigia sono gruppi esterni relativi al gruppo interno selezionato o non si trovano nell'ambito della cella selezionata.

La cella selezionata contiene l'espressione: [Sum(LineTotal)]. Sulla base dell'ambito e dell'espressione della cella, il valore della casella di testo del report visualizzabile verrà indicato come la somma di [LineTotal] per ogni valore Subcat specifico all'interno di ogni valore CountryRegion specifico.

Senza sostituire la funzione Sum nell'espressione, è possibile modificare l'ambito di questa cella nei modi seguenti:

  • Modificare l'ambito nel set di dati Sales.   Per specificare il totale del set di dati, è ad esempio possibile modificare l'espressione in =Sum(Fields!LineTotal.Value, "Sales").

  • Modificare l'ambito in modo che corrisponda all'intera area dati Tablix1.   Per calcolare la percentuale con cui un gruppo contribuisce all'area dati totale, è ad esempio possibile modificare l'espressione in =Sum(Fields!LineTotal.Value)/Sum((Fields! LineTotal.Value),"Tablix1").

    In questa nuova espressione il numeratore Sum(Fields! LineTotal.Value) è la somma dei totali delle righe per ogni categoria. Il denominatore Sum((Fields! LineTotal.Value), "Tablix1") è la somma dei totali delle righe per l'area dati. Il risultato corrisponde alla percentuale dell'area dati totale rappresentata da ogni categoria.

    Nella cella selezionata è possibile specificare uno degli ambiti di gruppo seguenti per la funzione Sum: CountryRegion, Geography o Category. Non è possibile specificare l'ambito del gruppo Subcat, perché la cella non si trova in una riga associata a tale gruppo.

    [!NOTA]

    È possibile specificare un solo ambito per una funzione di aggregazione. Non è possibile specificare contemporaneamente "Category" e "Geography" come ambiti per l'espressione del denominatore. Non è consentito specificare più ambiti.

Per l'elenco delle funzioni predefinite, vedere Utilizzo delle funzioni predefinite di report e aggregazione nelle espressioni (Generatore report 2.0).

Esempi di specifica di ambiti diversi

Nella tabella seguente sono forniti esempi di espressioni in cui vengono utilizzati l'ambito predefinito, l'ambito dell'area dati e l'ambito del set di dati. Gli esempi presuppongono la presenza di un'area dati Tablix denominata "Tablix1" e di un set di dati "Sales" con un campo denominato "LineTotal" contenente il totale per una voce di un ordine di vendita.

Descrizione

Espressione

Somma dei totali delle voci per l'ambito corrente.

=Sum(Field!LineTotal.Value)

Percentuale della (somma dei totali delle voci per l'ambito corrente)/(somma dei totali delle righe per l'area dati).

A questo valore viene applicato il formato di visualizzazione predefinito per la casella di testo.

=Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Tablix1")

Se presente in una riga associata al gruppo CountryRegion:

Percentuale della (somma dei totali delle voci per il gruppo CountryRegion)/(somma dei totali delle righe per il gruppo Geography).

A questo valore viene applicato il formato di visualizzazione predefinito per la casella di testo che deve essere impostato su P1 nel caso corrisponda a #, #%.

=Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Geography")

Percentuale della (somma dei totali delle voci per l'ambito corrente)/(somma dei totali delle righe per l'area dati).

Questo valore viene formattato utilizzando IIF in modo che il risultato sia vuoto in assenza di totali delle voci nel gruppo corrente.

=IIF(Sum(Field!LineTotal.Value)<=0,"", FormatPercent(Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Tablix1"),1)

Percentuale della (somma dei totali delle voci per l'ambito corrente)/(somma dei totali delle voci per il set di dati).

Questo valore viene formattato utilizzando FormatPercent che specifica una posizione decimale.

="Percentage contributing to all sales: " & FormatPercent(Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Sales"),1)

Eliminazione di valori Null o zero in una cella

Per diversi report i calcoli che presentano i gruppi come ambito possono generare più celle con valori zero (0) o Null. Per evitare disordine nel report, aggiungere un'espressione che consenta di restituire spazi laddove il valore di aggregazione è uguale a 0. Per ulteriori informazioni, vedere la sezione relativa agli esempi di eliminazione dei valori Null o zero in Esempi di espressione (Generatore report 2.0).