Condividi tramite


Utilizzo di espressioni in Reporting Services

Data creazione: 5 dicembre 2005

In Reporting Services le espressioni vengono utilizzate per garantire flessibilità dinamica per il controllo del contenuto e dell'aspetto di un report. Alcune espressioni vengono create automaticamente. Ad esempio, quando si crea un nuovo report e si trascinano campi dai set di dati agli elementi del report, i valori delle caselle di testo vengono impostati automaticamente su espressioni che fanno riferimento al nome dei campi dei set di dati. Durante l'elaborazione del report, ogni espressione restituisce un solo valore che sostituirà l'espressione quando viene eseguito il rendering del report. Le espressioni vengono utilizzate anche nella definizione del report per specificare o calcolare valori per: proprietà degli elementi del report, proprietà delle caselle di testo, parametri, query, segnalibri, mappe documento, filtri e definizioni di gruppi e ordinamenti.

È possibile creare espressioni per gli elementi del report immettendo testo in caselle di testo e proprietà o mediante una finestra di dialogo. Le espressioni vengono scritte in Microsoft Visual Basic. Un'espressione inizia con un segno di uguale (=) ed è formata da riferimenti a costanti, operatori, funzioni e insiemi globali del report predefiniti, inclusi campi e parametri. È inoltre possibile creare riferimenti a classi di .NET Framework, codice personalizzato e assembly esterni all'elaborazione del report. Per ulteriori informazioni sulla creazione di espressioni, vedere Creazione di espressioni in Reporting Services.

In questo argomento viene fornita una panoramica dei punti delle definizioni dei report in cui è possibile utilizzare espressioni. Gli esempi illustrati si basano sul set di dati AdventureWorks creato nell'esercitazione Creazione di un report semplice. Per iniziare a utilizzare gli esempi, vedere Esempi di espressioni in Reporting Services.

Utilizzo di espressioni di campo

È possibile utilizzare espressioni per fare riferimento a un campo di un set di dati e visualizzarne il valore in una casella di testo. Per collegare i dati recuperati a un elemento del report, l'espressione di campo deve contenere l'insieme globale Fields, il nome del campo e la proprietà Value.

  • Quando si trascina un campo dalla finestra di un set di dati a un elemento del report, viene automaticamente aggiunta un'espressione di campo alla casella di testo.
    Esempio:
    =Fields!LastName.Value
    Risultato:
    Reiter
    Reiter
    Saraiva
  • È possibile combinare dati di più campi o costanti.
    Esempio:
    =Fields!FirstName.Value & " " & Fields!LastName.Value
    Risultato:
    Tsvi Reiter
    Tsvi Reiter
    Jose Saraiva

Per l'elenco di tutti i tipi di riferimenti che è possibile utilizzare in un'espressione, vedere Creazione di espressioni in Reporting Services.

Utilizzo delle funzioni predefinite di Reporting Services

È possibile utilizzare espressioni per fare riferimento a una serie di funzioni report predefinite, tra cui funzioni di aggregazione standard quali Sum, Min, Max e Count, che vengono utilizzate per calcolare valori per un gruppo di righe, e funzioni quali RowNumber e RunningValue, che è possibile utilizzare nelle righe di dettaglio per fornire valori per ogni riga.

  • Contare il numero di cognomi nel campo LastName di un set di dati denominato SalesOrder utilizzando la funzione di aggregazione Count. Sebbene sia possibile inserire l'espressione nella riga di dettaglio della tabella, verrà immesso lo stesso valore in ognuna delle 3.906 righe. Le funzioni di aggregazione sono progettate per riepilogare righe di dettaglio e vengono in genere utilizzate in caselle di testo nelle righe di intestazione e piè di pagina di un'area dati o di un raggruppamento di aree dati.
    Esempio:
    ="Number of Names: " & Count(Fields!LastName.Value)
    Risultato:
    Number of Names: 3906
  • Sommare il campo TotalDue utilizzando la funzione di aggregazione Sum. Posizionare questo risultato nella riga piè di pagina della tabella. Si noti che il valore non è formattato.
    Esempio:
    ="Total Sold: " & Sum(Fields!TotalDue.Value)
    Risultato:
    Total Sold: 108266245.7018
  • Formattare un valore numerico utilizzando la funzione Format e una stringa di formattazione di Microsoft .NET Framework, C.
    Esempio:
    ="Total Sold: " & Format(Sum(Fields!TotalDue.Value),"C")
    Risultato:
    Total Sold: $108,266,245.70
  • Numerare le righe utilizzando la funzione RowNumber.
    Esempio:
    =RowNumber(Nothing)
    Risultato:
    1
    2
    3
  • Utilizzare RunningValue per aggregare un totale parziale per l'ambito specificato.
    Esempio:
    =Format(RunningValue(Fields!TotalDue.Value,Sum,Nothing),"C")
    Risultato:
    $27,231.55
    $28,947.73

