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

时间:2015-10-28 07:24:20

标签: sql-server reporting-services sql-server-2008-r2 ssrs-2008-r2 ssrs-2012

我有一份包含5个子报告的主要报告。

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

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

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

我还根据我的商店程序检查了每个参数值和数据类型都是正确的。

我尝试过从子报告属性逐个删除多值参数来检查天气问题是由于这个多值参数还是什么!

当我们使用子报告属性从主报告到子reprot提供值时 - 这里当我点击多值参数时,它出现

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

所以没关系?因为我将它用作多选的值。

我遇到了这个问题,我遇到了错误,

  

错误:无法显示子报告。

请提供任何帮助,提前致谢。

请注意:

我查了this,但没有成功

我还检查了this,但没有成功

Getting below error on main Report page,

enter image description here

我还尝试上传SSRS-2012上的所有报告,但没有成功。

9 个答案:

答案 0 :(得分:4)

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

  

我还检查了this,但没有成功

您引用的帖子由lethaljd提供以下接受的答案:

  

这是SSRS 2008中的已知缺陷。我不确定是不是   已修补,但已在SSRS 2012中修复。

     

如您所见,解决方法是使用单独的数据集。

     

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

如果您检查了lethaljd提供的来源,则表明它尚未修补,也可能永远不会,因为它不再是新版本中的问题。

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

话虽如此,我不希望这个答案是非建设性的或消极的。我只是想帮助你走上正轨。

答案 1 :(得分:1)

你应该检查一下:

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

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

答案 2 :(得分:1)

除了检查上述明显的步骤外... (有些人可能会说这也是显而易见的......) 我必须确保参数的数据类型(在子报表中)与主报表中匹配的列匹配。

当你这样做并且你仍然收到错误时......

我假设你像我一样使用VStudio。 这就是我清理VStudio缓存的方法......

卸载报告 关闭VStudio 转到WinExplorer中的report文件夹。 备份解决方案文件夹 现在转到Solution文件夹下的Project文件夹 请注意,有3种类型的文件: - .rdl< - 这包含报告定义...请勿触摸此... - .rdl.data< - 包含报告执行的缓存数据 - .rds< - 这是您的数据源定义...无需触摸它 - .rptproj< - 这包含您的项目定义...请勿触摸它 - .rptproj.user< - 请勿触摸此内容...它包含数据源的凭据 然后你有一个包含3个子文件夹的bin文件夹... Debug,Release和Debuglocal

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

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

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

我的问题是由于本地用户具有查看所有报告的管理员权限,而用于部署的 SSRS 帐户只有查看父报告的权限,而没有查看子报告的权限。

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

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

答案 7 :(得分:0)

就我而言,问题不是将任何参数从主报告传递到子报告。添加参数后就解决了。

答案 8 :(得分:0)

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