以前月份的fiscper的年初至今计算

2020-08-17 06:37发布

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

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


你好,

我需要一个例程来计算DTP过滤器例程中使用的前几个月的YTD

我们不会输入将基于当前日期的任何日期

例如:

2020年1月==>它将显示2019年1月至2019年12月年初至今

2020年2月==>仅显示2020年1月至今

2020年3月==>它将显示2020年1月至2020年2月年初至今

.....

2020年12月==>它将显示2020年1月至2020年11月

请问有关此Abap代码的帮助吗?

谢谢

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

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


你好,

我需要一个例程来计算DTP过滤器例程中使用的前几个月的YTD

我们不会输入将基于当前日期的任何日期

例如:

2020年1月==>它将显示2019年1月至2019年12月年初至今

2020年2月==>仅显示2020年1月至今

2020年3月==>它将显示2020年1月至2020年2月年初至今

.....

2020年12月==>它将显示2020年1月至2020年11月

请问有关此Abap代码的帮助吗?

谢谢

付费偷看设置
发送
2条回答
SKY徐
1楼-- · 2020-08-17 07:32

您好,

您可以使用功能模块RP_CALC_DATE_IN_INTERVAL确定日期(负一年和负一个月)。

您可以使用类似以下的方法来确保 选择完整的期间(开始日期=每月的第一天,结束日期=每月的最后一天):

数据:lv_start TYPE数据,
       lv_end TYPE数据。

 *确定日期减去一年
 通话功能'RP_CALC_DATE_IN_INTERVAL'
   出口
     日期= sy-datum
     天= 00
     个月= 00
     signum ='-'
     年= 01
   输入
     calc_date = lv_start。

 *确保日期设置为月初
 lv_start + 6(2)='01'。

 *确定上个月
 通话功能'RP_CALC_DATE_IN_INTERVAL'
   出口
     日期= sy-datum
     天= 00
     个月= 01
     signum ='-'
     年= 00
   输入
     calc_date = lv_end。

 *确保选择每月的最后一天
 通话功能" RP_LAST_DAY_OF_MONTHS"
   出口
     day_in = lv_end
  输入
    LAST_DAY_OF_MONTH = lv_end
  例外情况
    DAY_IN_NO_DATE = 1
    其他= 2
           。
 如果sy-subrc <> 0。
 *在这里实施适当的错误处理
 ENDIF。

最诚挚的问候,

Geert-Jan Klaps

骆驼绵羊
2楼-- · 2020-08-17 07:14

以下代码已经可以解决问题。 所有变量均为数据类型。 ABAP内核非常了解如何通过加减运算来计算日期和时间类型。

 firstofthismonth = sy-datum(6)&&'01'。
 lastdayofytd = firstofthismonth-1."上个月的最后一天
 firstdayofytd = lastdayofytd(4)&&'0101'。  "上个月的一月一日

一周热门 更多>