Поделиться через


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

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

Подстановка возвращает первое соответствующее значение для указанного имени из набора данных, содержащего пары name/value в отчете с разбивкой на страницы.

Примечание.

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

Синтаксис

Lookup(source_expression, destination_expression, result_expression, dataset)  

Параметры

Параметр Определение
source_expression (Variant) Выражение, которое вычисляется в текущей области и указывает имя или ключ для поиска. Например, =Fields!ProdID.Value.
destination_expression (Variant) Выражение, вычисляющее каждую строку в наборе данных и указывающее имя или ключ для сопоставления. Например, =Fields!ProductID.Value.
result_expression (Variant) Выражение, которое вычисляет строку в наборе данных, где source_expression destination_expression = и указывает значение для извлечения. Например, =Fields!ProductName.Value.
набор данных Константа, задающая имя набора данных в отчете. "Продукты" может быть примером используемого набора данных.

Возврат

Подстановка возвращает вариант или возвращает ничего , если совпадения нет.

Замечания

Используйте поиск , чтобы получить значение из указанного набора данных для пары "имя-значение", где есть связь "1–1". Например, для поля идентификатора в таблице можно использовать поиск для получения соответствующего поля Name из набора данных, который не привязан к региону данных.

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

  • Вычисляет исходное выражение в текущей области.

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

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

  • Возвращает результирующее значение выражения.

Чтобы получить несколько значений для одного поля имени или ключа, в котором существует связь "1 ко многим", используйте функции построитель отчетов — функцию LookupSet в отчете с разбивкой на страницы (построитель отчетов). Чтобы вызвать поиск набора значений, используйте функции построитель отчетов — функцию Multilookup в отчете с разбивкой на страницы (построитель отчетов).

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

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

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

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

  • Выражения источника, назначения и результата не могут содержать ссылки на переменные отчета или группы.

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

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

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

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

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

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

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

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

Пример

В следующем примере предположим, что таблица привязана к набору данных, который содержит поле для идентификатора продукта ProductID. Отдельный набор данных с именем Product содержит соответствующий идентификатор продукта и имя продукта.

В следующем выражении Lookup сравнивает значение ProductID с идентификатором в каждой строке набора данных с именем Product, а при обнаружении совпадения возвращает значение поля Name для этой строки.

=Lookup(Fields!ProductID.Value, Fields!ID.Value, Fields!Name.Value, "Product")