Crystal reports 合并报表中的行

Crystal reports 合并报表中的行,crystal-reports,Crystal Reports,如果一行与上一行具有相同的ID,我想将它们组合在一起-将cubicFt和节省的部分相加$perFt将节省的部分除以cubicFt,因此不会求和,只需除以新结果即可。我还希望将描述连接起来,如下所示: 根据ID(或最左边的列)创建一个组。然后抑制详细信息部分和组标题。相反,您将把所有要显示的字段放在组页脚中。从这里可以简单地看出: 为cubicFt和Savings创建摘要或运行总计 重新配置$PerFt以使用在步骤1中创建的摘要/运行总计字段 通过创建共享字符串变量Descriptions组合描述

如果一行与上一行具有相同的ID,我想将它们组合在一起-将
cubicFt
节省的部分相加
$perFt
将节省的部分除以
cubicFt
,因此不会求和,只需除以新结果即可。我还希望将描述连接起来,如下所示:

根据ID(或最左边的列)创建一个组。然后抑制详细信息部分和组标题。相反,您将把所有要显示的字段放在组页脚中。从这里可以简单地看出:

  • cubicFt
    Savings
    创建摘要或运行总计
  • 重新配置
    $PerFt
    以使用在步骤1中创建的摘要/运行总计字段
  • 通过创建共享字符串变量
    Descriptions
    组合描述。每当组发生更改时,请使用
    Descriptions=“”
    将其重置。只要组没有更改,就将描述字符串添加到变量中。比如:

    Descriptions = Descriptions & " ; " & {yourtable.Description}
    
  • 然后在组页脚中创建一个最终公式
    showsdescription
    ,以显示结果,并使用
    右(Descriptions,LEN(Descriptions)-2)
    根据ID(或最左边的列)创建一个组。然后抑制详细信息部分和组标题。相反,您将把所有要显示的字段放在组页脚中。从这里可以简单地看出:

  • cubicFt
    Savings
    创建摘要或运行总计
  • 重新配置
    $PerFt
    以使用在步骤1中创建的摘要/运行总计字段
  • 通过创建共享字符串变量
    Descriptions
    组合描述。每当组发生更改时,请使用
    Descriptions=“”
    将其重置。只要组没有更改,就将描述字符串添加到变量中。比如:

    Descriptions = Descriptions & " ; " & {yourtable.Description}
    

  • 然后在组页脚中创建一个最终公式
    showsdescription
    ,以显示带有
    RIGHT(Descriptions,LEN(Descriptions)-2)

    的结果。您需要通过修改SELECT语句或生成数据的存储查询,或在Crystal Reports中进行分组。我在Crystal Reports上已经过时20年了,尽管我使用过类似的软件,所以这将不得不进行调整

    对于第一个解决方案,您所需要的只是字符串字段的串联聚合函数。您的数据库可能有内置数据库,也可能没有内置数据库,因此您可能需要添加它

    SELECT Building, ID, 
      SUM(cubicFt), SUM(savings),
      SUM(savings)/SUM(cubicFt) AS [$perft], 
      LEFT(STRING_AGG(description, ';'), -1) -- drop extra ; at end
    GROUP BY Building, ID;
    

    但是,您应该能够在Crystal中执行相同的操作,方法是将其设置为小计组(不确定是否必须为字符串聚合执行用户定义),然后隐藏详细信息部分。

    您需要通过修改SELECT语句或生成数据的存储查询进行分组,或者在Crystal Reports中。我在Crystal Reports上已经过时20年了,尽管我使用过类似的软件,所以这将不得不进行调整

    对于第一个解决方案,您所需要的只是字符串字段的串联聚合函数。您的数据库可能有内置数据库,也可能没有内置数据库,因此您可能需要添加它

    SELECT Building, ID, 
      SUM(cubicFt), SUM(savings),
      SUM(savings)/SUM(cubicFt) AS [$perft], 
      LEFT(STRING_AGG(description, ';'), -1) -- drop extra ; at end
    GROUP BY Building, ID;
    

    但是,您应该能够在Crystal中执行相同的操作,方法是将其设置为小计组(不确定是否必须为字符串聚合执行用户定义),然后隐藏详细信息部分。

    对于另一个报告,它的类似数据,但另一个字段“完成日期”包含日期。我希望合并具有相同DSMI的行,但前提是它们也共享相同的完成日期。我可以这样做吗?当然-如果我理解正确,您希望嵌套组。在链中添加一个完成日期分组,它将按日期将这些分组分开。工作非常完美。再次感谢!对于另一个报表,它的数据类似,但有另一个字段“完成日期”,其中包含日期。我希望合并具有相同DSMI的行,但前提是它们也共享相同的完成日期。我可以这样做吗?当然-如果我理解正确,您希望嵌套组。在链中添加一个完成日期分组,它将按日期将这些分组分开。工作非常完美。再次感谢!