首页 > 解决方案 > 无法使用报表生成器编辑旧的 SSRS 报表

问题描述

我在一份新工作中接管了报告创建/维护。我们使用的是 SQL Server 2012 和 SSRS 2012。当我尝试使用报表生成器编辑其中一个较旧的报表时,我发现我什至无法在不破坏报表的情况下向数据集中的某些代码添加注释。这个特定的报告有 14 个参数,我所要做的就是尝试向数据集添加注释行(不要介意更改代码),然后单击“确定”关闭数据集编辑它会显示此 DEFINE QUERY PARAMETERS 提示以验证参数。如果单击“确定”,则“报告数据”窗口中的数据集下方的所有字段都会消失,并且报告不起作用。
在不尝试应用任何编辑的情况下运行报告本身仍然可以正常工作,是编辑破坏了它。我可以编辑其他以前的报告,只是这个特定的报告显示了这种行为。

在此处输入图像描述

标签: reporting-servicesssrs-2012

解决方案


经过这么长时间终于想通了。该数据集的 SQL 至少有十几个 IF-THEN 语句分布在整个代码中,它们不断检查选定的某个输入参数。我终于将之前报告编写器的代码简化为一个大的 IF-THEN-ELSE 语句,现在可以在 Report Builder 和 Visual Studio 中毫无问题地编辑数据集。我猜微软的 SSRS 解析例程在 2018 年编写此报告(所有这些 IF-THEN 语句都没有问题)和 2020 年(当时解析失败但没有有用的错误消息)之间发生了一些变化。


推荐阅读