Crystal报告条件摘要

时间:2017-01-17 06:40:30

标签: crystal-reports

我正在尝试使用发票数据在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

因此Invoice 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

2 个答案:

答案 0 :(得分:0)

当您添加摘要以计算此字段时,请不要计算项目数,请计算ItemCode

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

答案 1 :(得分:0)

解决问题中的2个问题:

1)

使用" Distinct Count"创建摘要超过"项目代码"并将位置设置为发票组或报表页脚。

2)

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

创建内部组(G2)并通过将摘要位置设置为G2来放置最大值(金额)。 它应该打印每个项目的最大成本(仅用于测试目的)。

创建公式并将其放在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;