在SSRS中设置其他参数的参数

时间:2010-04-15 13:41:41

标签: reporting-services reportingservices-2005 ssrs-2008

我能够使这个工作是SSRS 2008,但确实我的公司只有2005服务器我需要将报告降级到2005年。

这个想法是针对给定的人名,有两个关键字段EntityType和EntityId

所以我有一个数据集中的参数,其中Label是Name,值是EntityType_EntityId

我使用split函数从_

获取左侧和右侧

2008年,我将数据集的查询参数设置为拆分功能,并且可以正常工作

2005年,我设置了每个报告参数

的默认值

现在,当我运行报告并放置显示参数值的文本框时,值会正确显示,但查询不会运行。我猜这是生命周期问题

获取名称参数
运行报告
然后设置参数=名称拆分

但问题是我第二次运行报告我应该得到结果而不是。有谁知道我做错了什么。

我想我可以将下划线分隔的字符串传递给存储过程并在那里解析它,但我的问题是这可以在报告中完成吗?原因是其他调用者将参数作为两个单独的值传递。

1 个答案:

答案 0 :(得分:0)

我已经找到了合适的答案

将查询源设置为文本

DECLARE @EntityType INT
DECLARE @EntityId INT

IF @Name = '0_0'
 BEGIN
      SET @EntityType = NULL
      SET @EntityId = NULL
 END
ELSE
BEGIN
    SET @EntityType = LEFT(@Name,CHARINDEX('_',@Name)-1)
    SET @EntityId = RIGHT(@Name,LEN(@Name) - CHARINDEX('_',@Name))
END


EXEC proc @EntityType, @EntityId