Crystal Report日期范围内每个日期的总和

时间:2012-05-21 17:42:19

标签: crystal-reports report summary group-by

这是我第一次尝试Stack溢出,所以希望你们都可以帮助我。我很乐意开始在这里做出贡献,它在过去一直是一个非常有用的工具。

好的,所以我正在尝试撰写一份报告,列出制造业设施的过去时间总数。我所拥有的是表格的集合,列出每个制造订单并给出截止日期和完成日期。运行报告的人进入日期范围,我想生成一个图表,其中包含沿x轴的日期和y轴上的过期时间总和。也许我错过了三种形式伎俩的实现,但我不能让它发挥作用。我可以按截止日期进行分组,但这只能给出我在给定日期过期的总订单数。

我需要的是以下内容,即可图表:

    For each (date in DateRange) {
       If (Due Date < i) && (Comp Date > i) {
          Past Due Hours = Past Due Hours + manufacturing order Hours
       }
    }

我知道它不是在Crystal语法中,我只是试图将图片展开。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,这个问题会定期出现。你有这样的东西吗?

OrderNum DueDate  CompletedDate
1        01/01/01 01/02/01
2        01/01/01 01/01/01
3        01/02/01 01/03/01
4        01/02/01 01/02/01

现在你要做的第一件事就是得到一张表(有其他类似的方法),其中包含所有日期并加入你的数据集,这样你最终会得到:

OrderNum DueDate  CompletedDate Date
1        01/01/01 01/02/01      01/01/01
2        01/01/01 01/01/01      01/01/01
3        01/02/01 01/03/01      01/01/01
4        01/02/01 01/02/01      01/01/01
1        01/01/01 01/02/01      01/02/01
2        01/01/01 01/01/01      01/02/01
3        01/02/01 01/03/01      01/02/01
4        01/02/01 01/02/01      01/02/01
1        01/01/01 01/02/01      01/03/01
2        01/01/01 01/01/01      01/03/01
3        01/02/01 01/03/01      01/03/01
4        01/02/01 01/02/01      01/03/01

接下来,您需要添加一个字段,用于确定订单是否为{@overdue}

if {table.duedate} < {table.date} and {table.completeddate} > {table.date} then 
 1
else 
 0;

确保选择空值的默认值以避免任何异常。)

现在,您可以针对sum({@overdue})

创建一个图表{table.date}