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)