Reporting Services 2005
我的布局是这样的:
因此,一个特定的子报告将在GrpLevel1上运行,并且对于它包含的每个level2,将运行GrpLevel2下的子报告。
我遇到的问题是子报告想要跳转到下一页,在报告中留下空白的空洞。
如果一个子报告包含一个包含大量数据的表,并且它不能适合页面的3/4(报告的第一页上有报告标题位于前1/4),它将全部跳转到下一页只留下一个标题,而不是在第一页上打印它。
在桌子上我关闭了“Keep Together”。
我不知所措,准备好让我的立方体着火了。对此的见解将不胜感激。
更新 ****************这已在SSRS 2008 R2中修复*************** ********
它已与(SQL Server)Reporting Services 2008 R2一起修复。您现在可以在子报表上切换KeepTogether。分页看起来好多了。
答案 0 :(得分:6)
看起来没有解决此问题的方法。这个错误是由微软知道的,但它仍未在SSRS2008中修复。
来自知识库文章(http://support.microsoft.com/kb/938943)
出现此问题的原因是 子报表控件具有隐含性 KeepTogether财产。按设计, KeepTogether属性试图保持 一页上子报表的内容。 由于这种行为,报告 引擎在主要部分创建空白区域 报告子报表是否不合适 与主报告在同一页面上。 然后,报表引擎创建 子页面在新页面上。
他们列出的工作主要是“不要使用子报告”
答案 1 :(得分:4)
我不确定早期版本的SSRS,但我在SSRS 2008中遇到了同样的问题。
解决方案是更改Code中的Subreport属性。
转到解决方案资源管理器,右键单击您的报告,然后单击“查看代码”。
搜索子报告。
在子报告标记内,您会找到“<KeepTogether>
”,将其设置为“true”,将其更改为“false”
此属性不是设计者可用的,必须从实际的报告xml代码更改。
答案 2 :(得分:1)
右键单击子报表并选择format subreport,然后取消选中keep object together
答案 3 :(得分:0)
我解决此问题的另一种方法是将子报表放在报表标题中。当然,这非常依赖于报告内容,并且消除了后续部分的任何有用性,但它确实解决了我在第一页上有大量空白的问题。
答案 4 :(得分:0)
我花了一个星期来解决这个问题!但我确实找到了解决方案,并乐意与您分享。
我遇到了完全相同的问题。在我的主报告中,有一个表,每组有3组和2个不同的子报告。这些子报告有矩阵。我相信无论矩阵如何,子报表都放在表格中的组/细节带内,导致在这些部分之前,之间和之后打印出大量不必要的空白页面。这是一个痛苦的脖子,我正在考虑删除子报告,但它失去了报告的整个目的。
最后,修复它的是什么,而不是将子报表放在表中组的DETAIL带中,将它们放在组的页脚中。现在我知道这可能会改变/影响报告的格式,可能不符合您的报告目的。但这解决了我的问题。解决空白页问题的另一种方法是将子报告留在任何地方(细节或组带),并将OTHER细节带移动到一个页脚带中。基本上需要记住的是减少表格内的细节/组带数量。如果可以管理,则限制分组并在表中包含最少的子报告数。
希望这可以帮助那些人。
答案 5 :(得分:0)
对于SSRS 2008 如果子报表位于任何组中,则应转到组属性并将该组的保持在一起的属性切换为false。这对我有用。