Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возвращает набор первых подходящих значений для указанного набора имен из набора данных, содержащего пары «имя-значение».
Примечание |
|---|
В построителе отчетов или конструкторе отчетов SQL Server Data Tools можно создавать и изменять определения отчета (RDL). В каждой среде разработки существуют различные способы создания, открытия и сохранения отчетов и связанных элементов. Дополнительные сведения см. в разделе Разработка отчетов в построителе отчетов и конструкторе отчетов (SSRS) на веб-сайте microsoft.com. |
Синтаксис
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.dataset
Константа, задающая имя набора данных в отчете. Например, «Colors».
Возвращает
Возвращает значение VariantArray или Nothing, если совпадения нет.
Замечания
Функция Multilookup служит для извлечения набора значений из набора данных, содержащего пары «имя-значение» со связью «один к одному». Функция MultiLookup является эквивалентом функции Lookup для набора имен или ключей. Например, для параметра с несколькими значениями на основе идентификаторов первичных ключей функция Multilookup может быть использована в выражении в текстовом поле таблицы для извлечения связанных значений из набора данных, не привязанного к параметру или таблице.
Функция Multilookup выполняет следующие действия:
вычисляет исходное выражение в текущей области и создает массив объектов типа variant;
для всех объектов массива вызывается функция Функция подстановки (построитель отчетов и службы SSRS), а результаты добавляются к массиву возвращаемых значений;
возвращает набор результатов.
Функция Функция подстановки (построитель отчетов и службы SSRS) служит для извлечения единственного значения для указанного имени в наборе данных, состоящем из пар «имя-значение» со связью «один к одному». Для извлечения нескольких значений для указанного имени в наборе данных, состоящем из пар «имя-значение» со связью «один к многим», используйте функцию Функция LookupSet (построитель отчетов и службы SSRS).
Существуют следующие ограничения.
Функция Multilookup вычисляется после применения всех критериев фильтра.
Поддерживается только один уровень уточняющего запроса. Исходное, целевое и результирующее выражения не могут включать в себя ссылки на функцию уточняющего запроса.
Исходное и результирующее выражения должны возвращать один и тот же тип данных.
Исходное, целевое и результирующее выражения не могут включать в себя ссылки на переменные отчета или группы.
Функцию Multilookup нельзя использовать в качестве выражения для следующих элементов отчета:
динамические строки соединения для источника данных;
вычисляемые поля в наборе данных;
параметры запроса в наборе данных;
фильтры в наборе данных;
Параметры отчета
Свойство Report.Language
Дополнительные сведения см. в разделах Справочник по агрегатным функциям (построитель отчетов и службы SSRS) и Область выражения для итогов, агрегатных функций и встроенных коллекций (построитель отчетов и службы SSRS).
Пример
Предположим, набор данных «Category» содержит поле CategoryList, которое содержит список идентификаторов категорий с разделителями-запятыми, например «2, 4, 2, 1».
Набор данных «CategoryNames» содержит идентификатор и название категории, как показано в следующей таблице.
Идентификатор |
Название |
|---|---|
1 |
Accessories |
2 |
Bikes |
3 |
Clothing |
4 |
Components |
Для поиска имен, соответствующих списку идентификаторов, используйте функцию Multilookup. Сначала необходимо разбить список на массив строк, вызвать функцию Multilookup для извлечения названий категорий и объединить результаты в строку.
Следующее выражение при помещении текстового поля в область данных, привязанную к набору данных Category, отображает «Bikes, Components, Bikes, Accessories».
=Join(MultiLookup(Split(Fields!CategoryList.Value,","),
Fields!CategoryID.Value,Fields!CategoryName.Value,"Category")),
", ")
Предположим, в наборе данных ProductColors есть поле идентификатора цвета ColorID и поле значения цвета Color, как показано в следующей таблице.
ColorID |
Цвет |
|---|---|
1 |
Красный |
2 |
Синий |
3 |
Зеленый |
Предположим, параметр с несколькими значениями MyColors не привязан к доступным значениям набора данных. По умолчанию для параметра заданы значения 2 и 3. Следующее выражение при помещении в текстовое поле таблицы объединяет несколько выбранных значений параметра в список с разделителями-запятыми и отображает «Blue, Green».
=Join(MultiLookup(Parameters!MyColors.Value,Fields!ColorID.Value,Fields!Color.Value,"ProductColors"),", ")
См. также
Справочник
Примеры выражений (построитель отчетов и службы SSRS)
Основные понятия
Использование выражений в отчетах (построитель отчетов и службы SSRS)
Типы данных в выражениях (построитель отчетов и службы SSRS)
Примечание