具有 StoredProcedure 数据集的 RDLC 能否处理 OUTPUT 参数

Can a RDLC with a StoredProcedure dataset handle OUTPUT Parameter

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

我的 StoredProc 有一个 OUTPUT 参数,它接收一个 XML 字符串和一个 id 列表来过滤我的 table <ListXML><ItemId>10</ItemId><ItemId>11</ItemId></ListXML>.

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

到目前为止,我正在使用 System.Xml 参考在报告属性中使用 CustomCode 处理案例,但我不喜欢必须使用外部参考(尤其是在服务器上部署报告时),copy-pasting 每个报告中代码的开销,我担心我的团队会忘记复制自定义代码并开发其他解决方案来处理该问题。我宁愿让我的 StoredProcedure return 我的 Id 格式化字符串显示在我的报告 header.

我用虚拟 sp

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

    select top 10 * from item
END

它向我揭示了它不能正常工作。 Visual Studio 确实将 'Hello' 设置为 'default value' 到我在报告中的参数,但是如果我为我的报告参数赋值,它不会被存储过程覆盖。

任何关于这个问题的见解或任何其他解决问题的方法都将不胜感激

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

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

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