Utilizzo di riferimenti a raccolte di variabili di report e di gruppo (Generatore report 3.0 e SSRS)

Quando un calcolo complesso viene utilizzato più volte nelle espressioni di un report, è possibile creare una variabile di report o di gruppo. Per impostazione predefinita, una variabile di report viene impostata una sola volta e può essere utilizzata nelle espressioni di un intero report. Inoltre, le variabili di report sono di sola lettura. È possibile modificare l'impostazione predefinita in modo da abilitare la modalità di lettura/scrittura per una variabile di report. Il valore in una variabile di report viene mantenuto per tutta una sessione, fino alla nuova elaborazione del report. Una variabile di gruppo viene impostata una sola volta per ogni valore di gruppo univoco e può essere utilizzata nelle espressioni al livello corrente o sottostante nella gerarchia del gruppo. Non è possibile impostare le variabili di gruppo sulla modalità di lettura/scrittura.

Nota

È possibile creare e modificare definizioni del report (con estensione rdl) in Generatore report 3.0 e in Progettazione report di Business Intelligence Development Studio. Ogni ambiente di creazione offre modalità differenti per creare, aprire e salvare report ed elementi correlati. Per ulteriori informazioni, vedere Progettazione di report tramite Progettazione report e Generatore report 3.0 (SSRS) nel Web all'indirizzo microsoft.com.

Variabili di report

Utilizzare una variabile di report per memorizzare un valore per i calcoli dipendenti dal tempo, ad esempio tassi valutari o timestamp, oppure per un calcolo complesso a cui si fa riferimento più volte. Dopo l'inizializzazione delle variabili, il valore rimane costante per tutta la durata di una sessione del report.

Per aggiungere una variabile di report, aprire la finestra di dialogo Proprietà report, fare clic su Variabili, quindi specificare un nome e un valore.

Per fare riferimento alla variabile in un'espressione, utilizzare la sintassi di raccolta globale, ad esempio =Variables!CustomTimeStamp.Value. Nell'area di progettazione il valore viene visualizzato in una casella di testo come <<Expr>>.

È possibile utilizzare le variabili del report come indicato di seguito:

  • Utilizzo in sola lettura   Impostare una volta un valore in modo da creare una costante per la sessione del report, ad esempio un timestamp.

    Poiché le espressioni delle caselle di testo vengono valutate su richiesta quando un utente scorre un report, i valori dinamici, ad esempio un'espressione in cui è inclusa la funzione Now() che restituisce l'ora del giorno, possono restituire valori diversi se si passa a una pagina successiva e a una precedente tramite il pulsante Indietro. Impostando il valore di una variabile di report sull'espressione =Now() e aggiungendo quindi tale variabile all'espressione, si garantisce l'utilizzo dello stesso valore per tutta l'elaborazione del report.

  • Utilizzo in lettura/scrittura   Impostare una volta un valore e serializzarlo all'interno di una sessione di report. L'opzione di lettura/scrittura per le variabili rappresenta un'alternativa migliore rispetto all'utilizzo di una variabile statica nel blocco di codice nella definizione del report.

    Quando si deseleziona l'opzione Sola lettura per una variabile, la proprietà Writable per la variabile viene impostata su true. Per aggiornare il valore generato da un'espressione, utilizzare il metodo SetValue, ad esempio =Variables!MyVariable.SetValue("123").

    Nota

    Non è possibile controllare quando l'elaboratore di report inizializza una variabile o valuta un'espressione che aggiorna una variabile. L'ordine di esecuzione per l'inizializzazione delle variabili non è definito.

Per ulteriori informazioni sulle sessioni, vedere Anteprima di report in Generatore report 3.0.

Variabili di gruppo

Utilizzare una variabile di gruppo per calcolare un valore nell'ambito di un gruppo. Una variabile di gruppo è valida solo nell'ambito del gruppo e dei relativi gruppi figlio.

Si supponga, ad esempio, che in un'area dati vengano visualizzati dati di inventario per elementi che rientrano in diverse categorie di imposta e che si desideri applicare aliquote d'imposta diverse per ogni categoria. I dati verranno raggruppati in base alla Category e verrà definita una variabile Tax nel gruppo padre. Verrà quindi definita una variabile di gruppo per ItemTax per ogni categoria di imposta e ogni sottogruppo Category diverso verrà assegnato alla variabile di gruppo corretta. Ad esempio:

  • Per il gruppo padre basato su [Category], definire la variabile Tax con un valore [Tax]. Si supponga che i valori di categoria siano Food e Clothing.

  • Per il gruppo figlio basato su [Subcategory], definire la variabile ItemsTax come =Variables!Tax.Value * Sum(Fields!Price.Value). Si supponga che i valori di sottocategoria per la categoria Food siano Beverages e Bread e che i valori di sottocategoria per Clothing siano Shirts e Hats.

  • Per una casella di testo in una riga del gruppo figlio, aggiungere l'espressione =Variables!ItemsTax.Value.

    Nella casella di testo viene visualizzata l'imposta totale per Beverages e Bread utilizzando l'imposta di Food e per Shirts e Hats utilizzando l'imposta di Clothing.

Per aggiungere una variabile di gruppo, aprire la finestra di dialogo Proprietà gruppo Tablix, fare clic su Variabili, quindi specificare un nome e un valore. La variabile di gruppo viene calcolata una volta per ogni valore di gruppo univoco.

Per fare riferimento alla variabile in un'espressione, utilizzare la sintassi di raccolta globale, ad esempio =Variables!GroupDescription.Value. Nell'area di progettazione il valore viene visualizzato in una casella di testo come <<Expr>>.