Raccolte predefinite - riferimenti alla raccolta di campi del set di dati (Generatore Report)Built-in Collections - Dataset Fields Collection References (Report Builder)

In ogni set di dati di un report è contenuta una raccolta Campi.Each dataset in a report contains one Fields collection. La raccolta Campi rappresenta il set di campi specificati dalla query del set di dati, più qualsiasi campo calcolato aggiuntivo creato dall'utente.The Fields collection is the set of fields specified by the dataset query plus any additional calculated fields that you create. Dopo la creazione di un set di dati, la raccolta di campi viene visualizzata nel riquadro Dati report .After you create a dataset, the field collection appears in the Report Data pane.

In un'espressione un riferimento di campo semplice viene visualizzato nell'area di progettazione come un'espressione semplice.A simple field reference in an expression displays on the design surface as a simple expression. 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] .For example, when you drag the field Sales from the Report Data pane to a table cell on the design surface, [Sales] is displayed. Questo parametro rappresenta l'espressione =Fields!Sales.Value sottostante impostata nella proprietà Value della casella di testo.This represents the underlying expression =Fields!Sales.Value that is set on the text box Value property. 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.When the report runs, the report processor evaluates this expression and displays the actual data from the data source in the text box in the table cell. Per altre informazioni, vedere Espressioni (Generatore report e SSRS) e Riferimenti alla raccolta di campi del set di dati (Generatore report e SSRS).For more, see Expressions (Report Builder and SSRS) and Dataset Fields Collection (Report Builder and SSRS).

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.

Visualizzazione della raccolta di campi per un set di datiDisplaying the Field Collection for a Dataset

Per visualizzare i singoli valori per una raccolta di campi, trascinare ogni campo in una riga di dettaglio della tabella ed eseguire il report.To display the individual values for a field collection, drag each field to a table detail row and run the 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.References from the detail row of a table or list data region display a value for each row in the dataset.

Per visualizzare i valori di riepilogo per un campo, trascinare ogni campo numerico nell'area dati di una matrice.To display summarized values for a field, drag each numeric field to the data area of a matrix. La funzione di aggregazione predefinita per la riga del totale è Sum, ad esempio =Sum(Fields!Sales.Value).The default aggregate function for the total row is Sum, for example, =Sum(Fields!Sales.Value). È possibile modificare la funzione predefinita per calcolare totali diversi.You can change the default function in order to calculate different totals. Per altre informazioni, vedere Riferimento a funzioni di aggregazione (Generatore report e SSRS).For more information, see Aggregate Functions Reference (Report Builder and SSRS).

Per visualizzare valori di riepilogo per una raccolta di campi in una casella di testo direttamente nell'area di progettazione (non appartenente a un'area dati), è necessario specificare il nome del set di dati come ambito per la funzione di aggregazione.To display summarized values for a field collection in a text box directly on the design surface (not part of a data region), you must specify the dataset name as a scope for the aggregate function. 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").For example, for a dataset named SalesData, the following expression specifies the total of all values for the field 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 .When you use the Expression dialog box to define a simple field reference, you can select the Fields collection in the Category pane and see the list of available fields in the Field pane. A ogni campo sono associate diverse proprietà, ad esempio Value e IsMissing.Each field has several properties, including Value and 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.The remaining properties are predefined extended field properties that may be available to the dataset depending on the data source type.

Rilevamento di valori Null per un campo del set di datiDetecting Nulls for a Dataset Field

Per rilevare un valore di campo Null (Niente in Visual BasicVisual Basic), è possibile usare la funzione IsNothing.To detect a field value that is null (Nothing in Visual BasicVisual Basic), you can use the function 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:When placed in a text box in a table details row, the following expression tests the field MiddleName and substitutes the text "No Middle Name" when the value is null, and the field value itself when the value is not null:

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

Rilevamento di campi mancanti per query dinamiche in fase di esecuzioneDetecting Missing Fields for Dynamic Queries at Run Time

Per impostazione predefinita, agli elementi della raccolta Campi sono associate due proprietà: Value e IsMissing.By default, items in the Fields collection have two properties: Value and 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.The IsMissing property indicates whether a field that is defined for a dataset at design time is contained in the fields retrieved at run time. Ad esempio, la query potrebbe chiamare una stored procedure in cui il set di risultati varia con un parametro di input o la query potrebbe essere SELECT * FROM <tabella > in cui è stata modificata la definizione della tabella.For example, your query might call a stored procedure in which the result set varies with an input parameter, or your query might be SELECT * FROM <table> where the table definition changed.

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.IsMissing detects changes in the dataset schema between design time and run time for any type of data source. 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.IsMissing cannot be used to detect empty members in a multidimensional cube and is not related to the MDX query language concepts of EMPTY and NON EMPTY.

