Share via


Utilizzo delle funzioni predefinite di report e aggregazione nelle espressioni (Reporting Services)

In Reporting Services sono disponibili funzioni predefinite da utilizzare nelle espressioni per calcolare dati di aggregazione in set di dati, aree dati e gruppi, nonché per recuperare altri valori di dati, ad esempio il primo o l'ultimo valore in una pagina di report. La funzione di aggregazione predefinita per i campi numerici è SUM. Nella finestra di dialogo Espressione selezionare la categoria Aggregazione in Funzioni comuni per scegliere una funzione diversa.

Quando i dati e il layout del report vengono combinati in fase di esecuzione, il componente Elaborazione report determina l'ambito predefinito per ogni riferimento a una funzione in un'espressione. L'ambito predefinito può essere un set di dati, un'area dati, un gruppo Tablix (padre, figlio, adiacente o ricorsivo), l'intersezione di un gruppo di righe e colonne Tablix o un gruppo di grafici (serie, categoria, valore). Per la maggior parte delle funzioni, è anche possibile specificare un ambito nella chiamata alla funzione diverso da quello predefinito. Per determinare gli ambiti validi per una funzione, vedere l'argomento di riferimento delle singole funzioni. Per alcuni esempi, vedere Calcolo dei totali e di altre aggregazioni (Reporting Services).

Nella tabella seguente sono elencate le categorie di funzioni predefinite supportate in Reporting Services:

  • Calcolo di aggregazioni

  • Calcolo dei valori correnti

  • Recupero di conteggi delle righe

  • Recupero di valori dipendenti dall'ordinamento

  • Recupero di aggregazioni server

  • Recupero del livello ricorsivo

  • Test dell'ambito

Informazioni sull'ambito

In Reporting Services il termine ambito può specificare concetti differenti a seconda del contesto. Tali concetti vengono descritti nell'elenco seguente:

  • Ambito per gli elementi del report nell'elaborazione del report. Quando i dati e il layout del report vengono combinati in fase di esecuzione, viene elaborato ogni elemento del report. Un'area dati Tablix viene elaborata dall'esterno fino a set sempre più restrittivi di dati durante l'elaborazione di gruppi di righe e di colonne Tablix. In questo senso, un gruppo è contenuto in un'area dati. Un gruppo figlio e i relativi elementi di pari livello sono contenuti nel gruppo padre. Un elemento Toggle per un gruppo deve, ad esempio, essere una casella di testo nello stesso ambito del gruppo o in qualsiasi ambito del gruppo contenitore. Per ulteriori informazioni, vedere Informazioni sugli ambiti contenitore più avanti in questo argomento.

  • Ambito delle funzioni di aggregazione Il componente Elaborazione report valuta ogni espressione di aggregazione in un ambito denominato o nell'ambito predefinito, come descritto nell'elenco seguente:

    • Un ambito denominato può essere il nome di un set di dati, un'area dati o un gruppo.

    • L'ambito predefinito dipende dalla proprietà dell'elemento del report valutata dal componente Elaborazione report. Ad esempio, l'ambito predefinito per una cella Tablix in un'area dati con gruppi di righe e colonne corrisponde al gruppo di righe e di colonne più interno a cui appartiene la cella. L'ambito predefinito per una cella di una tabella senza gruppi corrisponde al gruppo dei dettagli. Nell'area di progettazione un'area dati Tablix fornisce elementi visivi che è possibile utilizzare per determinare gli ambiti disponibili di una cella. Le barre di gruppo vengono visualizzate sopra e accanto all'area dati Tablix per indicare quali righe o colonne appartengono a un gruppo. Quando una cella è selezionata, gli indicatori di gruppo mostrano i gruppi attivi più interni a cui appartiene. Per ulteriori informazioni, vedere Utilizzo delle aree dati Tablix.

      Per una casella di testo nell'area di progettazione non esiste alcun ambito predefinito. È necessario specificare il nome del set di dati da utilizzare, ad esempio =First(Fields!Sales.Value,"Dataset1").

      Quando si chiama una funzione predefinita e si specifica un ambito denominato, controllare il riferimento alla funzione per determinare quali ambiti sono validi. Per Sum è, ad esempio, possibile specificare l'ambito predefinito o un ambito contenitore.

