不同行中两个日期/时间字段之间的DateDiff

2020-09-24 18:00发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


CR 2016

我有一个报告,我试图计算时差,但字段显示在不同的行中。 我已附上我所有的公式版本以供审核。

@时间差

datediff(" h",{@ Cosigntime},{@ Signtime})

@Cosigntime

选择{NOTE_EDIT_TRAIL.LINE}案例{@CosignLine}:{NOTE_EDIT_TRAIL.IP_ACTION_DTTM}

@Signtime

选择{NOTE_EDIT_TRAIL.IP_ACTION_ON_NOTE_C}情况2:{NOTE_EDIT_TRAIL.IP_ACTION_DTTM}

@CosignLine

选择{NOTE_EDIT_TRAIL.IP_ACTION_ON_NOTE_C}情况7:{NOTE_EDIT_TRAIL.LINE}

time-diff-formula-between-lines.jpg

time-diff-formula-between-lines.jpg (73.7 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


CR 2016

我有一个报告,我试图计算时差,但字段显示在不同的行中。 我已附上我所有的公式版本以供审核。

@时间差

datediff(" h",{@ Cosigntime},{@ Signtime})

@Cosigntime

选择{NOTE_EDIT_TRAIL.LINE}案例{@CosignLine}:{NOTE_EDIT_TRAIL.IP_ACTION_DTTM}

@Signtime

选择{NOTE_EDIT_TRAIL.IP_ACTION_ON_NOTE_C}情况2:{NOTE_EDIT_TRAIL.IP_ACTION_DTTM}

@CosignLine

选择{NOTE_EDIT_TRAIL.IP_ACTION_ON_NOTE_C}情况7:{NOTE_EDIT_TRAIL.LINE}

time-diff-formula-between-lines.jpg

time-diff-formula-between-lines.jpg (73.7 kB)
付费偷看设置
发送
7条回答
黑丝骑士
1楼-- · 2020-09-24 18:20

道格,

公式不会使用变量在记录之间传递值。 试试这个:

 @时间
 WhilePrintingRecords;
 DateTimeVar CosignTime;
 DateTimeVar SignTime;

 diffdatediff(" h",CosignTime,Signtime)

 @Cosigntime
 WhilePrintingRecords;
 NumberVar LineSeven;
 DateTimeVar CosignTime;
 选择{NOTE_EDIT_TRAIL.LINE}情况下LineSeven:CosignTime:= {NOTE_EDIT_TRAIL.IP_ACTION_DTTM}

 @Signtime
 WhilePrintingRecords;
 DateTimeVar SignTime;
 选择{NOTE_EDIT_TRAIL.IP_ACTION_ON_NOTE_C}情况2:SignTime:= {NOTE_EDIT_TRAIL.IP_ACTION_DTTM}

 @CosignLine
 WhilePrintingRecords;
 NumberVar LineSeven;
 选择{NOTE_EDIT_TRAIL.IP_ACTION_ON_NOTE_C}情况7:LineSeven:= {NOTE_EDIT_TRAIL.LINE} 

如果这些公式在一个组中,并且您需要在每个组的开头重置计算,请在组标题中初始化变量,例如:

 @initialize
 WhilePrintingRecords;
 NumberVar LineSeven:= 0;
 DateTimeVar SignTime:= DateTime(0,0,0,0,0,0);
 DateTime CosignTime:= DateTime(0,0,0,0,0,0);  

祝你好运

布莱恩

骆驼绵羊
2楼-- · 2020-09-24 18:18

我想我明白了。 我将下面的公式放在GH#3中。 由于最后一个文本DateTime缺少Var,因此该公式无法保存。

WhilePrintingRecords;

NumberVar LineSeven:= 0;

DateTimeVar SignTime:= DateTime(0,0,0,0,0,0);

DateTimeVar CosignTime:= DateTime(0,0,0,0,0,0);

CJones
3楼-- · 2020-09-24 18:35

Brian,

感谢您的帮助! 我希望比较2号线和7号线会给我两个小时。

我将公式更新为您推荐的值,并报告了以下内容:

sap-formulas.jpg

Alawn_Xu
4楼-- · 2020-09-24 18:39

嗨道格,

在上一个屏幕截图中,这些行是否在组页脚中?

Crystal无法将@Time公式与@SignTime和@CosignTime公式放在同一行。 它必须在下面的部分中进行。 Crystal仅从右至左和自上而下处理公式。 @CosignTime应该工作,因为它将从@SignTime获得正确的日期时间,因为@SignTime发生在@CosignTime之前。 @SignTime将获得一个奇怪的数字,因为它确实具有@CosignTime的值。

@Time唯一可行的方法是将其放入@CosignTime和@SignTime下面的部分。 当前组外部的报告页脚或组页脚。

希望这很有意义

Brian

亦是此间程序员
5楼-- · 2020-09-24 18:28

Brian,

我附上了公式在报告中的位置。 我还附加了公式要提取的值。

formula-locations.jpg Formula-output.jpg

SAP浪
6楼-- · 2020-09-24 18:30

Brian,

我想我现在可以工作了。 final-formula-working.jpg

我附上了结果。 有没有办法在公式中嵌入文本框? 尝试删除重复的文本框。

final-formula-results.jpg

一周热门 更多>