Crystal reports 在Crystal Reports 2013中组织多个详细信息部分

Crystal reports 在Crystal Reports 2013中组织多个详细信息部分,crystal-reports,Crystal Reports,我正在Crystal Reports 2013中创建一个报告,该报告将为各种不同的视图显示相同的指标。我想在不同的细节部分将它们垂直层叠在一起 我会尽力解释的。我将第一个查询插入到第一个报告细节(“细节a”);此查询有两行 然后,我将在另一个详细信息部分(“详细信息B”)中插入一个类似的查询。我希望详细信息A中的每一行显示在报告的顶部,然后在下面显示“详细信息B”中的每一行(因此: 第1行的详细信息 第2行的详细信息 详情B第1行 详情B第2行 我的问题是,当我转到预览时,行的组织方式如下: 第

我正在Crystal Reports 2013中创建一个报告,该报告将为各种不同的视图显示相同的指标。我想在不同的细节部分将它们垂直层叠在一起

我会尽力解释的。我将第一个查询插入到第一个报告细节(“细节a”);此查询有两行

然后,我将在另一个详细信息部分(“详细信息B”)中插入一个类似的查询。我希望详细信息A中的每一行显示在报告的顶部,然后在下面显示“详细信息B”中的每一行(因此:

第1行的详细信息

第2行的详细信息

详情B第1行

详情B第2行

我的问题是,当我转到预览时,行的组织方式如下:

第1行的详细信息

详情B第1行

第2行的详细信息

详情B第2行

是否有任何方法可以格式化详细信息部分,以便我可以使每个详细信息部分中的所有行彼此相邻?请让我知道更多信息是否有用。

使用两个子报告(插入,子报告)。 这将允许子报表#1显示来自一个数据源的所有详细信息行。
子报表#2将显示来自其他数据源的所有详细信息行。

正在进行的是笛卡尔乘积。换句话说,第一个查询集将显示2行,而第二个查询集将显示另外2行。因此,2x2=4行

另一件需要注意的事情是,细节A和B不是独立的。我知道这不是很直观。让我试着告诉你Crystal是如何处理这一点的(这不是它真正的工作方式,只是了解它的一个有用的观点):

  • Crystal执行您的两个查询。 第一个查询的结果有两项,即1和2。 第二个查询的结果有其他2项,即3和4
  • Crystal检查两个结果集之间的链接。因为-我想-你没有告诉Crystal这个链接是什么,Crystal假设没有链接,所以它将笛卡尔积生成4行,即1/3,1/4,2/3,2/4
  • 然后Crystal生成了一种“foreach”语句。因此,对于4行的foreach,它打印一个details部分的实例
  • 由于“详细信息”部分有2个子部分,即“详细信息A”和“详细信息B”,因此最终将打印4个详细信息,如您所见:

  • 所以,@MilletSoftware已经指出(当我写这篇文章时,哈哈),最简单的解决方案是使用两个子报表。

    这正是我要找的。谢谢!谢谢你的解释。你说得对,我在将每个查询插入报表时清除了所有链接。这有助于我更直观地了解发生了什么。
    1 //1st detail section, subsection A, field from 1st result set
    3 //1st detail section, subsection B, field from 2nd result set
    1 //2nd detail section, subsection A, field from 1st result set
    4 //2nd detail section, subsection B, field from 2nd result set (second item)
    2 //3st detail section, subsection A, field from 1st result set (second item)
    3 //3st detail section, subsection B, field from 2nd result set
    2 //4nd detail section, subsection A, field from 1st result set (second item)
    4 //4nd detail section, subsection B, field from 2nd result set (second item)