Share via


Funzione Multilookup (Generatore report 3.0 e SSRS)

Restituisce il set di valori di prima corrispondenza per il set di nomi specificato da un set di dati che contiene coppie nome/valore.

Nota

È possibile creare e modificare definizioni del report (con estensione rdl) in Generatore report 3.0 e in Progettazione report di Business Intelligence Development Studio. Ogni ambiente di creazione offre modalità differenti per creare, aprire e salvare report ed elementi correlati. Per ulteriori informazioni, vedere Progettazione di report tramite Progettazione report e Generatore report 3.0 (SSRS) nel Web all'indirizzo microsoft.com.

Sintassi

Multilookup(source_expression, destination_expression, result_expression, dataset)

Parametri

  • source_expression
    (VariantArray) Espressione valutata nell'ambito corrente che specifica il set di nomi o chiavi da ricercare. Ad esempio per un parametro multivalore, =Parameters!IDs.value.

  • destination_expression
    (Variant) Espressione valutata per ogni riga in un set di dati che specifica il nome o la chiave con cui eseguire la corrispondenza, ad esempio =Fields!ID.Value.

  • result_expression
    (Variant) Espressione valutata per la riga nel set di dati in cui source_expression = destination_expression che specifica il valore da recuperare, ad esempio =Fields!Name.Value.

  • dataset
    Costante che specifica il nome di un set di dati nel report, ad esempio "Colori".

Return

Restituisce VariantArray o Nothing se non viene rilevata alcuna corrispondenza.

Osservazioni

Utilizzare la funzione Multilookup per recuperare un set di valori da un set di dati per coppie nome-valore per cui in ogni coppia è presente una relazione uno-a-uno. La chiamata alla funzione MultiLookup è equivalente alla chiamata della funzione Lookup per un set di nomi o chiavi. 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.

Multilookup esegue le operazioni seguenti:

  • Valuta l'espressione di origine nell'ambito corrente e genera una matrice di oggetti variant.

  • Per ogni oggetto nella matrice, chiama Funzione Lookup (Generatore report 3.0 e SSRS) e aggiunge il risultato alla matrice restituita.

  • Restituisce il set di risultati.

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, utilizzare Funzione Lookup (Generatore report 3.0 e 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, utilizzare Funzione LookupSet (Generatore report 3.0 e SSRS).

Vengono applicate le restrizioni seguenti:

  • La funzione Multilookup viene valutata dopo l'applicazione di tutte le espressioni di filtro

  • È supportato solo un livello di ricerca. Un'espressione di origine, destinazione o risultato non può includere un riferimento a una funzione di ricerca.

  • Le espressioni di origine e di destinazione devono restituire lo stesso tipo di dati.

  • Le espressioni di origine, destinazione e risultato non possono includere riferimenti a variabili di report o di gruppo.

  • La funzione Multilookup non può essere utilizzata come espressione per gli elementi del report seguenti:

    • Stringhe di connessione dinamiche per un'origine dati.

    • Campi calcolati in un set di dati.

    • Parametri di query in un set di dati.

    • Filtri in un set di dati.

    • Parametri di report.

    • Proprietà Report.Language.

Per ulteriori informazioni, vedere Riferimento a funzioni di aggregazione (Generatore report 3.0 e SSRS) e Informazioni sull'ambito di espressioni per totali, aggregazioni e raccolte predefinite (Generatore report 3.0 e SSRS).

Esempio

Si supponga che un set di dati denominato "Category" contenga il campo CategoryList, ovvero un campo contenente un elenco separato da virgole di identificatori di categoria, ad esempio "2, 4, 2, 1".

Il set di dati CategoryNames contiene l'identificatore e il nome della categoria, come illustrato nella tabella seguente.

ID

Name

1

Accessories

2

Bikes

3

Clothing

4

Components

Per cercare i nomi che corrispondono all'elenco di identificatori, utilizzare 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.

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":

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

Si supponga che un set di dati ProductColors contenga un campo identificatore di colore ColorID e un campo valore colore Color, come illustrato nella tabella seguente.

ColorID

Color

1

Red

2

Blue

3

Green

Si supponga che il parametro multivalore MyColors non sia associato a un set di dati per i valori disponibili. I valori predefiniti per il parametro sono impostati su 2 e 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".

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