【问题标题】:SSRS - Proper syntax for expression value for IN filter having multiple integers?SSRS - 具有多个整数的 IN 过滤器的表达式值的正确语法?
【发布时间】:2022-08-13 21:15:30
【问题描述】:

这似乎应该很简单,但我似乎无法获得正确的语法。

我正在尝试向数据集添加过滤器,其中的值需要基于参数值。

我知道我可以像这样做一个基本的 IN 过滤器(名为 MyField 的参数是 INT 类型):

Expression: [MyField]
Operator: In
Value: 4,5

数据集仅返回 MyField 为 4 或 5 的记录。

但是,如果 MyParameter = 1 或 2,我只想显示 4 和 5。否则我想显示 5 和 6。我尝试为值设置一个表达式,例如:

=IIf(Parameters!Timeframe.Value = 1 OR Parameters!Timeframe.Value = 2, \"4,5\", \"5,6\")

这会导致有关“无法比较 System.Int64 和 System.String 类型的数据”的错误。

我也试过:

=IIf(Parameters!Timeframe.Value = 1 OR Parameters!Timeframe.Value = 2, \"CInt(4),CInt(5)\", \"CInt(5),CInt(6)\")

但这给出了同样的错误。如何像这样传递多个整数?

谢谢!

    标签: reporting-services


    【解决方案1】:

    设置另一个多值整数参数并将其放在参数列表的末尾。将其隐藏,以便用户永远不会看到它。

    现在您总是想显示 5,所以让我们将其添加为默认参数。单击添加以添加另一个默认参数。这次我们需要输入一个公式来选择我们要 4 还是 6:

    =IIf(Parameters!Timeframe.Value = 1 OR Parameters!Timeframe.Value = 2, 4, 6)
    

    现在您有一个包含两个值的多值参数:4 和 5,或 5 和 6,具体取决于 Timeframe 参数的值。在您的过滤器中使用这个新参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-19
      • 2016-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多