Функции построителя отчетов — функция 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")