Per un elenco completo delle funzioni report predefinite a cui è possibile fare riferimento in un'espressione, vedere Utilizzo di funzioni di report nelle espressioni (Reporting Services).

Ambito

Poiché è possibile che siano definiti più gruppi, si può specificare l'ambito da utilizzare nella funzione di aggregazione. Gli ambiti sono nomi che è possibile passare alle funzioni di aggregazione per indicare in che modo si desidera calcolare gli aggregati. Per le tabelle per cui sono stati definiti più gruppi può essere utile, ad esempio, fare riferimento a un gruppo esterno dalla riga di intestazione di un gruppo interno. L'ambito Nothing indica a una funzione di utilizzare l'ambito più esterno. Per l'area dati di una tabella semplice senza raggruppamenti, è disponibile un solo ambito.

Per identificare gli ambiti validi per un raggruppamento di elementi di un report, selezionare l'elemento, aprire la finestra di dialogo Proprietà, fare clic sulla scheda Gruppi e visualizzare l'elenco delle etichette gruppo utilizzabili per identificare ambiti.

Utilizzo degli spazi dei nomi di sistema e di .NET Framework

È possibile utilizzare espressioni per fare riferimento agli spazi dei nomi predefiniti per la libreria run-time Microsoft.VisualBasic e agli spazi dei nomi di .NET Framework System.Convert e System.Math. Per fare riferimento ad altri spazi dei nomi CLR (Common Language Runtime) di .NET Framework, è necessario utilizzare lo spazio dei nomi completo, ad esempio System.Text.StringBuilder. Per creare riferimenti ad assembly esterni è necessario identificare l'assembly mediante le proprietà del report e assicurarsi che sia disponibile sul server di report. Per ulteriori informazioni, vedere Procedura: Aggiunta di un riferimento a un assembly in un report (Progettazione report) e Referencing Assemblies in an RDL File.

Utilizzo di codice personalizzato e riferimenti alle classi

È possibile utilizzare espressioni per fare riferimento a istanze personalizzate e di classe. A questo scopo, aggiungere codice direttamente nel report mediante le proprietà del report o creare un assembly personalizzato e farvi quindi riferimento in un'espressione. Per ulteriori informazioni, vedere Utilizzo di riferimenti a codice personalizzato nelle espressioni (Reporting Services).

Utilizzo della formattazione condizionale

È possibile utilizzare le espressioni per controllare l'aspetto di un elemento del report. È ad esempio possibile scrivere un'espressione per la proprietà Color di una casella di testo, che consenta di visualizzare i dati in un colore diverso in base ai dati. Nell'esempio seguente, il valore viene visualizzato in rosso, se il valore del campo TotalDue è minore di 10000. Se invece la condizione non viene soddisfatta, il testo verrà visualizzato in nero.

=Iif(Fields!TotalDue.Value < 10000,"Red","Black")

