Riferimenti alla raccolta Campi del set di dati in un report impaginato (generatore di report)

Si applica a: Generatore di report Microsoft (SSRS) Power BI Report Builder Report Designer in SQL Server Data Tools

Ogni set di dati di un report impaginato contiene una raccolta Campi. La raccolta Campi rappresenta il set di campi specificati dalla query del set di dati, più qualsiasi altro campo calcolato creato dall'utente. Dopo la creazione di un set di dati, la raccolta di campi viene visualizzata nel riquadro Dati report .

In un'espressione un riferimento di campo semplice viene visualizzato nell'area di progettazione come un'espressione semplice. Quando ad esempio si trascina il campo Sales dal riquadro dei dati del report in una cella della tabella nell'area di progettazione, viene visualizzato [Sales] . Questo valore rappresenta l'espressione =Fields!Sales.Value sottostante impostata nella proprietà Value della casella di testo. Durante l'esecuzione del report, questa espressione viene valutata in Elaborazione report e i dati effettivi vengono visualizzati dall'origine dati nella casella di testo nella cella della tabella. Per altre informazioni, vedere Espressioni (Generatore di report) e Riferimenti alla raccolta di campi del set di dati (Generatore di report).

Nota

È possibile creare e modificare file di definizioni di report impaginati (con estensione rdl) in Generatore report di Microsoft, Power BI Report Builder e Progettazione report di SQL Server Data Tools.

Visualizzazione della raccolta di campi per un set di dati

Per visualizzare i singoli valori per una raccolta di campi, trascinare ogni campo in una riga di dettaglio della tabella ed eseguire il report. I riferimenti dalla riga di dettaglio di un'area dati tabella o elenco consentono di visualizzare un valore per ogni riga del set di dati.

Per visualizzare i valori di riepilogo per un campo, trascinare ogni campo numerico nell'area dati di una matrice. La funzione di aggregazione predefinita per la riga del totale è Sum, ad esempio =Sum(Fields!Sales.Value). È possibile modificare la funzione predefinita per calcolare totali diversi. Per altre informazioni, vedere Riferimento a funzioni di aggregazione (Generatore di report).

Per visualizzare valori di riepilogo per una raccolta di campi in una casella di testo direttamente nell'area di progettazione che non è parte di un'area dati, è necessario specificare il nome del set di dati come ambito per la funzione di aggregazione. Per un set di dati denominato SalesData, ad esempio, l'espressione seguente specifica il totale di tutti i valori per il campo Sales: =Sum(Fields!Sales,"SalesData").

Quando si usa la finestra di dialogo Espressione per definire un riferimento di campo semplice, è possibile selezionare la raccolta Campi nel riquadro Categoria e visualizzare l'elenco dei campi disponibili nel riquadro Campo. A ogni campo sono associate diverse proprietà, ad esempio Value e IsMissing. Le proprietà rimanenti sono proprietà di campo estese predefinite che possono essere disponibili per il set di dati in base al tipo dell'origine dati.

Rilevamento di valori Null per un campo del set di dati

Per rilevare un valore di campo Null (Nothing in Visual Basic), è possibile utilizzare la funzione IsNothing. Quando è posizionata in una casella di testo in una riga dei dettagli della tabella, l'espressione seguente esegue il test del campo MiddleName. Se il valore è Null, viene sostituito il testo "No Middle Name". In caso contrario, viene sostituito il valore del campo stesso:

=IIF(IsNothing(Fields!MiddleName.Value),"No Middle Name",Fields!MiddleName.Value)

Rilevamento di campi mancanti per query dinamiche in fase di esecuzione

Per impostazione predefinita, agli elementi della raccolta Campi sono associate due proprietà: Value e IsMissing. La proprietà IsMissing indica se un campo definito per un set di dati in fase di progettazione è incluso nei campi recuperati in fase di runtime. La query può ad esempio chiamare una stored procedure in cui il set di risultati varia in base a un parametro di input oppure la query può essere SELECT * FROM <table>, in cui la definizione della query è stata modificata.

Nota

IsMissing consente di rilevare le modifiche nello schema del set di dati tra la fase di progettazione e quella di runtime per qualsiasi tipo di origine dati. La proprietà IsMissing non può essere usata per rilevare membri vuoti in un cubo multidimensionale e non è correlata ai concetti EMPTY e NON EMPTYdel linguaggio di query MDX.

È possibile eseguire il test della proprietà IsMissing con un codice personalizzato per determinare se un campo è presente nel set di risultati. Non è possibile verificare la presenza del campo usando un'espressione con una chiamata a una funzione di Visual Basic, ad esempio IIF o SWITCH, poiché in Visual Basic vengono valutati tutti i parametri presenti nella chiamata alla funzione e viene restituito un errore quando viene valutato il riferimento al parametro mancante.

Esempio per il controllo della visibilità di una colonna dinamica per un campo mancante

Per impostare un'espressione che controlla la visibilità di una colonna in cui viene visualizzato un campo in un set di dati, è necessario innanzitutto definire una funzione di codice personalizzata. Questa funzione deve restituire un valore booleano. Il valore si basa sul fatto che il campo non sia presente. La funzione di codice personalizzata seguente, ad esempio, restituisce true se il campo non è presente. In caso contrario, restituisce false.

Public Function IsFieldMissing(field as Field) as Boolean  
 If (field.IsMissing) Then  
 Return True  
  Else   
  Return False  
 End If  
End Function  

Per usare questa funzione al fine di controllare la visibilità di una colonna, impostare la proprietà Nascosto della colonna sull'espressione seguente:

=Code.IsFieldMissing(Fields!FieldName)

Quando il campo non esiste, la colonna è nascosta.

Esempio per il controllo del valore della casella di testo per un campo mancante

Per sostituire il testo al posto del valore di un campo mancante, è necessario scrivere codice personalizzato. Questo codice deve restituire il testo che è possibile usare come sostituzione quando il campo non è presente. La funzione di codice personalizzata seguente, ad esempio, restituisce il valore del campo se il campo esiste. Inoltre, il codice restituisce il messaggio specificato come secondo parametro se il campo non esiste:

Public Function IsFieldMissingThenString(field as Field, strMessage as String) as String  
 If (field.IsMissing) Then  
  Return strMessage  
 Else   
  Return field.Value  
  End If  
End Function  

Per usare questa funzione in una casella di testo, aggiungere l'espressione seguente alla proprietà Value:

=Code.IsFieldMissingThenString(Fields!FieldName,"Missing")

Nella casella di testo viene visualizzato il valore del campo o il testo specificato dall'utente.

Usare le proprietà di campo estese

Le proprietà di campo estese sono proprietà aggiuntive definite per un campo del set di dati dall'estensione per l'elaborazione dati. Il tipo di origine dati determina per il set di dati. Tali proprietà sono predefinite o specifiche per un tipo di origine dati. Per altre informazioni, vedere la sezione Proprietà di campo estese per un database di Analysis Services (SSRS).

Se si specifica una proprietà non supportata per un campo specifico, l'espressione restituirà null (Nothing in Visual Basic). Se un provider di dati non supporta proprietà di campo estese o se il campo non viene trovato durante l'esecuzione della query, il valore della proprietà è null (Nothing in Visual Basic) per le proprietà di tipo String e Object e zero (0) per le proprietà di tipo Integer. Un'estensione per l'elaborazione dati può sfruttare le proprietà predefinite ottimizzando le query che includono tale sintassi.