Функции построителя отчетов — функция Multilookup в отчете с разбивкой на страницы (построитель отчетов)

Применимо: Microsoft построитель отчетов (SSRS) Power BI построитель отчетов конструктор отчетов в SQL Server Data Tools

Возвращает набор первых подходящих значений для указанного набора имен из набора данных, содержащего пары "имя-значение", в отчете с разбивкой на страницы.

Примечание.

Создать и изменить определение для отчета на страницу (RDL-файл) можно с помощью построителя отчетов (Майкрософт), построителя отчетов Power BI и конструктора отчетов в SQL Server Data Tools.

Синтаксис

  
Multilookup(source_expression, destination_expression, result_expression, dataset)  

Параметры

source_expression
(VariantArray) Выражение, вычисляемое в текущей области и указывающее набор имен или ключей для поиска. Например, для многозначного параметра =Parameters!IDs.value.

destination_expression
(Variant) Выражение, вычисляемое для каждой строки в наборе данных и указывающее имя или ключ для сопоставления. Например, =Fields!ID.Value.

result_expression
(Variant) Выражение, которое вычисляется для строки в наборе данных, где source_expression = destination_expression, и указывает возвращаемое значение. Например, =Fields!Name.Value.

набор данных
Константа, задающая имя набора данных в отчете. Например, «Colors».

Возврат

Возвращает значение VariantArrayили Nothing , если совпадения нет.

Замечания

Функция Multilookup служит для извлечения набора значений из набора данных, содержащего пары "имя-значение" со связью "один к одному". ФункцияMultiLookup является эквивалентом функции Lookup для набора имен или ключей. Например, для параметра с несколькими значениями на основе идентификаторов первичных ключей функция Multilookup может быть использована в выражении в текстовом поле таблицы для извлечения связанных значений из набора данных, не привязанного к параметру или таблице.

ФункцияMultilookup выполняет следующие действия.

  • вычисляет исходное выражение в текущей области и создает массив объектов типа variant;

  • для всех объектов массива вызывается функция Lookup (построитель отчетов и службы SSRS), а результаты добавляются к массиву возвращаемых значений;

  • возвращает набор результатов.

Для извлечения единственного значения для указанного имени из набора данных, состоящего из пар "имя/значение" со связью "один к одному", используйте функцию Lookup (построитель отчетов и службы SSRS). Для извлечения нескольких значений для имени из набора данных, состоящего из пар "имя-значение" со связью "один ко многим", используйте функцию LookupSet (построитель отчетов и службы SSRS).

Применяются следующие ограничения:

  • ФункцияMultilookup вычисляется после применения всех критериев фильтра.

  • Поддерживается только один уровень уточняющего запроса. Исходное, целевое и результирующее выражения не могут включать в себя ссылки на функцию уточняющего запроса.

  • Исходное и результирующее выражения должны возвращать один и тот же тип данных.

  • Исходное, целевое и результирующее выражения не могут включать в себя ссылки на переменные отчета или группы.

  • ФункциюMultilookup нельзя использовать в качестве выражения для следующих элементов отчета:

    • динамические строки соединения для источника данных;

    • вычисляемые поля в наборе данных;

    • параметры запроса в наборе данных;

    • фильтры в наборе данных;

    • параметры отчета;

    • Свойство Report.Language.

Дополнительные сведения см. в разделах Справочник по агрегатным функциям (построитель отчетов и SSRS) и Область выражения для суммирования, агрегатных функций и встроенных коллекций (построитель отчетов и SSRS).

Примеры

А. Использование функции MultiLookup

Предположим, набор данных Category содержит поле CategoryList, которое содержит список идентификаторов категорий с разделителями-запятыми, например "2, 4, 2, 1".

Набор данных «CategoryNames» содержит идентификатор и название категории, как показано в следующей таблице.

ИД Имя.
1 Аксессуары
2 Велосипеды
3 Clothing
4 Компоненты

Для поиска имен, соответствующих списку идентификаторов, используйте функцию Multilookup. Сначала необходимо разбить список на массив строк, вызвать функцию Multilookup для извлечения названий категорий и объединить результаты в строку.

Следующее выражение при помещении текстового поля в область данных, привязанную к набору данных Category, отображает «Bikes, Components, Bikes, Accessories».

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

B. Использование MultiLookup с многозначным параметром

Предположим, в наборе данных с именем ProductColors есть поле идентификатора цвета ColorID и поле значения цвета Color, как показано в следующей таблице.

ColorID Color
1 Красный
2 Синий
3 Зеленый

Предположим, параметр с несколькими значениями MyColors не привязан к доступным значениям набора данных. По умолчанию для параметра заданы значения 2 и 3. Следующее выражение при помещении в текстовое поле таблицы объединяет несколько выбранных значений параметра в список с разделителями-запятыми и отображает «Blue, Green».

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

См. также

Использование выражений в отчетах (построитель отчетов и SSRS)
Примеры выражений (построитель отчетов и службы SSRS)
Типы данных в выражениях (построитель отчетов и службы SSRS)
Область выражений для итогов, агрегатов и встроенных коллекций (построитель отчетов и SSRS)