Funzioni di Generatore report - Funzione LookupSetReport Builder Functions - LookupSet Function

Viene restituito il set di valori corrispondenti per il nome specificato da un set di dati contenente coppie nome/valore.Returns the set of matching values for the specified name from a dataset that contains name/value pairs.

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.

SintassiSyntax


LookupSet(source_expression, destination_expression, result_expression, dataset)  

ParametriParameters

source_expressionsource_expression
(Variant) Espressione valutata nell'ambito corrente che specifica il nome o la chiave da ricercare.(Variant) An expression that is evaluated in the current scope and that specifies the name or key to look up. Ad esempio, =Fields!ID.Value.For example, =Fields!ID.Value.

destination_expressiondestination_expression
(Variant) Espressione valutata per ogni riga in un set di dati che specifica il nome o la chiave con cui stabilire la corrispondenza.(Variant) An expression that is evaluated for each row in a dataset and that specifies the name or key to match on. Ad esempio, =Fields!CustomerID.Value.For example, =Fields!CustomerID.Value.

result_expressionresult_expression
(Variant) Espressione valutata per la riga nel set di dati in cui source_expression = destination_expression, e che specifica il valore da recuperare.(Variant) An expression that is evaluated for the row in the dataset where source_expression = destination_expression, and that specifies the value to retrieve. Ad esempio, =Fields!PhoneNumber.Value.For example, =Fields!PhoneNumber.Value.

set di datidataset
Costante che specifica il nome di un set di dati nel report,A constant that specifies the name of a dataset in the report. ad esempio "InformazioniDiContatto".For example, "ContactInformation".

ReturnReturn

Restituisce VariantArrayo Nothing se non viene rilevata alcuna corrispondenza.Returns a VariantArray, or Nothing if there is no match.

OsservazioniRemarks

Usare LookupSet per recuperare un set di valori dal set di dati specificato per una coppia nome/valore in cui è presente una relazione uno-a-molti.Use LookupSet to retrieve a set of values from the specified dataset for a name/value pair where there is a 1-to-many relationship. Per un identificatore di cliente in una tabella, ad esempio, è possibile usare la funzione LookupSet per recuperare tutti i numeri di telefono relativi al cliente da un set di dati non associato all'area dati.For example, for a customer identifier in a table, you can use LookupSet to retrieve all the associated phone numbers for that customer from a dataset that is not bound to the data region.

Tramite la funzioneLookupSet vengono effettuate le operazioni seguenti:LookupSet does the following:

  • Valuta l'espressione di origine nell'ambito corrente.Evaluates the source expression in the current scope.

  • Valuta l'espressione di destinazione per ogni riga del set di dati specificato dopo che sono stati applicati i filtri, in base alle regole di confronto del set di dati specificato.Evaluates the destination expression for each row of the specified dataset after filters have been applied, based on the collation of the specified dataset.

  • Per ogni corrispondenza dell'espressione di origine e di destinazione, valuta l'espressione di risultato per quella riga nel set di dati.For each match of source expression and destination expression, evaluates the result expression for that row in the dataset.

  • Restituisce il set di valori dell'espressione di risultato.Returns the set of result expression values.

    Per recuperare un singolo valore da un set di dati con coppie nome/valore per un nome specificato in cui è presente una relazione uno-a-uno, usare la Funzione Lookup (Generatore report e SSRS).To retrieve a single value from a dataset with name/value pairs for a specified name where there is a 1-to-1 relationship, use Lookup Function (Report Builder and SSRS). Per chiamare la funzione Lookup per un set di valori, usare la Funzione Multilookup (Generatore report e SSRS).To call Lookup for a set of values, use Multilookup Function (Report Builder and SSRS).

    Sono previste le restrizioni seguenti:The following restrictions apply:

  • La funzioneLookupSet viene valutata dopo l'applicazione di tutte le espressioni di filtro.LookupSet is evaluated after all filter expressions are applied.

  • È supportato solo un livello di ricerca.Only one level of lookup is supported. Un'espressione di origine, destinazione o risultato non può includere un riferimento a una funzione di ricerca.A source, destination, or result expression cannot include a reference to a lookup function.

  • Le espressioni di origine e di destinazione devono restituire lo stesso tipo di dati.Source and destination expressions must evaluate to the same data type.

  • Le espressioni di origine, di destinazione e di risultato non possono includere riferimenti a variabili di report o di gruppo.Source, destination, and result expressions cannot include references to report or group variables.

  • La funzioneLookupSet non può essere usata come espressione per gli elementi del report seguenti:LookupSet cannot be used as an expression for the following report items:

    • Stringhe di connessione dinamiche per un'origine dati.Dynamic connection strings for a data source.

    • Campi calcolati in un set di dati.Calculated fields in a dataset.

    • Parametri di query in un set di dati.Query parameters in a dataset.

    • Filtri in un set di dati.Filters in a dataset.

    • Parametri di report.Report parameters.

    • Proprietà Report.Language.The Report.Language property.

    Per altre informazioni, vedere Riferimento a funzioni di aggregazione (Generatore report e SSRS) e Ambito di espressioni per totali, aggregazioni e raccolte predefinite (Generatore report e SSRS).For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).

