Funzioni Generatore report - Funzione Multilookup in un report impaginato (Generatore report)

Si applica a:✅ Generatore di report Microsoft (SSRS) ✅ Power BI Report Builder ✅ Report Designer in SQL Server Data Tools

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 in un report impaginato.

Nota

È possibile creare e modificare file di definizioni di report impaginati (con estensione rdl) in Generatore report di Microsoft, Power BI Report Builder e Progettazione report di SQL Server Data Tools.

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 stabilire 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, e che specifica il valore da recuperare. Ad esempio, =Fields!Name.Value.

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

Restituzione

Restituisce VariantArrayo Nothing se non viene rilevata alcuna corrispondenza.

Osservazioni:

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. 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.

Tramite la funzioneMultilookup vengono effettuate le operazioni seguenti:

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

  • Per ogni oggetto nella matrice, chiama la 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, usare la 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, usare la Funzione LookupSet (Generatore report e SSRS).

Si applicano le seguenti restrizioni:

  • La funzioneMultilookup 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, di destinazione e di risultato non possono includere riferimenti a variabili di report o di gruppo.

  • La funzioneMultilookup 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 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).

Esempi

R. Usare la funzione MultiLookup

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

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

ID Nome
1 Accessori
2 Bikes
3 Clothing
4 Componenti

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

B. Usare la funzione MultiLookup con il parametro multivalore

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.

ColorID Colore
1 Rosso
2 Blu
3 Verde

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"),", ")  

Vedi anche

Utilizzo delle espressioni nei report (Generatore di report e SSRS)
Esempi di espressioni (Generatore di report e SSRS)
Tipi di dati nelle espressioni (Generatore di report e SSRS)
Ambito di espressioni per totali, aggregazioni e raccolte predefinite (Generatore di report e SSRS)