SSRS 报告参数

SSRS report parameter

我在使用正确参数呈现报告时遇到问题。 我们有 RDL 报告,其日期参数的默认值为表达式“=today()”。

在项目中,我在 c# 中有以下代码

for(int i = 0; i < 15; i++)
{
    serverReport.SetParameters(new ReportParameter("dt1",date.ToString()));
    File.WriteAllBytes(path, serverReport.Render("PDF"));
}

第一次迭代 sql 存储过程使用默认参数调用,后续迭代使用传递日期调用(我用 sql 分析器检查过)。

我想提一下,在循环中我有许多其他报告具有完全相同的默认日期参数,但问题出在这个报告上。我已经比较了 2 个报告中的所有参数属性(一个有效,另一个不能正常工作),但它们是相同的。我找不到任何区别。

如果我删除默认值“=today()”,则报告工作正常。 也许同一个人有类似的问题并向我推荐一些关于这个的东西。提前致谢。

尝试完全删除服务器内的不工作报告(并测试,也是工作之一)并重新部署到服务器。您还可以在报告管理器中检查参数设置,因为差异可能是可见的。

我之前在报告参数方面遇到过此类问题,并且知道在您部署报告时参数设置并未一直被正确覆盖。

需要检查的几件事:

SetParameters 接受 IEnumerable<ReportParameter> 而不是单个 ReportParameter 对象。改为这样称呼它:

serverReport.SetParameters(new ReportParameter[] { ReportParameter("dt1", date.ToString()) } );

确保该参数没有填写可用值和默认值。如果传递的日期不是有效值之一(如果应用),它将不起作用。例如,如果可用值设置为 =Today,那么唯一能够正确 运行 的报告是第一个恰好使用该值的报告。

您确定 date.ToString() 传递的是适当且有效的日期吗?

服务器上报参数是否与开发环境匹配?参数设置不会自动更新,因此在服务器上所做的任何修改都不会因再次部署报表而被覆盖。检查服务器的报告参数并在必要时更新,或者简单地删除并重新部署报告。