【问题标题】:SSRS report is emptySSRS 报告为空
【发布时间】:2014-06-18 21:20:05
【问题描述】:

我开始学习 Reporting Services。我做了第一份使用参数化存储过程作为数据源的报告。不幸的是,即使从 Management Studio 调用该过程也有效,但报告显示为空。参数提示在那里,我输入了应该工作的值。有没有办法查看传递给 SQL Server 的内容(我正在使用 VS 2012 PRO 和 SQL Server 2012 Express,所以我没有 SQL Profiler...)?有没有办法显示错误?

【问题讨论】:

  • 您是否已经尝试在报表编辑器中预览 DataSet 的查询结果?
  • 在所有表格上方添加一个文本框,并将其设置为“看看我”之类的内容。如果它打印但您的其他控件未呈现,那么您没有将数据发送到您的报告。
  • 您还可以使用工具|SQL Server Profiler -> 在 SQL Studio 中启动新跟踪来显示该实例上正在处理的所有命令。如果您在同一个框中有 ssrs,请不要选择“事件”选项卡并选择“列过滤器”按钮并选择“登录过滤器”节点,然后选择 LIKE 文本框作为您正在测试的用户名。
  • 感谢 cmets。 Filburt,我确实在查询设计器中尝试了预览,它确实有效。 Irb,标题呈现,因此记录集返回空。我没有服务器分析器,因为正如我提到的,我正在运行 SQL 2012 Express,而 Express 版本没有配备分析器。

标签: reporting-services


【解决方案1】:

好的,我终于想通了。存储过程。接受一个可选参数:

@DealID varchar(15) = ''

我在 where 子句中像这样测试它:

WHERE (@DealID='') OR  (SA.Deal_ID = @DealID)

在数据集的参数设置中,我指定了一个默认值“”,并将其设置为接受空值并将其可见性设置为隐藏。

事实证明,即使指定了默认值,@DealID 参数在其中也会变为 null。当我注释掉WHERE子句时我才意识到这一点,我终于得到了报告上的数据。我通过像这样修改 WHERE 来解决它:

WHERE (@DealID='' or @DealID is null) OR  (SA.Deal_ID = @DealID)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多