【问题标题】:SSRS Passing multi-select parameter to reportSSRS 传递多选参数报告
【发布时间】:2014-10-22 08:15:46
【问题描述】:

我有一份从存储过程中获取数据的报告。 我需要将多选下拉列表中的 CustomerID 传递给我的报告。

我的存储过程如下所示:

@CustomerIds varchar(500)

select *
  FROM [Application].[ApplicationVersion] APPVERS 
 WHERE APPVERS.CustomerId IN ( @CustomerIds )
  • 在我的报告中,我有参数“CustomerIds”,数据类型设置为整数(我尝试使用“TEXT”,但它也不起作用)。参数设置为“允许多个值”

  • 在定义了我的数据集的报表上,我将@CustomerIds 定义如下:“=SPLIT(JOIN(Parameters!CustomerIds.Value,","),",") "(我试过了仅使用 SPLIT,仅使用 JOIN,但它不起作用)

谁能帮帮我?

【问题讨论】:

    标签: reporting-services parameters multi-select ssrs-2008-r2


    【解决方案1】:

    我通常的处理方法是使用过滤器。

    • 从 SQL 查询中删除 where 子句。
    • 右键单击数据集并选择属性 > 过滤器。
    • 添加。
    • 在表达式下拉列表中选择要过滤的字段。在您的情况下,“CustomerId”
    • 选择“In”作为运算符。
    • 按值上的“fx”以创建表达式,单击参数,然后从列表中选择您的参数。确保从末尾删除“(0)”,因为这仅采用第一个选定的值。

    【讨论】:

    • 我试过了,我得到“无法比较 System.Int32 和 System.String 类型的数据。请检查 FilterExpression 返回的数据类型”
    • 检查您的参数属性,标签和值参数是否正确?这实质上意味着您的表达式值和值属于不同类型。
    • 解决了,报表的参数设置为Text。将其更改为整数。
    • 如果有帮助,请接受答案:) +1 也不会错过:P
    • 我尝试接受答案,但出现错误。我会在几分钟后重试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多