无法显示子报告。子报告单独工作 - 不与主报告一起工作

Sub report could not be shown. Sub report works separately - Not with Main Report

我有一份主报告和 5 个子报告。

子报表包含超过 10 个参数。 (使用 10 Multi valued parameters - 所以我使用 Join 方法将值从 主报表传递到子报表

我还单独测试了子报告,一切正常,显示数据和所有内容。

我已经尝试制作另一个主报告并尝试将该子报告放入这个新创建的主报告中,但仍然没有成功。

我还根据我的存储过程检查了每个参数值和数据类型都是正确的。

我尝试通过从子报告属性中一个一个地删除多值参数来检查天气问题是由这个多值参数还是什么引起的!

当我们使用子报表属性从主报表向子报表提供值时 - 这里当我单击多值参数时它出现

=Parameters!ParameterName.Value(0) -- (0)

所以好不好?因为我将其用作多选值。

我被这个问题困住了,我遇到了以下错误,

Error: Subreport could not be shown.

任何帮助,请提前致谢。

请注意:

我检查了 this,但没有成功

我也检查了 ,但没有成功

Getting below error on main Report page,

我也试过上传所有关于 SSRS-2012 的报告,但没有成功。

我相信您实际上已经找到了问题的原因。

I've also checked , nut no success

您所指的 post 有以下被 lethaljd 接受的答案:

This is a known defect in SSRS 2008. I'm not sure if it has been patched yet, but it has been fixed in SSRS 2012.

As you have found, the workaround is to use separate datasets.

https://connect.microsoft.com/SQLServer/feedback/details/648560/subreport-with-shared-dataset-throws-error

如果您查看 lethaljd 提供的源代码,它表明这也没有被修补,而且可能永远不会被修补,因为它在较新的版本中不再是一个问题。

这意味着您可能应该使用较新版本的 SSRS 或考虑一种解决方法。我想帮助您考虑不同的方法,但正如我在原始评论中所述,您需要提供更多信息。
由于问题是现在写的,除了使用不同的版本之外,我没有足够的细节来给你任何有根据的建议。

话虽这么说,但我不希望这个答案被认为是非建设性的或消极的。我只是想帮助你走上正轨。

你应该检查这个:

  • 必须在主报表和子报表上将多个参数定义为多值(在子报表上定义以允许多个值)
  • 当您将多个参数传递给子报表时,您应该像 [@param] 那样传递它,而不是像 =Parameters!ParamName.Value(0)

在此 blog 中解释了如何将多个值发送到子报表。

除了检查上面明显的步骤... (有些人可能会说这也很明显......) 我必须确保参数的数据类型(在子报表中)与它们在主报表中匹配的列相匹配。

当您完成该操作但仍然出现错误时...

我假设您正在像我一样使用 VStudio。 这就是我清理 VStudio 缓存的方式...

卸载报告 关闭 VStudio 转到 WinExplorer 中的报告文件夹。 备份解决方案文件夹 现在转到解决方案文件夹下的项目文件夹 注意有 3 种类型的文件: - .rdl <-- 这包含报告定义...不要碰这个... - .rdl.data <-- 包含报表执行的缓存数据 - .rds <-- 这是您的数据源定义...无需触摸它 - .rptproj <-- 这包含你的项目定义......不要碰它 - .rptproj.user <-- 不要碰这个...它包含您的数据源的凭据 然后你有一个包含 3 个子文件夹的 bin 文件夹...... 调试、发布和本地调试

这是你要做的: 删除所有 .rdl.data 文件 删除 bin/Debug/* 下的所有文件并重复 DebugLocal 和 Release。

这应该会清理 VStudio 环境。 现在打开解决方案... 在 VStudio 中重新加载解决方案并重试。

这解决了一些讨厌的数据缓存问题。

右键单击数据集,然后单击 Dataset Properties。转到选项卡 Parameters。删除格式不正确的参数(即没有 @ 的参数)。

我刚刚遇到了同样的错误,(尽管我没有使用多值参数)我向子报表添加了 2 个新参数并在主报表中设置了参数值。

原来是子报表中的参数!我的 2 个新参数用于日期时间,但当这些参数由向导创建时,它们被设置为文本,一旦更改为 Date/Time 一切正常。

子报表对象路径数据可能已损坏(这发生在我身上)。修复是复制主报表中的子报表对象。然后在主报表中,将路径重新分配到子报表的位置。

我的问题是本地用户有admin权限可以查看所有报表,而部署时使用的SSRS账户只有父报表权限,没有子报表权限。

解决方案是授予 SSRS 帐户权限以通过 SSRS 门户网站查看子报表Url。

可以在报表服务器配置管理器中找到 SSRS Web 门户 URL。

在我的例子中,问题是没有将任何参数从主报告传递到子报告。我添加参数后就解决了。

如果你是 运行 带日期的参数,并且日期设置为未来日期,报告将失败并出现相同的错误,所以有时,只需检查参数就足够了