Crystal reports Crystal报告日期范围内每个日期的总和

Crystal reports Crystal报告日期范围内每个日期的总和,crystal-reports,report,summary,group-by,Crystal Reports,Report,Summary,Group By,这是我第一次尝试堆栈溢出,希望你们都能帮助我。我很高兴在这里开始贡献,它在过去是一个非常有用的工具 好的,我想写一份报告,列出一个生产设施的总过期时间。我所拥有的是一组表格,列出了每个生产订单,并给出了截止日期和完成日期。运行报告的人输入一个日期范围,我想生成一个图表,其中包含x轴上的日期和y轴上的过期时间之和。也许我在实施“三公式”技巧时遗漏了一些东西,但我无法让它起作用。我可以按到期日分组,但这只能给我给定日期过期的订单总数 我需要的是以下类似的东西,可以用图表显示: For eac

这是我第一次尝试堆栈溢出,希望你们都能帮助我。我很高兴在这里开始贡献,它在过去是一个非常有用的工具

好的,我想写一份报告,列出一个生产设施的总过期时间。我所拥有的是一组表格,列出了每个生产订单,并给出了截止日期和完成日期。运行报告的人输入一个日期范围,我想生成一个图表,其中包含x轴上的日期和y轴上的过期时间之和。也许我在实施“三公式”技巧时遗漏了一些东西,但我无法让它起作用。我可以按到期日分组,但这只能给我给定日期过期的订单总数

我需要的是以下类似的东西,可以用图表显示:

    For each (date in DateRange) {
       If (Due Date < i) && (Comp Date > i) {
          Past Due Hours = Past Due Hours + manufacturing order Hours
       }
    }
每个(日期范围中的日期)的
{
如果(到期日i){
过期时间=过期时间+生产订单时间
}
}

我知道这不是水晶语法,我只是想让大家明白。有什么帮助吗?

如果我理解正确,这类问题经常出现。你有这样的东西吗

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
接下来,您需要添加一个字段,该字段确定订单是否
{@过期}

if {table.duedate} < {table.date} and {table.completeddate} > {table.date} then 
 1
else 
 0;
如果{table.duedate}<{table.date}和{table.completeddate}>{table.date},那么
1.
其他的
0;
确保为空值选择默认值以避免任何异常)

您现在可以创建一个图形,根据
{table.date}


L

谢谢Lee,这是唯一的方法吗?当我们谈论返回几百行时,它似乎效率很低,如果在日期范围内的每个日期选择一次,这些行将变成数千行?我想是的。您要查找的数据点在当前数据集中根本不存在。根据日期范围的大小,您可以考虑为每个数据点硬编码一个公式,但我想这会更加痛苦。因此,为了填补空白,我使用了一个“带”语句来创建日期范围。然后“交叉连接”将其添加到我的数据中。我得到了我所需要的,谢谢你的帮助。