报表生成器函数 - 分页报表中的 Lookup 函数(报表生成器)
适用于: Microsoft 报表生成器 (SSRS) Power BI 报表生成器 SQL Server Data Tools 中的报表生成器
Lookup 从分页报表中的包含名称/值对的数据集返回指定名称的首个匹配值。
注意
在 SQL Server Data Tools 中,你可以在 Microsoft 报表生成器、Power BI 报表生成器和报表设计器中创建和修改分页报表定义 (.rdl) 文件。
语法
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 。 |
数据集 (dataset) | 指定报表中数据集的名称的常量。 “产品”可能是你使用的数据集的示例。 |
返回值
Lookup 返回 Variant,或如果没有匹配项,则返回 Nothing。
注解
使用 Lookup 从指定的数据集中为名称-值对(每对具有 1 对 1 关系)检索值。 例如,对于表中的 ID 字段,可以使用 Lookup 从未绑定到该数据区域的数据集检索对应的“名称”字段。
Lookup 执行下列操作:
计算当前作用域中源表达式的结果。
根据指定数据集的排序规则,在应用筛选器后对指定数据集的每行计算目标表达式的结果。
对于源表达式和目标表达式的第一个匹配,计算数据集中该行的结果表达式。
返回结果表达式值。
要检索存在一对多关系的单个名称或键字段的多个值,请使用报表生成器函数 - 分页报表中的 LookupSet 函数(报表生成器)。 要为一组值调用 Lookup,请使用报表生成器函数 - 分页报表中的 Multilookup 函数(报表生成器)。
存在以下限制:
在应用所有筛选表达式后计算Lookup 的结果。
只支持一个级别的查找。 源、目标或结果表达式不能包含对查找函数的引用。
源和目标表达式必须对同一数据类型计算结果。 返回类型和计算后的结果表达式的数据类型相同。
源、目标和结果表达式不能包含对报表或组变量的引用。
Lookup 不能作为以下报表项的表达式:
数据源的动态连接字符串。
数据集中的计算字段。
数据集中的查询参数。
数据集中的筛选器。
报表参数。
Report.Language 属性。
有关详细信息,请参阅报表生成器函数 - 分页报表的聚合函数引用(报表生成器)和报表生成器函数 - 分页报表的聚合函数引用(报表生成器)。
示例
在以下示例中,假定将某个表绑定到包含一个用于产品标识符 ProductID 的字段的数据集。 一个单独的称为“Product”的数据集包含相应的产品标识符“ID”和产品名称“名称”。
在下面的表达式中,Lookup 将 ProductID 的值与名为“Product”的数据集的每行中的 ID 进行比较,当找到匹配项后,为该行返回“名称”字段的值。
=Lookup(Fields!ProductID.Value, Fields!ID.Value, Fields!Name.Value, "Product")