Condividi tramite


Funzione Multilookup (Generatore report e SSRS)

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.

[!NOTA]

È possibile creare e modificare definizioni del report (con estensione rdl) in Generatore report e in Progettazione report di SQL Server Data Tools. 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 (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 Multilookup per recuperare un set di valori da un set di dati per coppie nome/valore in cui in ogni coppia è presente una relazione uno-a-molti. MultiLookup è l'equivalente alla chiamata di 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 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 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 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 e SSRS) e Ambito di espressioni per totali, aggregazioni e raccolte predefinite (Generatore report e SSRS).

Esempio

Si supponga che in un set di dati denominato "Category" sia contenuto il campo CategoryList che è un campo con un elenco di identificatori di categoria separato da virgole, ad esempio, "2, 4, 2, 1".

Nel set di dati CategoryNames sono contenuti l'identificatore e il nome della categoria, come illustrato nella tabella seguente.

ID

Nome

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 in un set di dati ProductColors sia contenuto un campo dell'identificatore del colore ColorID e un campo del valore del 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"),", ")

Vedere anche

Riferimento

Esempi di espressioni (Generatore report e SSRS)

Concetti

Utilizzo delle espressioni nei report (Generatore report e SSRS)

Tipi di dati nelle espressioni (Generatore report e SSRS)

Ambito di espressioni per totali, aggregazioni e raccolte predefinite (Generatore report e SSRS)