如何根据报表执行日期计算天数

2020-09-12 12:02发布

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

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


大家好,

如果您有任何想法可以满足以下要求。

我们有两个日期关键指标。 1.通知创建日期 。2.通知完成日期。

我们需要查找天数。

逻辑

天数=(通知完成日期)-(通知创建日期

如果通知完成日期为空白。

天数=当前日期-通知日期。

我们如何在具有客户退出功能的BEX查询中实现这一目标? 如果可能,请提供代码

天数将根据报表执行日期计算。

谢谢。


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

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


大家好,

如果您有任何想法可以满足以下要求。

我们有两个日期关键指标。 1.通知创建日期 。2.通知完成日期。

我们需要查找天数。

逻辑

天数=(通知完成日期)-(通知创建日期

如果通知完成日期为空白。

天数=当前日期-通知日期。

我们如何在具有客户退出功能的BEX查询中实现这一目标? 如果可能,请提供代码

天数将根据报表执行日期计算。

谢谢。


付费偷看设置
发送
2条回答
浮生未央
1楼-- · 2020-09-12 12:11

嗨,

我最近已经处理过类似的要求,请尝试以下解决方案,让我知道是否有帮助:

假设:通知结束日期将始终大于或等于通知创建日期。

解决方案:在报告中再增加1列,以在其中填充系统日期。 您可以在此处使用客户出口处理的公式变量。

然后在列中,天数,使用下面的bex公式:

((通知结束日期–通知开始日期)> = 0)*(通知结束日期–通知开始日期)+(系统日期–通知开始日期)

用于填充系统日期的代码:

**我的代码中有一个小问题,它总是返回工作日。 因此,如果您的报告在周末/节假日执行,则您的计算可能会出错。 在下面的代码中添加小型验证,以处理周末/节假日的情况。

数据:

lv_nday类型I,

lv_odate TYPE sy-datum,

lv_date TYPE标定日期。

lv_odate ='00000101'。

lv_date = SY-DATUM。

CALL FUNCTION'DATE_CONVERT_TO_FACTORYDATE

导出
correct_option ='+

date = lv_date
factory_calendar_id = <使用日历变体>

导入
factorydate = lv_fact

lv_nday = lv_out-lv_odate。

ls_range-opt ='EQ'。
ls_range-sign ='I'。
ls_range-low = lv_nday。
附加ls_range至et_var_range。清除ls_range。

如果发现有用,请投票。

谢谢

Akash

当学会了学习
2楼-- · 2020-09-12 12:14

更正后的代码:

数据:

lv_nday类型I,

lv_odate TYPE sy-datum,

lv_date TYPE标定日期。

lv_odate ='00000101'。

lv_date = SY-DATUM。

CALL FUNCTION'DATE_CONVERT_TO_FACTORYDATE

'EXPORTING
correct_option ='+

'date = lv_date
factory_calendar_id = <使用您的变体>

导入

date = lv_out
factorydate = lv_fact

lv_nday = lv_out-lv_odate。

ls_range-opt ='EQ'。
ls_range-sign ='I'。
ls_range-low = lv_nday。


附加ls_range至et_var_range。清除ls_range。

还在"报告"中的天数列中,使用公式:date(公式变量名)。

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答