我能够使这个工作是SSRS 2008,但确实我的公司只有2005服务器我需要将报告降级到2005年。
这个想法是针对给定的人名,有两个关键字段EntityType和EntityId
所以我有一个数据集中的参数,其中Label是Name,值是EntityType_EntityId
我使用split函数从_
获取左侧和右侧2008年,我将数据集的查询参数设置为拆分功能,并且可以正常工作
2005年,我设置了每个报告参数
的默认值现在,当我运行报告并放置显示参数值的文本框时,值会正确显示,但查询不会运行。我猜这是生命周期问题
获取名称参数
运行报告
然后设置参数=名称拆分
但问题是我第二次运行报告我应该得到结果而不是。有谁知道我做错了什么。
我想我可以将下划线分隔的字符串传递给存储过程并在那里解析它,但我的问题是这可以在报告中完成吗?原因是其他调用者将参数作为两个单独的值传递。
答案 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