【问题标题】:Array of Strings as value for Multi-value parameter in SSRS 2012?字符串数组作为 SSRS 2012 中多值参数的值?
【发布时间】:2017-04-24 21:10:01
【问题描述】:

是否可以将多值参数的值分配给数组?我希望能够将值(字符串数组)传递给我的查询,以便我可以像这样过滤:

INNER JOIN blah E   
ON E.EventKey = F.EventKey  
AND E.EventCd in (@ParameterArray)

在我的参数中,我想做这样的事情:

Label | Value  
1 | ('12323467', '12398723')  
2 | ('12938412', '12343211', '91TS1231')  
etc.

这里的目标是让我的报告的用户不必单独选择每个代码,他们只需在多值下拉列表中选择它所属的 bin,然后查询/报告将完成剩下的工作。我尝试以不同的方式使用拆分/加入,但没有找到解决方案。

此外,如果用户从下拉列表中选择多个值,我想附加数组。我不确定这在 SSRS 2012 中是否可行。

【问题讨论】:

    标签: reporting-services parameters ssrs-2012


    【解决方案1】:

    由于您的参数值中有多个值,因此您无法摆脱简单的IN 语句。但是你仍然可以让它工作。

    首先,Join 将值全部传递给查询。因此,在 Dataset properties > Parameters 选项卡中,表达式将类似于:

    =Join(Parameters!EventCodes.Value, ",")
    

    请注意,“值”一词后没有“(0)”。如果您双击参数名称,它将为您添加该名称,但这只会返回第一个选定的值。

    接下来,更新查询中的条件以使用此逗号分隔值字符串。

    AND ',' + @ParameterArray + ',' like '%,' + E.EventCd + ',%'
    

    额外的逗号确保您永远不会有部分匹配。

    另外,为了澄清,参数值不应包含任何引号、括号或空格。你只想有一个逗号分隔的字符串。例如,Value 表达式可以是:

    ="12323467,12398723"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      相关资源
      最近更新 更多