È possibile eseguire il test della proprietà IsMissing con un codice personalizzato per determinare se un campo è presente nel set di risultati.You can test the IsMissing property in custom code to determine if a field is present in the result set. Non è possibile verificare la presenza del campo usando un'espressione con una chiamata a una funzione di Visual BasicVisual Basic , ad esempio IIF o SWITCH, poiché in Visual BasicVisual Basic vengono valutati tutti i parametri presenti nella chiamata alla funzione e viene restituito un errore quando viene valutato il riferimento al parametro mancante.You cannot test for its presence using an expression with a Visual BasicVisual Basic function call such as IIF or SWITCH, because Visual BasicVisual Basic evaluates all parameters in the call to the function, which results in an error when the reference to the missing is evaluated.

Esempio per il controllo della visibilità di una colonna dinamica per un campo mancanteExample for Controlling the Visibility of a Dynamic Column for a Missing Field

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 che restituisca un valore booleano in base alla presenza o all'assenza del campo.To set an expression that controls the visibility of a column that displays a field in a dataset, you must first define a custom code function that returns a Boolean value based on whether the field is missing. La funzione di codice personalizzata seguente, ad esempio, restituisce true se il campo non è presente. In caso contrario, restituisce false.For example, the following custom code function returns true if the field is missing and false if the field exists.

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:To use this function to control visibility of a column, set the Hidden property of the column to the following expression:

=Code.IsFieldMissing(Fields!FieldName)

Quando il campo non esiste, la colonna è nascosta.The column is hidden when the field does not exist.

Esempio per il controllo del valore della casella di testo per un campo mancanteExample for Controlling the Text Box Value for a Missing Field

Per sostituire il testo da scrivere al posto del valore di un campo mancante, è necessario scrivere codice personalizzato che restituisca il testo da utilizzare in sostituzione di un valore di campo quando quest'ultimo non è presente.To substitute text that you write in place of the value of a missing field, you must write custom code that returns text you can use in place of a field value when the field is missing. La funzione di codice personalizzata seguente restituisce ad esempio il valore del campo se il campo esiste e il messaggio specificato dall'utente come secondo parametro se il campo non esiste:For example, the following custom code function returns the value of the field if the field exists, and the message that you specify as the second parameter if the field does not exist:

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:To use this function in a text box, add the following expression to the Value property:

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

Nella casella di testo viene visualizzato il valore del campo o il testo specificato dall'utente.The text box displays either the field value or the text that you specified.

Utilizzo delle proprietà di campo esteseUsing Extended Field Properties

Le proprietà di campo estese sono proprietà aggiuntive definite in un campo dall'estensione per l'elaborazione dati determinata dal tipo di origine dati per il set di dati.Extended field properties are additional properties defined on a field by the data processing extension, which is determined by the data source type for the dataset. Tali proprietà sono predefinite o specifiche per un tipo di origine dati.Extended field properties are predefined or specific to a data source type. Per altre informazioni, vedere Proprietà di campo estese per un database di Analysis Services (SSRS).For more information, see Extended Field Properties for an Analysis Services Database (SSRS).

Se si specifica una proprietà non supportata per un campo specifico, l'espressione restituirà null (Niente in Visual BasicVisual Basic).If you specify a property that is not supported for that field, the expression evaluates to null (Nothing in Visual BasicVisual 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 (Niente in Visual BasicVisual Basic) per le proprietà di tipo String e Objecte zero (0) per le proprietà di tipo Integer.If a data provider does not support extended field properties, or if the field is not found when the query is executed, the value for the property is null (Nothing in Visual BasicVisual Basic) for properties of type String and Object, and zero (0) for properties of type Integer. Un'estensione per l'elaborazione dati può sfruttare le proprietà predefinite ottimizzando le query che includono tale sintassi.A data processing extension may take advantage of predefined properties by optimizing queries that include this syntax.

Vedere ancheSee Also

Esempi di espressioni (Generatore report e SSRS) Expression Examples (Report Builder and SSRS)
Set di dati del report (SSRS)Report Datasets (SSRS)