Per immettere espressioni di formattazione relative a un elemento del report, aprire la finestra Proprietà e digitare l'espressione nel campo del valore della proprietà che si desidera formattare. Per ulteriori informazioni sulla formattazione condizionale, vedere Aggiunta della formattazione condizionale.

Utilizzo di espressioni di query

È possibile utilizzare espressioni per definire la query contenuta in un set di dati. È possibile utilizzare questa funzionalità per progettare report in cui la query viene modificata in base all'input dell'utente, ai dati di altri set di dati o ad altre variabili. Per ulteriori informazioni sulle query, vedere Definizione di set di dati del report.

Utilizzo di espressioni di filtraggio, raggruppamento e ordinamento

È possibile utilizzare espressioni per definire filtri che limitino la quantità e il tipo di dati visualizzati in un report. I filtri vengono applicati ai dati dopo il recupero di questi ultimi dall'origine dei dati. È possibile definire filtri su set di dati, aree dati e raggruppamenti di aree dati. Per ulteriori informazioni sull'utilizzo dei filtri, vedere Procedura: Aggiunta di un filtro (Progettazione report) and Filtraggio dei dati in un report.

È possibile utilizzare espressioni per definire gruppi di aree di dati. Le espressioni vengono spesso utilizzate per calcolare aggregati di dati raggruppati. I gruppi vengono definiti creando intestazioni gruppo su aree dati. Per ulteriori informazioni sul raggruppamento dei dati, vedere Raggruppamento dei dati in un report and Procedura: Aggiunta di un gruppo a una tabella (Progettazione report).

È possibile utilizzare espressioni per definire l'ordinamento per aree di dati. È possibile ordinare set di dati e righe di dettaglio e gruppi in un'area dati. Per ulteriori informazioni sull'ordinamento dei dati, vedere Ordinamento dei dati in un report e Procedura: Ordinamento dei dati in una tabella (Progettazione report).

Utilizzo di insiemi report predefiniti

È possibile utilizzare espressioni per fare riferimento a classi di insiemi report predefiniti. Oltre all'insieme Fields descritto in precedenza, è possibile creare espressioni che facciano riferimento a elementi degli insiemi seguenti: Globals, User, Parameters, ReportItems, DataSets e DataSources. Quando vengono utilizzati in un'espressione, questi insiemi consentono di accedere alle proprietà e ai dati del report definiti dinamicamente durante l'elaborazione del report. Per ulteriori informazioni, vedere Utilizzo di insiemi Global nelle espressioni (Reporting Services).

Utilizzo delle impostazioni internazionali

È possibile utilizzare espressioni per fare riferimento alle impostazione internazionali in un computer client mediante il valore User.Language, per stabilire la modalità di visualizzazione di un report all'utente. È possibile, ad esempio, creare un report in cui venga utilizzata un'espressione di query diversa basata sul valore delle impostazioni internazionali. La query può essere modificata per recuperare informazioni localizzate da una colonna diversa, a seconda della lingua restituita. È inoltre possibile utilizzare un'espressione per modificare le impostazioni relative alla lingua del report o degli elementi del report in base a questa variabile.

[!NOTA] Benché sia possibile modificare le impostazioni relative alla lingua di un report, è necessario assicurarsi che tale modifica non causi problemi di visualizzazione. La modifica delle impostazioni internazionali del report potrebbe ad esempio comportare la modifica del formato della data nel report, ma anche la modifica del formato della valuta. A meno che non sia previsto un processo di conversione per la valuta, in questi casi è possibile che nel report venga visualizzato il simbolo di valuta errato. Per evitare tale problema, impostare le informazioni sulla lingua nei singoli elementi da modificare oppure impostare una lingua specifica per l'elemento contenente i dati relativi alla valuta.

Vedere anche

Attività

Procedura: Aggiunta di un'espressione (Progettazione report)

Riferimento

Esempi di espressioni in Reporting Services

Concetti

Procedure per il layout dei report

Altre risorse

Modifica espressione (Progettazione report)

Guida in linea e informazioni

Assistenza su SQL Server 2005