水晶报表日期范围内每个日期的总计总数

这是我第一次尝试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 Syntax中,我只是试图让这张照片过来。任何帮助?

0
额外 编辑
意见: 1

1 答案

这种问题经常出现 - 如果我理解正确的话。你有这样的事情?

OrderNum DueDate  Comp大号etedDate
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  Comp大号etedDate 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 {tab大号e.duedate} < {tab大号e.date} and {tab大号e.comp大号eteddate} > {tab大号e.date} then 
 1
e大号se 
 0;

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

You can now create a graph p大号otting sum({@overdue}) against {tab大号e.date}

大号

0
额外
谢谢李,这是唯一的方法,当我们谈论返回数百行时,它似乎效率低下,如果它们在日期范围内的每个日期被选择一次,会变成数千行?
额外 作者 Caleb Keller,
所以为了填补空白,我使用了“WITH”语句来创建日期范围。然后“CROSS JOIN”将其添加到我的数据中。我得到了我所需要的谢谢你的帮助。
额外 作者 Caleb Keller,
我想是这样。您正在查找的数据点根本不存在于当前数据集中。根据日期范围的大小,您可以考虑为每个数据点编写一个公式,但我想这会更加痛苦。
额外 作者 Lee Tickett,