EsempioExample

Nell'esempio seguente, si supponga che la tabella sia associata a un set di dati che include un identificatore del territorio di vendita TerritoryGroupID.In the following example, assume the table is bound to a dataset that includes a sales territory identifier TerritoryGroupID. Un set di dati separato denominato "Stores" contiene l'elenco di tutti i negozi di un territorio e include l'ID dell'identificatore del territorio e il nome del negozio StoreName.A separate dataset called "Stores" contains the list of all stores in a territory and includes the territory identifier ID and the name of the store StoreName.

Nell'espressione seguente, LookupSet confronta il valore TerritoryGroupID con ID per ogni riga nel set di dati denominato "Stores".In the following expression, LookupSet compares the value TerritoryGroupID to ID for each row in the dataset called "Stores". Per ogni corrispondenza, il valore del campo StoreName per quella riga viene aggiunto al set di risultati.For each match, the value of the StoreName field for that row is added to the result set.

=LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores")  

EsempioExample

Poiché tramite LookupSet viene restituita una raccolta di oggetti, non è possibile visualizzare direttamente l'espressione di risultato in una casella di testo.Because LookupSet returns a collection of objects, you cannot display the result expression directly in a text box. È possibile concatenare il valore di ogni oggetto nella raccolta come stringa.You can concatenate the value of each object in the collection as a string.

Usare la funzione Visual BasicVisual Basic Join di per creare una stringa delimitata da un set di oggetti.Use the Visual BasicVisual Basic function Join create a delimited string from a set of objects. Usare una virgola come separatore per combinare gli oggetti in un'unica riga.Use a comma as a separator to combine the objects in a single line. In alcuni renderer, è possibile usare un avanzamento riga di Visual BasicVisual Basic (vbCrLF) come separatore per elencare ogni valore su una nuova riga.In some renderers, you might use a Visual BasicVisual Basic line feed (vbCrLF) as a separator to list each value on a new line.

L'espressione seguente, quando viene usata come proprietà Value per una casella di testo, usa Join per creare un elenco.The following expression, when it is used as the Value property for a text box, uses Join to create a list.

=Join(LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores"),",")  

EsempioExample

Per caselle di testo che eseguono il rendering solo poche volte, è possibile scegliere di aggiungere un codice personalizzato per generare HTML per visualizzare i valori in una casella di testo.For text boxes that only render a few times, you might choose to add custom code to generate HTML to display values in a text box. HTML in una casella di testo richiede altri processi di elaborazione, pertanto non è consigliabile per una casella di testo che viene sottoposta a rendering molte volte.HTML in a text box requires extra processing, so this would not be a good choice for a text box that is rendered thousands of times.

Copiare le seguenti funzioni di Visual BasicVisual Basic in un blocco di codice di una definizione del report.Copy the following Visual BasicVisual Basic functions to a Code block in a report definition. MakeList accetta la matrice di oggetti restituita in result_expression e compila un elenco non ordinato usando tag HTML.MakeList takes the object array that is returned in result_expression and builds an unordered list by using HTML tags. Length restituisce il numero di elementi della matrice di oggetti.Length returns the number of items in the object array.

Function MakeList(ByVal items As Object()) As String  
   If items Is Nothing Then  
      Return Nothing  
   End If  

   Dim builder As System.Text.StringBuilder =   
      New System.Text.StringBuilder()  
   builder.Append("<ul>")  

   For Each item As Object In items  
      builder.Append("<li>")  
      builder.Append(item)  
   Next  
   builder.Append("</ul>")  

   Return builder.ToString()  
End Function  

Function Length(ByVal items as Object()) as Integer  
   If items is Nothing Then  
      Return 0  
   End If  
   Return items.Length  
End Function  

EsempioExample

Per generare HTML, è necessario chiamare la funzione.To generate the HTML, you must call the function. Incollare l'espressione seguente nella proprietà Value per la casella di testo e impostare il tipo di markup per il testo su HTML.Paste the following expression in the Value property for the text box and set the markup type for text to HTML. Per altre informazioni, vedere Aggiungere codice HTML a un report (Generatore report e SSRS).For more information, see Add HTML into a Report (Report Builder and SSRS).

=Code.MakeList(LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores"))  

Vedere ancheSee Also

Utilizzo delle espressioni nei report (Generatore report e SSRS) Expression Uses in Reports (Report Builder and SSRS)
Esempi di espressioni (Generatore report e SSRS) Expression Examples (Report Builder and SSRS)
Tipi di dati nelle espressioni (Generatore report e SSRS) Data Types in Expressions (Report Builder and SSRS)
Ambito di espressioni per totali, aggregazioni e raccolte predefinite (Generatore report e SSRS)Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)