Reporting services SRS报告:URL参数、多个值

Reporting services SRS报告:URL参数、多个值,reporting-services,parameters,Reporting Services,Parameters,与这个问题类似: 但我已经掌握了这一点。我的问题是,我们刚刚在工作中添加的新报告具有参数值(即:10新,20取消,30完成)。就我的一生而言,我不知道如何为同一个参数传递多个值。(因此,从上一个示例中,选择10个New和30个Complete作为参数的值) 这能做到吗?如果是这样,怎么做?我相信你和其他任何报告一样,你只需要用逗号分隔列表(即10,20),这就是为什么你需要一个函数来将逗号分隔的字符串拆分成where子句的表(听起来你已经讨论过了)我相信你和其他任何报告一样,您只需用逗号分隔列表

与这个问题类似:

但我已经掌握了这一点。我的问题是,我们刚刚在工作中添加的新报告具有参数值(即:10新,20取消,30完成)。就我的一生而言,我不知道如何为同一个参数传递多个值。(因此,从上一个示例中,选择10个New和30个Complete作为参数的值)


这能做到吗?如果是这样,怎么做?

我相信你和其他任何报告一样,你只需要用逗号分隔列表(即10,20),这就是为什么你需要一个函数来将逗号分隔的字符串拆分成where子句的表(听起来你已经讨论过了)

我相信你和其他任何报告一样,您只需用逗号分隔列表(即10,20),这就是为什么您需要一个函数将逗号分隔的字符串拆分为where子句的表(听起来您已经讨论过了)

如果要将多个值传递给参数表,请首先确保将参数标记为允许多个值


然后在查询中,确保使用某种拆分函数来分隔字符串。

如果要将多个值传递给参数,请首先确保将参数标记为允许多个值


然后在查询中确保使用某种拆分函数来分隔字符串。

您不必拆分它。您可以执行以下操作…
确保逗号delim字符串中的第一个和最后一个值用引号括起来(我使用udf来实现这一点)

在任何字符串字段上都像做梦一样工作,但在日期和整数等方面可能会变得棘手。

然后,您还必须将筛选的字段强制转换为VARCHAR。

您不必拆分它。您可以执行以下操作…
确保逗号delim字符串中的第一个和最后一个值用引号括起来(我使用udf来实现这一点)

在任何字符串字段上都像做梦一样工作,但在日期和整数等方面可能会变得棘手。

然后还必须将筛选的字段强制转换为VARCHAR。

等等,什么?SQL报表服务服务器有一个报表查看器URL(如果您不确定我说的是什么,请参阅另一篇文章),它使用内置例程自动解析参数以显示报表。我无法控制。我试过使用逗号,但它不接受。如果您的SQL存储在报表中,您就不必担心这一点。如果您在存储过程中得到了它,那么SSRS将多值参数作为逗号分隔的字符串传入,然后您必须将其解析出来或转换为表。这很奇怪,仍然不起作用,但那是我无法找到的文章。我会将此转发给我们的报告团队。谢谢,等等,什么?SQL报表服务服务器有一个报表查看器URL(如果您不确定我说的是什么,请参阅另一篇文章),它使用内置例程自动解析参数以显示报表。我无法控制。我试过使用逗号,但它不接受。如果您的SQL存储在报表中,您就不必担心这一点。如果您在存储过程中得到了它,那么SSRS将多值参数作为逗号分隔的字符串传入,然后您必须将其解析出来或转换为表。这很奇怪,仍然不起作用,但那是我无法找到的文章。我会将此转发给我们的报告团队。谢谢
IF CHARINDEX(',', @Param) <> 1 SET @Value = ',' + @Value        
IF CHARINDEX(',', REVERSE(@Value)) <> 1 SET @Value = @Value + ','
SELECT
    t.Field1,
    t.Field2
FROM
    dbo.Table1 t
WHERE
    '%,' + t.Field + ',%' LIKE @Parm