加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

vb.net – 如何使用具有多值参数的String.Filter

发布时间:2020-12-17 00:30:42 所属栏目:大数据 来源:网络整理
导读:在“公共功能”下的“SQL Server Reporting Services 2008 R2”中的“表达式”构建器窗口中 – 文字 – Item,有一个名为Filter的表达式.这似乎与.NET框架中的 Strings.Filter method相对应. Filter的描述如下: 返回一个从零开始的数组,该数组包含基于指定过
在“公共功能”下的“SQL Server Reporting Services 2008 R2”中的“表达式”构建器窗口中 – >文字 – > Item,有一个名为Filter的表达式.这似乎与.NET框架中的 Strings.Filter method相对应. Filter的描述如下:

返回一个从零开始的数组,该数组包含基于指定过滤条件的String数组的子集.

示例如下:

=Filter(Parameters!MultivalueParameter.Value,"3",True,CompareMethod.Binary)

示例和说明意味着您可以检查多值参数,以查看是否至少有一个选定值等于Match参数.我无法让它返回除#Error以外的任何内容,这意味着多值参数不是一维数组.参数!MultivalueParameter.Value.GetType().ToString()返回System.Object [].

有谁知道如何让这个工作?我正在使用以下工作来检查是否在多值参数中选择了值:

=IIF(InStr(" " + JOIN(Parameters!MultivalueParameter.Value," ") + " "," 3 ",CompareMethod.Text),false,true)

上面的代码有效,但它非常难看.如果它支持这种检查,我宁愿使用Filter函数.任何人都可以提供一个有效的代码示例吗?

问题出现了,因为来自MSDN的示例在某种程度上缺乏此讨论.确实= Filter(Parameters!MultivalueParameter.Value,“3”,CompareMethod.Binary)返回一个数组,但就SSRS而言,您不能简单地将数组输出到报表中.这是你看到错误的部分原因.

此外,SSRS似乎在处理Filter函数的两个可选参数时遇到问题.把它们留下来,你会好起来的.

您可以通过将数组的长度输出到textboc来立即测试它.

=Filter(Parameters!MultivalueParameter.Value,"3").Length

上面的结果应该是一个文本框,其中包含已过滤参数的整数长度.

因此,将所有这些结合起来,您可以通过以下方式实现所需的结果:

=IIF(Filter(Parameters!MultivalueParameter.Value," 3 ").Length > 0,"false","true")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读