用户从0calmonth退出的前一天

2020-09-04 06:14发布

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

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


亲爱的Abap专家

我的查询需要一个Customer-Exit。

Manuel输入变量:ZKSUJ(从0CALMONTH开始)

输出:如果输入为实际月份,则输出应为前一天。 否则是上个月的最后一天。

示例:

输入:08.2019(Manuel输入)(今天= 08.08.2019)

输出:07.08.2019

输入:07.2019(Manuel输入)

输出:31.07.2019

我尝试过,我的代码看起来像这样; 我上个月在上个月得到了,但在前一天得到了..有帮助吗?

" ZKSUJ"时。
 如果i_step EQ 2。
   阅读表i_t_var_range INTO h_t_var_range
       WITH KEY vnam ='0PCALMON'
                iobjnm ='0CALMONTH'。
   将h_t_var_range-low(4)移动到hyear。
   将h_t_var_range-low + 4(2)移动到hmonth。

   如果hmonth ='01'。
     hmonth ='12'。
     hyear = hyear-1。
   其他。
     hmonth = hmonth-1。
   万一。

 * hday = sy-datum-1。
 将hjyear hmonth'01'连接到hday。

   清除hperiode。
   通话功能" FIMA_END_OF_MONTH_DETERMINE"
     出口
       i_date = hday
     输入
       e_days_of_month = hperiode。
   l_s_range-sign ='I'。
   l_s_range-opt ='EQ'。
   连接hyear hmonth hperiode INTO l_s_range-low。
   附录l_s_range至e_t_range。
 ENDIF。


非常感谢您的帮助。

关于..

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

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


亲爱的Abap专家

我的查询需要一个Customer-Exit。

Manuel输入变量:ZKSUJ(从0CALMONTH开始)

输出:如果输入为实际月份,则输出应为前一天。 否则是上个月的最后一天。

示例:

输入:08.2019(Manuel输入)(今天= 08.08.2019)

输出:07.08.2019

输入:07.2019(Manuel输入)

输出:31.07.2019

我尝试过,我的代码看起来像这样; 我上个月在上个月得到了,但在前一天得到了..有帮助吗?

" ZKSUJ"时。
 如果i_step EQ 2。
   阅读表i_t_var_range INTO h_t_var_range
       WITH KEY vnam ='0PCALMON'
                iobjnm ='0CALMONTH'。
   将h_t_var_range-low(4)移动到hyear。
   将h_t_var_range-low + 4(2)移动到hmonth。

   如果hmonth ='01'。
     hmonth ='12'。
     hyear = hyear-1。
   其他。
     hmonth = hmonth-1。
   万一。

 * hday = sy-datum-1。
 将hjyear hmonth'01'连接到hday。

   清除hperiode。
   通话功能" FIMA_END_OF_MONTH_DETERMINE"
     出口
       i_date = hday
     输入
       e_days_of_month = hperiode。
   l_s_range-sign ='I'。
   l_s_range-opt ='EQ'。
   连接hyear hmonth hperiode INTO l_s_range-low。
   附录l_s_range至e_t_range。
 ENDIF。


非常感谢您的帮助。

关于..

付费偷看设置
发送
4条回答
何必丶何苦呢
1楼 · 2020-09-04 06:41.采纳回答

嗨Sacha,

您需要检查用户输入的月份和当前月份。 如果是,则填充当月的前一天。 否则,填充用户输入月份的最后一天。 我理解要求正确吗? 如果是,则按如下所示更改代码。

将cmonth变量声明为hmonth和pday,如sy-datum。

当为" ZKSUJ"时。
 如果i_step EQ 2。
 数据:pday类型的sy-datum,
       Hmonth类型/BI0/calmonth,
       Cmonth类型/BI0/calmonth,
       Hday类型sy-datum,
       Hyear类型/bi0/fiscyear。
   阅读表i_t_var_range INTO h_t_var_range
       WITH KEY vnam ='0PCALMON'
                iobjnm ='0CALMONTH'。
   将h_t_var_range-low(4)移动到hyear。
   将h_t_var_range-low + 4(2)移动到hmonth。
 cmonth = sy_datum + 4(2)。
 如果hmonth = cmonth。
    Hday = sy_datum-1。
 其他。
    将hyear hmonth'01'连接到hday。
  **使用功能模块获取每月的最后一天。
 通话功能
 'SLS_MISC_GET_LAST_DAY_OF_MONTH'
 出口
     Dayin = hday
 输入
     Last_day_of_month = pday。
 Hday = pday。
 万一。
 **将hday移至e_t_range
 l_s_range-sign ='I'。
   l_s_range-opt ='EQ'。
   连接hyear hmonth hperiode INTO l_s_range-low。
   附录l_s_range至e_t_range。
 万一。
 
派大星 ヾ
2楼-- · 2020-09-04 06:40

嗨Sascha,

我已经用完整的代码更新了我以前的评论。

请检查。

注意事项,

Satya。

梦想连接
3楼-- · 2020-09-04 06:41

嗨,萨莎,

我已经更新了代码。 请检查。

问候,

Satya。

lukcy2020
4楼-- · 2020-09-04 06:50

嗨Sascha,

应该代替pday,

l_s_range-low = hday。

问候,

Satya。

一周热门 更多>