比较Crystal Reports中的记录

时间:2012-09-04 16:29:13

标签: crystal-reports

所以我想比较Crystal Reports中的一些记录来处理我们系统中的错误导致的问题。

所以每隔一段时间我们的系统会向某人收取两次费用。我想找到所有这些订单/货物。订单可以有多个货件(如果我们在延期交货中有一个货物,我们会在一个货件中运出订单的其余部分,然后在另一个货件中运出延期交货的货物)。在我们向客户收费时,货件还有一个charge_date字段,这是一个日期时间戳。因此,如果我们将它分组在Crystal报表中,它将如下所示:

    Order Id: 234587
              Shipment Id: 121    charge_date: 8/29/2012 11:43:21
              Shipment Id: 524    charge_date: 9/1/2012 15:37:39

按数字顺序创建货件。因此,如果我们发出一批货物,比如发货号码:345,那么我们发出的下一批货物,无论订单是多少,都将是货件号码:346。

所以,当有人成为我们的bug的受害者时,他们的货物就会一个接一个地出现,他们的charge_date完全相同。像这样:

    Order Id: 69875
              Shipment Id: 594     charge_date: 9/2/2012 14:32:15
              Shipment Id: 595     charge_date: 9/2/2012 14:32:15

我可以创建刚刚发货的列表及其收费日期(不对订单ID进行分组)并按升序排序。但我想做的是遍历货物清单并将每批货物与之前的货物进行比较,看看charge_date是否相同,如果它们是相同的,那么选择它们或标记它们以便我可以按照公式对它们进行分组并照顾它们。

水晶有可能吗?我应该使用其他程序吗?我意识到这可能不是最好的方法,所以我愿意接受建议。提前谢谢!

2 个答案:

答案 0 :(得分:1)

您可以为orderID和chargeDate创建组,然后取消所有货件详细信息,除非count(shipmentID)> 1?

您将在chargeDate组页脚中显示货件详细信息。

答案 1 :(得分:0)

使用Previous功能:

// {@Is Error}
If Previous({table.chargeDate})={table.chargeDate}) Then
  true
Else
  false

在此公式中插入一个组。

我无法测试这个,因为我不在我的工作电脑上。