2020-09-12 12:02发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
如果您有任何想法可以满足以下要求。
我们有两个日期关键指标。 1.通知创建日期 。2.通知完成日期。
我们需要查找天数。
逻辑
天数=(通知完成日期)-(通知创建日期)
如果通知完成日期为空白。
天数=当前日期-通知日期。
我们如何在具有客户退出功能的BEX查询中实现这一目标? 如果可能,请提供代码
天数将根据报表执行日期计算。
谢谢。
嗨,
我最近已经处理过类似的要求,请尝试以下解决方案,让我知道是否有帮助:
假设:通知结束日期将始终大于或等于通知创建日期。
解决方案:在报告中再增加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
更正后的代码:
'EXPORTING correct_option ='+
'date = lv_date factory_calendar_id = <使用您的变体>
导入
date = lv_out factorydate = lv_fact
ls_range-opt ='EQ'。 ls_range-sign ='I'。 ls_range-low = lv_nday。
附加ls_range至et_var_range。清除ls_range。
还在"报告"中的天数列中,使用公式:date(公式变量名)。
最多设置5个标签!
嗨,
我最近已经处理过类似的要求,请尝试以下解决方案,让我知道是否有帮助:
假设:通知结束日期将始终大于或等于通知创建日期。
解决方案:在报告中再增加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
更正后的代码:
数据:
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(公式变量名)。
一周热门 更多>