0

我有一个看起来像这样的数据集

Name              Spend
"First Aid"       2
"Healing Arts"    0
"Surgeon"         NULL

然后我有三个单独的文本框,它们将填充与名称匹配的列的值。

示例:spend如果值等于此值,则在文本框中name显示值First Aid 我已经制作了以下表达式

=Lookup(Fields!skill_name.Value, "First Aid", Fields!skill_spend.Value, "Skills")

然而,我的问题是我收到一个错误,说skill_name缺少它dataset,这对我来说没有意义,因为它在表达式的末尾被告知 ( skills)

4

1 回答 1

2

我认为您可能误解了Lookup它的目的和使用方式。该Lookup函数的用途在某些方面类似于JOINSQL 中的 a。基本上,您将有两个数据集,每个数据集都有一个匹配的字段。在这种情况下,表达式将匹配skill_name字段并查找skill_spend值,表达式将如下所示。

=Lookup(Fields!skill_name.Value, Fields!skill_name.Value, Fields!skill_spend.Value, "Skills")

文档所示,第一个引用skill_name是您从当前数据集中引用的字段。第二个参考是您尝试从中查找值的数据集。第三个表达式是您正在查找的字段,数据集应该是您尝试从中查找值的数据集,而不是当前的数据集范围。

Lookup(source_expression, destination_expression, result_expression, dataset)

据我所知,您只有一个数据集,但需要正确的支出值的单独文本框。我认为下面的表达式会起作用。

= IIF(Fields!skill_name.Value = "First Aid", Fields!skill_spend.Value, Nothing)

此表达式应skill_spend仅获取与“急救”行关联的值,否则将文本框留空。

于 2019-10-08T19:56:06.603 回答