Funzioni di Generatore report - funzione MultilookupReport Builder Functions - Multilookup Function

Viene restituito il set di valori di prima corrispondenza per il set di nomi specificato da un set di dati che contiene coppie nome/valore.Returns the set of first-match values for the specified set of names 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


Multilookup(source_expression, destination_expression, result_expression, dataset)  

ParametriParameters

source_expressionsource_expression
(VariantArray) Espressione valutata nell'ambito corrente che specifica il set di nomi o chiavi da ricercare.(VariantArray) An expression that is evaluated in the current scope and that specifies the set of names or keys to look up. Ad esempio per un parametro multivalore, =Parameters!IDs.value.For example, for a multivalue parameter, =Parameters!IDs.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!ID.Value.For example, =Fields!ID.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!Name.Value.For example, =Fields!Name.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 "Colori".For example, "Colors".

ReturnReturn

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

OsservazioniRemarks

Usare Multilookup per recuperare un set di valori da un set di dati per coppie nome/valore in ciascuna delle quali è presente una relazione uno-a-uno.Use Multilookup to retrieve a set of values from a dataset for name-value pairs where each pair has a 1-to-1 relationship. MultiLookup è l'equivalente alla chiamata di Lookup per un set di nomi o chiavi.MultiLookup is the equivalent of calling Lookup for a set of names or keys. Per un parametro multivalore basato su identificatori di chiave primaria, ad esempio, è possibile utilizzare la funzione Multilookup in un'espressione in una casella di testo di una tabella per recuperare i valori associati da un set di dati non associato al parametro o alla tabella.For example, for a multivalue parameter that is based on primary key identifiers, you can use Multilookup in an expression in a text box in a table to retrieve associated values from a dataset that is not bound to the parameter or to the table.

Tramite la funzioneMultilookup vengono effettuate le operazioni seguenti:Multilookup does the following:

  • Valuta l'espressione di origine nell'ambito corrente e genera una matrice di oggetti variant.Evaluates the source expression in the current scope and generates an array of variant objects.

  • Per ogni oggetto nella matrice, chiama Funzione Lookup (Generatore report e SSRS) e aggiunge il risultato alla matrice restituita.For each object in the array, calls Lookup Function (Report Builder and SSRS) and adds the result to the return array.

  • Restituisce il set di risultati.Returns the set of results.

    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 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 recuperare più valori da un set di dati con coppie nome/valore per un nome in cui è presente una relazione uno-a-molti, usare Funzione LookupSet (Generatore report e SSRS).To retrieve multiple values from a dataset with name-value pairs for a name where there is a 1-to-many relationship, use LookupSet Function (Report Builder and SSRS).

    Sono previste le restrizioni seguenti:The following restrictions apply:

  • La funzioneMultilookup viene valutata dopo l'applicazione di tutte le espressioni di filtroMultilookup is evaluated after all filter expressions are applied

  • È supportato solo un livello di ricerca.Only one level of look-up 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 funzioneMultilookup non può essere utilizzata come espressione per gli elementi del report seguenti:Multilookup 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

Si supponga che un set di dati denominato "Category" contenga il campo CategoryList che è un campo con un elenco di identificatori di categoria separato da virgole, ad esempio, "2, 4, 2, 1".Assume a dataset called "Category" contains the field CategoryList, which is a field that contains a comma-separated list of category identifers, for example, "2, 4, 2, 1".

Nel set di dati CategoryNames sono contenuti l'identificatore e il nome della categoria, come illustrato nella tabella seguente.The dataset CategoryNames contains the category identifier and category name, as shown in the following table.

IDID NomeName
11 AccessoriesAccessories
22 BikesBikes
33 ClothingClothing
44 ComponentsComponents

Per cercare i nomi che corrispondono all'elenco di identificatori, utilizzare Multilookup.To look up the names that correspond to the list of identifiers, use Multilookup. È necessario innanzitutto suddividere l'elenco in una matrice di stringhe, chiamare la funzione Multilookup per recuperare i nomi di categoria e concatenare i risultati in una stringa.You must first split the list into a string array, call Multilookup to retrieve the category names, and concatenate the results into a string.

L'espressione seguente, se inserita in una casella di testo in un'area dati associata al set di dati Category, visualizza "Bikes, Components, Bikes, Accessories":The following expression, when placed in a text box in a data region bound to the Category dataset, displays "Bikes, Components, Bikes, Accessories":

=Join(MultiLookup(Split(Fields!CategoryList.Value,","),  
   Fields!CategoryID.Value,Fields!CategoryName.Value,"Category")),  
   ", ")  

EsempioExample

Si supponga che un set di dati ProductColors contenga un campo dell'identificatore del colore ColorID e un campo del valore del colore Color, come illustrato nella tabella seguente.Assume a dataset ProductColors contains a color identifier field ColorID and a color value field Color, as shown in the following table.

ColorIDColorID ColoreColor
11 RedRed
22 BlueBlue
33 GreenGreen

Si supponga che il parametro multivalore MyColors non sia associato a un set di dati per i valori disponibili.Assume the multivalue parameter MyColors is not bound to a dataset for its available values. I valori predefiniti per il parametro sono impostati su 2 e 3.The default values for the parameter are set to 2 and 3. L'espressione seguente, se inserita in una casella di testo all'interno di una tabella, consente di concatenare i valori selezionati per il parametro in un elenco delimitato da virgole e visualizza "Blue, Green".The following expression, when placed in a text box in a table, concatenates the multiple selected values for the parameter into a comma-separated list and displays "Blue, Green".

=Join(MultiLookup(Parameters!MyColors.Value,Fields!ColorID.Value,Fields!Color.Value,"ProductColors"),", ")  

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 in 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)