Crystal reports Crystal报告日期范围内每个日期的总和
这是我第一次尝试堆栈溢出,希望你们都能帮助我。我很高兴在这里开始贡献,它在过去是一个非常有用的工具 好的,我想写一份报告,列出一个生产设施的总过期时间。我所拥有的是一组表格,列出了每个生产订单,并给出了截止日期和完成日期。运行报告的人输入一个日期范围,我想生成一个图表,其中包含x轴上的日期和y轴上的过期时间之和。也许我在实施“三公式”技巧时遗漏了一些东西,但我无法让它起作用。我可以按到期日分组,但这只能给我给定日期过期的订单总数 我需要的是以下类似的东西,可以用图表显示:Crystal reports Crystal报告日期范围内每个日期的总和,crystal-reports,report,summary,group-by,Crystal Reports,Report,Summary,Group By,这是我第一次尝试堆栈溢出,希望你们都能帮助我。我很高兴在这里开始贡献,它在过去是一个非常有用的工具 好的,我想写一份报告,列出一个生产设施的总过期时间。我所拥有的是一组表格,列出了每个生产订单,并给出了截止日期和完成日期。运行报告的人输入一个日期范围,我想生成一个图表,其中包含x轴上的日期和y轴上的过期时间之和。也许我在实施“三公式”技巧时遗漏了一些东西,但我无法让它起作用。我可以按到期日分组,但这只能给我给定日期过期的订单总数 我需要的是以下类似的东西,可以用图表显示: For eac
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,这是唯一的方法吗?当我们谈论返回几百行时,它似乎效率很低,如果在日期范围内的每个日期选择一次,这些行将变成数千行?我想是的。您要查找的数据点在当前数据集中根本不存在。根据日期范围的大小,您可以考虑为每个数据点硬编码一个公式,但我想这会更加痛苦。因此,为了填补空白,我使用了一个“带”语句来创建日期范围。然后“交叉连接”将其添加到我的数据中。我得到了我所需要的,谢谢你的帮助。