【问题标题】:Crystal reports conditional summary水晶报表条件汇总
【发布时间】:2017-01-17 19:21:31
【问题描述】:

我正在尝试使用发票数据在 Crystal Report 中创建条件摘要,其中如果项目代码在发票上出现多次,则仅在总额中包含一次金额,并且金额最大。我还希望这反映在商品数量上,例如,如果有 4 件商品,但其中两件商品代码相同,则发票的商品 nbr 应为 3。以下是数据示例:

TDate   Invoice ID  Fee line    Item Code   Nbr Items   Amount
 05/01/2017 12024200    11425100||11    11610   1   54.20
 05/01/2017 12024200    11425100||12    55238   1   156.25
 05/01/2017 12024200    11425100||13    55238   1   96.60
 05/01/2017 12024200    11425100||15    55276   1   80.55

因此,发票 12024200 的总数应如下所示(忽略第二次出现的项目代码 55238 的值)。

 05/01/2017 12024200    11425100||11    11610   1   54.20
 05/01/2017 12024200    11425100||12    55238   1   156.25
 05/01/2017 12024200    11425100||13    55238   1   96.60
 05/01/2017 12024200    11425100||15    55276   1   80.55
 Total                                          3  291.00

【问题讨论】:

    标签: crystal-reports


    【解决方案1】:

    解决您问题中的 2 个问题:

    1)

    在“项目代码”上使用“不同计数”创建摘要,并将位置设置为发票组或报表页脚。

    2)

    在“发票 ID”上创建一个组 (G1)(您可以在此处放置发票总额)。

    创建一个内部组 (G2) 并通过将汇总位置设置为 G2 为 max(Amount) 放置一个汇总。 它应该打印每个项目的最大成本(仅用于测试目的)。

    创建一个公式并将其放在 G2 页脚上。

    WhilePrintingRecords;
    Global NumberVar Total;
    
    Total := Total + Maximum ({table.Amount}, {table.ItemCode});
    Total;
    

    当此公式可见时,您应该会看到类似总计的内容。 禁止所有不必要的字段。

    要在另一个组页脚(如发票组页脚)中打印值,只需创建另一个公式:

    WhilePrintingRecords;
    Global NumberVar Total;
    Total;
    

    要重置发票之间的值(如果您的报表支持多张发票),请创建另一个公式并放置在发票组标题中

    WhilePrintingRecords;
    Global NumberVar Total;
    Total := 0;
    Total;
    

    【讨论】:

    • 完美运行。非常感谢。
    【解决方案2】:

    添加摘要统计这个字段的时候,不统计项数,统计ItemCode

    但是有一种称为DistinctCount 的摘要使用它而不是使用普通的Count。然后它将删除冗余计数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-11
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 1970-01-01
      相关资源
      最近更新 更多