Informazioni sugli ambiti contenitore

Di seguito è elencato l'ordine di contenuto degli ambiti a partire dal più esterno (superiore) fino al più interno (inferiore) e vengono descritti i dati che rappresentano:

  • Set di dati del report   Specifica il set di dati del report collegato all'area dati o a un elemento nel corpo del report. I dati utilizzati per l'aggregazione provengono dal set di dati del report dopo l'applicazione delle espressioni di filtro del set di dati.

  • Area dati   Specifica i dati provenienti dall'area dati dopo l'applicazione delle espressioni di filtro e di ordinamento dell'area dati. I filtri di gruppo non vengono utilizzati per il calcolo delle aggregazioni per le aree dati.

  • Gruppi di righe e colonne   Specificano i dati dopo l'applicazione delle espressioni di raggruppamento e dei filtri di gruppo per il gruppo padre e i gruppi figlio. Ai fini dell'identificazione degli ambiti contenitore, ogni gruppo padre contiene i relativi gruppi figlio.

  • Aree dati nidificate   Specificano i dati per l'area dati nidificata nel contesto della cella in cui sono stati aggiunti e dopo l'applicazione delle espressioni di filtro e di ordinamento dell'area dati nidificata.

  • Gruppi di righe e colonne per le aree dati nidificate   Specificano i dati dopo l'applicazione delle espressioni di raggruppamento e dei filtri di gruppo dell'area dati nidificata.

Quando una funzione predefinita dichiara che è necessario specificare l'ambito corrente o un ambito contenitore, non è possibile specificare un ambito che si trova a un livello uguale o inferiore rispetto all'ambito corrente nell'ordine di contenitori. Ad esempio, da una riga di un gruppo di righe che include un gruppo figlio, non è possibile specificare come ambito il nome del gruppo figlio né quello un gruppo di righe di pari livello. È necessario utilizzare l'ambito predefinito o specificare un ambito di livello più elevato nell'ordine di contenitori.

[!NOTA]

Non è possibile aggregare valori di un gruppo di righe e un gruppo di colonne in un'unica espressione. Non è possibile scrivere un'espressione che include un'aggregazione con un ambito di gruppo di righe e un'altra aggregazione con un ambito di gruppo di colonne.

Espressioni di filtro

Le espressioni di filtro di set di dati e aree dati non possono contenere funzioni di aggregazione. I filtri di gruppo vengono ignorati quando si calcolano le aggregazioni per le aree dati.

Calcolo di aggregazioni

Le funzioni predefinite seguenti calcolano i valori di riepilogo relativi a un set di dati numerici non Null nell'ambito predefinito o nell'ambito denominato. Tutti i dati utilizzati per un calcolo di aggregazione devono essere dello stesso tipo. Per convertire dati con più tipi di dati numerici nello stesso tipo di dati, utilizzare funzioni di conversione come CInt, CDbl o CDec. Per ulteriori informazioni, vedere Funzioni di conversione del tipo.

Per utilizzare queste funzioni per calcolare i riepiloghi relativi a un gruppo di gerarchie ricorsive, è necessario specificare il parametro Recursive.

Funzione

Descrizione

Avg

Restituisce la media di tutti i valori numerici non Null specificati dall'espressione, valutata nell'ambito specificato.

Count

Restituisce il conteggio dei valori non Null specificati dall'espressione, valutato nel contesto dell'ambito specificato.

CountDistinct

Restituisce un conteggio di tutti i distinti valori non Null specificati dall'espressione, valutato nel contesto dell'ambito specificato.

Max

Restituisce il valore massimo di tutti i valori numerici non Null specificati dall'espressione, nel contesto dell'ambito specificato. È possibile utilizzare questa funzione per specificare il valore massimo di un asse del grafico per controllare la scala.

Min

