SSRS 2008 R2子报表仅在第一页上显示

时间:2014-04-08 23:50:03

标签: sql-server-2008 reporting-services nested subreport

这个网站的长时间浏览器,但第一次海报。通常情况下,我能够通过搜索找到我需要的答案,但在这种情况下,我还没有能够,而且它让我疯了!

我使用BIDS / SSRS 2008 R2创建会员续订表格,我的公司将邮寄给我们的客户。表单包含客户信息,包括会员费/订阅信息和其他帐单明细。

为了实现这一目标,

我已经构建了三个RDL:

  1. 主要报告(这是用户运行的报告)。包含基础数据集 (让我们称之为Proc 1),这只需要一个到期日期 拉出成员ID列表和相应的物理信息 (地址,电话,会员类型等)包含第一个子报告, 在列表中,按成员ID分组。

  2. 主报告中第一页的一个子报告。包含一个 它需要的每个字段的参数集。而不是执行Proc 1 再次,我将Proc 1的主要报告输出传递给该子报告。 此子报表中的所有内容也包含在一个列表中,已分组 按成员ID参数(从主报告传递)。

  3. 另一个子报表,嵌套在第一个子报表中,它会拉动 订阅信息。第一个子报告传递成员ID并付款 通过日期来详细设置嵌套子报表中的数据集(让我们调用它 Proc 2)。 Proc 2要求从第一页子报告到付款, 和一个成员ID,它从其父报告中获取。它显示 这个信息在一个表中,没有分组,因为它应该只是 一次接收一个ID ---作为其父子报告。和 主要报告。已经分组了。但是,我尝试过分组 表格基于会员ID,并没有什么区别。

  4. 我发现这种方法是必要的,因为我有两个写两个独立的存储过程:一个用于提取基本数据,另一个用于提取详细的计费数据。在不创建重复行的情况下组合两者是不可能的。当然,不可能将tablix分配给不同的数据集,而不是包含在其中的列表。因此需要一个子报告。我希望一切都有道理。

    无论如何,我的问题是嵌套的子报表只显示第一个客户的数据。事实上,它并没有为其他客户显示嵌套的子报告AT ALL。好像嵌套的子报表只是传递了第一个成员ID,但是我不知道如果给出分组的可能性如何?请注意,我没有在proc或report表达式中使用任何FIRST或聚合函数。我可以单独执行每个报告文件。

    我尝试在嵌套子报表中创建一个虚拟数据集(例如SELECT' Nothing' AS Nothing)并将其添加到文本框中,认为这会强制嵌套的子报表显示,但是它仍然没有。关于我可能做错了什么的想法?提前谢谢。

1 个答案:

答案 0 :(得分:0)

https://social.msdn.microsoft.com/Forums/en-US/9f8b9c42-90cb-4620-ad91-9754029ed4db/seemingly-random-error-subreport-could-not-be-shown-in-a-report-with-nested-subreports-ssrs?forum=sqlreportingservices

您的嵌套子报表可能会引发您看不到的错误。

报价

http://support.microsoft.com/kb/967749中所述的SQL Server 2008 Reporting Services中的已知问题应在SQL Server 2008 R2中修复。通常,出现此问题是因为参数值未正确传递到子报表,或者由于传递到子报表的特定值而导致子报表无效。

我认为您应该添加一个详细信息组,然后将子报表放入该单元格中。确保分组工作正常,然后将正确的值传递给子报表。