如何找到对象中的特定值?

How can I find a specific value in an object?

我有一个参数,它是一个对象并包含一些值:

key Value
0 Apple
1 Juice
2 Banana

所以如果我Parameters!MyParam.Value(0)结果是AppleParameters!MyParam.Value(1)结果是Juice,等等

我想做的是查看我的对象是否包含像 Banana 和 return true 这样的值,如果有的话。

可能吗?我没有在网上找到任何东西。我发现最接近的是 inStr 但它只适用于字符串...

这里有几点要指出...

在 SSRS 中,参数由值和标签组成。您描述为键的内容就是值,您描述为值的内容就是标签。

您可以使用参数引用参数的标签属性!MyParam.Label

从你的问题中不清楚,但我假设你想搜索你的参数以查看是否已 selected 了特定值。如果是这样,那么您可以这样做...

对于这个例子,我手动添加了参数 values/labels,但您可以根据需要添加参数。

接下来,出于演示目的,我向报告添加了一些标签和字段,如下所示。

selected参数的表达式是

="|" & JOIN(Parameters!MyParam.Label, "|") & "|"

'contains banana'表达式为

=("|" & JOIN(Parameters!MyParam.Label, "|") & "|").Contains("|Banana|")

JOIN 只是将所有 selected 参数标签连接在一起,使用管道符号 | 作为分隔符。然后我在开头和结尾添加 |,这样就可以搜索 |searchterm|。这可以避免错误,例如,如果您在参数列表中有“Pineapple”和“apple”并搜索“apple”,即使只有“pineapple”被 selected,它也会显示 true。通过搜索“|苹果|”我们避免这种情况。

一旦我们有了连接结果,我们就可以使用 VB 函数 .Contains() 来搜索我们想要的东西。

如果我 运行 报告和 select 所有值我得到这个

如果我 select 只有苹果和果汁,我会得到这个