具有StoredProcedure数据集的RDLC是否可以处理OUTPUT参数

时间:2015-10-23 15:09:41

标签: sql-server stored-procedures reporting-services parameters rdlc

我有很多基于SqlServer上的StoredProcedure数据集的RDLC报告。

我的StoredProc有一个OUTPUT参数,该参数接收带有id列表的XML字符串,以过滤我的表<ListXML><ItemId>10</ItemId><ItemId>11</ItemId></ListXML>

我还想在我的报告标题上显示格式化的ID列表,以便用户可以看到他们发送的内容10, 11

到目前为止,我正在使用System.Xml引用在报告属性中使用CustomCode处理这种情况,但我不喜欢使用外部引用(特别是在服务器上部署报告时),开销在每个报告中复制粘贴代码,我担心我的团队会忘记复制自定义代码并开发其他解决方案来处理问题。我宁愿让我的StoredProcedure返回我在报告标题上显示的格式化ID字符串。

我用虚拟sp

测试了这个案例
CREATE PROCEDURE [dbo].[Rep_Test]
    @test VARCHAR(20) OUTPUT        
AS
BEGIN
    set @test = 'hello'

    select top 10 * from item
END

它向我透露它对蝙蝠不起作用。 Visual Studio确实将“Hello”设置为报表中我的参数的“默认值”,但是如果我给报表参数赋值,它将不会被存储过程覆盖。

非常感谢任何有关该主题或任何其他解决方案的见解

1 个答案:

答案 0 :(得分:0)

没有。 RDLC无法处理其数据集中的OUTPUT参数。您必须使用解决方法。

一种解决方法是使用一个包装程序来读取内部过程的结果集,并在每一行中添加另一个列,其中包含输出参数的值。

可以在here找到更详细的代码说明。