Restituisce il valore minimo di tutti i valori numerici non Null specificati dall'espressione, nel contesto dell'ambito specificato. È possibile utilizzare questa funzione per specificare il valore minimo di un asse del grafico per controllare la scala.

StDev

Restituisce la deviazione standard di tutti i valori numerici non Null specificati dall'espressione, valutata nell'ambito specificato.

StDevP

Restituisce la deviazione standard di popolazione di tutti i valori numerici non Null specificati dall'espressione, valutata nell'ambito specificato.

Sum

Restituisce la somma di tutti i valori numerici non Null specificati dall'espressione, valutata nell'ambito specificato.

Var

Restituisce la varianza di tutti i valori numerici non Null specificati dall'espressione, valutata nell'ambito specificato.

VarP

Restituisce la varianza della popolazione di tutti i valori numerici non Null specificati dall'espressione, valutata nell'ambito specificato.

Calcolo dei valori correnti

Le funzioni predefinite seguenti calcolano i valori correnti di un set di dati. RowNumber è simile a RunningValue, in quanto restituisce il valore corrente di un conteggio che viene incrementato per ogni riga all'interno dell'ambito contenitore. Il parametro di ambito per queste funzioni deve specificare un ambito contenitore che controlla quando deve essere riavviato il conteggio.

Funzione

Descrizione

RowNumber

Restituisce il conteggio parziale del numero di righe per l'ambito specificato. La funzione RowNumber riavvia il conteggio da 1, non da 0.

RunningValue

Restituisce un'aggregazione parziale di tutti i valori numerici non Null specificati dall'espressione, valutata per l'ambito specificato.

Recupero di conteggi delle righe

La funzione predefinita seguente calcola il numero di righe nell'ambito specificato. Utilizzare questa funzione per conteggiare tutte le righe, incluse quelle con valori Null.

Funzione

Descrizione

CountRows

Restituisce il numero di righe nell'ambito specificato, incluse le righe con valori Null.

Recupero di valori dipendenti dall'ordinamento

Le funzioni predefinite seguenti restituiscono il primo, l'ultimo o il precedente valore all'interno di un ambito specificato. Queste funzioni dipendono dal tipo di ordinamento dei valori dei dati. Utilizzare queste funzioni, ad esempio, per trovare il primo e l'ultimo valore in una pagina o per creare un'intestazione di pagina in formato dizionario. Utilizzare Previous per confrontare il valore di una riga con il valore della riga precedente in un ambito specificato, ad esempio per trovare i valori in percentuale anno dopo anno in una tabella.

Funzione

Descrizione

First

Restituisce il primo valore nell'ambito specificato dell'espressione specificata.

Last

Restituisce l'ultimo valore nell'ambito specificato dell'espressione specificata.

Previous

Restituisce il valore o il valore di aggregazione specificato per l'istanza precedente di un elemento all'interno dell'ambito specificato.

Recupero di aggregazioni server

La funzione predefinita seguente recupera aggregazioni personalizzate dal provider di dati. Ad esempio, utilizzando un tipo di origine dati di Analysis Services, è possibile recuperare le aggregazioni calcolate sul server dell'origine dati da utilizzare in un'intestazione di gruppo.

Funzione

Descrizione

Aggregate

Restituisce un'aggregazione personalizzata dell'espressione specificata, secondo quanto definito dal provider di dati.

Test dell'ambito

La funzione predefinita seguente controlla il contesto corrente di un elemento del report per verificare se è un membro di un ambito specifico.

Funzione

Descrizione

InScope

Indica se l'istanza corrente di un elemento è inclusa nell'ambito specificato.

Recupero del livello ricorsivo

La funzione predefinita seguente recupera il livello corrente quando viene elaborata una gerarchia ricorsiva. Utilizzare il risultato di questa funzione con la proprietà Padding in una casella di testo per controllare il livello di rientro di una gerarchia visiva per un gruppo ricorsivo. Per ulteriori informazioni, vedere Creazione di gruppi di gerarchie ricorsive (Reporting Services).

Funzione

Descrizione

Level

Restituisce il livello di nidificazione corrente in una gerarchia ricorsiva.