Raccolte predefinite, Report e riferimenti a variabili di gruppo (Generatore Report)Built-in Collections - Report and Group Variables References (Report Builder)

Quando un calcolo complesso viene utilizzato più volte nelle espressioni di un report, è possibile creare una variabileWhen you have a complex calculation that is used more than once in expressions in a report, you might want to create a variable. che può essere di report o di gruppo.You can create a report variable or a group variable. I nomi delle variabili devono essere univoci in un report.Variable names must be unique in a report.

Nota

È possibile creare e modificare file di definizioni report impaginati (con estensione rdl) in Generatore report e in Progettazione report di SQL Server Data Tools.You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server Data Tools. Ogni ambiente di creazione offre modalità differenti per creare, aprire e salvare report ed elementi correlati.Each authoring environment provides different ways to create, open, and save reports and related items.

Variabili di reportReport Variables

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.Use a report variable to hold a value for time-dependent calculations, such as currency rates or time stamps, or for a complex calculation that is referenced multiple times. Per impostazione predefinita, una variabile di report viene calcolata una sola volta e può essere utilizzata nelle espressioni di un intero report.By default, a report variable is calculated once and can be used in expressions throughout a report. Inoltre, le variabili di report sono di sola lettura.Report variables are read-only by default. È possibile modificare l'impostazione predefinita in modo da abilitare la modalità di lettura/scrittura per una variabile di report.You can change the default to enable a report variable as read-write. Il valore in una variabile di report viene mantenuto per tutta una sessione, fino alla nuova elaborazione del report.The value in a report variable is preserved throughout a session, until the report is processed again.

Per aggiungere una variabile di report, aprire la finestra di dialogo Proprietà report , fare clic su Variabilie quindi specificare un nome e un valore.To add a report variable, open the ReportProperties dialog box, click Variables, and provide a name and a value. I nomi sono stringhe con distinzione tra maiuscole e minuscole che iniziano con una lettera e non contengono spazi.Names are case-sensitive strings that begin with a letter and have no spaces. Un nome può contenere lettere, numeri o caratteri di sottolineatura ().A name can include letters, numbers, or underscores ().

Per fare riferimento alla variabile in un'espressione, utilizzare la sintassi di raccolta globale, ad esempio =Variables!CustomTimeStamp.Value.To refer to the variable in an expression, use the global collection syntax, for example, =Variables!CustomTimeStamp.Value. Nell'area di progettazione il valore viene visualizzato in una casella di testo come <<Expr>>.On the design surface, the value appears in a text box as <<Expr>>.

È possibile utilizzare le variabili del report come indicato di seguito:You can use report variables in the following ways:

  • Uso in sola lettura Impostare un valore una sola volta in modo da creare una costante per la sessione del report, ad esempio un timestamp.Read-only use Set a value once to create a constant for the report session, for example, to create a time stamp.

    Dato che le espressioni nelle caselle di testo vengono valutate su richiesta quando un utente scorre un report, i valori dinamici, ad esempio un'espressione che include 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 .Because expressions in text boxes are evaluated on-demand as a user pages through a report, dynamic values (for example, an expression that includes the Now() function, which returns the time of day) can return different values if you page forward and backward by using the Back button. 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.By setting a the value of a report variable to the expression =Now(), and then adding the variable to your expression, you ensure the same value is used throughout report processing.

  • Uso in lettura/scrittura Impostare un valore una sola volta e serializzarlo all'interno di una sessione di report.Read-write use Set a value once and serialize the value within a report session. 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.The read-write option for variables provides a better alternative than using a static variable in the Code block in the report definition.

    Quando si deseleziona l'opzione Sola lettura per una variabile, la proprietà Writable per la variabile viene impostata su true.When you clear the Read-Only option for a variable, the Writable property for the variable is set to true. Per aggiornare il valore generato da un'espressione, usare il metodo SetValue, ad esempio =Variables!MyVariable.SetValue("123").To update the value from an expression, use the SetValue method, for example, =Variables!MyVariable.SetValue("123").

    Nota

    Non è possibile controllare quando l'elaboratore di report inizializza una variabile o valuta un'espressione che aggiorna una variabile.You cannot control when the report processor initializes a variable or evaluates an expression that updates a variable. L'ordine di esecuzione per l'inizializzazione delle variabili non è definito.The order of execution for variable initialization is undefined.

    Per altre informazioni, vedere Anteprima di report in Generatore report.For more information about sessions, see Previewing Reports in Report Builder.

Variabili di gruppoGroup Variables

Utilizzare una variabile di gruppo per calcolare un'espressione complessa nell'ambito di un gruppo.Use a group variable to calculate a complex expression once in the scope of a group. Una variabile di gruppo è valida solo nell'ambito del gruppo e dei relativi gruppi figlio.A group variable is valid only in the scope of the group and its child groups.

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.For example, suppose a data region displays inventory data for items that are in different tax categories and you want to apply different tax rates for each category. I dati verranno raggruppati in base alla categoria e verrà definita una variabile Tax nel gruppo padre.You would group the data on Category and define a Tax variable on the parent group. Verrà quindi definita una variabile di gruppo per ItemTax per ogni categoria di imposta e ogni sottogruppo di categorie diverso verrà assegnato alla variabile di gruppo corretta.Then you would define a group variable for ItemTax for each tax category and assign each of the different Category subgroups to the correct group variable. Esempio:For example:

  • Per il gruppo padre basato su [Category], definire la variabile Tax con un valore [Tax].For the parent group based on [Category], define the variable Tax with a value [Tax]. Si supponga che i valori di categoria siano Food e Clothing.Assume the category values are Food and Clothing.

  • Per il gruppo figlio basato su [Subcategory], definire la variabile ItemsTax come =Variables!Tax.Value * Sum(Fields!Price.Value).For the child group based on [Subcategory], define the variable ItemsTax as =Variables!Tax.Value * Sum(Fields!Price.Value). Si supponga che i valori di sottocategoria per la categoria Food siano Beverages e BreadAssume the subcategory values for the category Food are Beverages and Bread. e che i valori di sottocategoria per Clothing siano Shirts e Hats.Assume the subcategory values for Clothing are Shirts and Hats.

  • Per una casella di testo in una riga del gruppo figlio, aggiungere l'espressione =Variables!ItemsTax.Value.For a text box in a row in the child group, add the expression =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.The text box displays the total tax for Beverages and Bread using the Food tax and for Shirts and Hats using the Clothing tax.

    Per aggiungere una variabile di gruppo, aprire la finestra di dialogo Proprietà gruppo Tablix , fare clic su Variabilie quindi specificare un nome e un valore.To add a group variable, open the Tablix Group Properties dialog box, click Variables, and provide a name and a value. La variabile di gruppo viene calcolata una volta per ogni valore di gruppo univoco.The group variable is calculated once per unique group value.

    Per fare riferimento alla variabile in un'espressione, utilizzare la sintassi di raccolta globale, ad esempio =Variables!GroupDescription.Value.To refer to the variable in an expression, use the global collection syntax, for example, =Variables!GroupDescription.Value. Nell'area di progettazione il valore viene visualizzato in una casella di testo come <<Expr>>.On the design surface, the value appears in a text box as <<Expr>>.

Vedere ancheSee Also

Filtro, gruppo e ordinamento dei dati ( Generatore report e SSRS ) Filter, Group, and Sort Data (Report Builder and SSRS)
Raccolte predefinite nelle espressioni ( Generatore report e SSRS ) Built-in Collections in Expressions (Report Builder and SSRS)
Esempi di espressioni ( Generatore report e SSRS )Expression Examples (Report Builder and SSRS)