日期验证和打印

2020-08-15 07:01发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)当我输入日期时,必须对其进行验证...

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

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


当我输入日期时,必须对其进行验证,并应打印以下内容。

1。 输入日期的当前月份的第一个和最后一个日期。

2。 输入日期的上个月的第一和最后一个日期。

3。 输入日期的下个月的第一个和最后一个日期。

我不是在要求整个程序,而只是关于如何进行的线索。 我是一个初学者,但学到很多东西。 任何帮助,将不胜感激。

关于

Srinath。

3条回答
zZ12138
2020-08-15 07:40 .采纳回答

不需要FM,只需基于TYPE d或基准(ABAP类型日期)的简单ABAP,即可使用字符替换以及加/减:

 *&----------  --------------------------------------------------  --------- *
 *&报告ZDEMO_DATE_FIRST_LAST_MONTH
 *&------------------------------------------------  --------------------- *
 报告zdemo_date_first_last_month。

 参数p_date类型d默认sy-基准。  "输入的日期
 数据模板类型d。  "用于计算目的

 ******************************************************  ********************
 * 1)根据选择的日期,当月的第一天和最后一天
 ******************************************************  ********************
 DATA firstofcurrmonth类型d。  "根据所选日期的当前月份的第一天
 DATA lastofcurrmonth类型d。  "根据所选日期的当月最后一个

 " 1.a)基于所选日期的本月初
 firstofcurrmonth = p_date(6)&&'01'。  "我们知道每个月从1日开始,这很容易

 " 1.b)基于所选日期的当月最后一天
 tempdate = p_date(6)&&'28'。  "我们知道每个月至少有28天
 tempdate = tempdate +4。"加上4天将使我们始终进入下个月
 tempdate = tempdate(6)&&'01'。  "这将给我们下个月的第一个月
 lastofcurrmonth = tempdate-1."减去一个,将得出当前月份的最后一个

 ******************************************************  ********************
 * 2)根据所选日期的上个月的第一天和最后一天
 ******************************************************  ********************
 DATA firstofprevmonth TYPE d。  "根据所选日期的上个月的第一天
 DATA lastofprevmonth TYPE d。  "根据所选日期的上个月的最后一个

 " 2.a)根据所选日期的上月末
 "我们已经知道了本月的第一天,所以只需减去一个
 lastofprevmonth = firstofcurrmonth-1。

 " 2.b)基于所选日期的上个月的第一天
 firstofprevmonth = lastofprevmonth(6)&&'01'。

 ******************************************************  ********************
 * 3)根据所选日期的下个月的第一天和最后一天
 ******************************************************  ********************
 下一个月的数据类型d。  "根据所选日期的下个月的第一天
 下一个数据类型d。  "根据所选日期的下个月的最后一个

 " 3.a)根据所选日期的下个月的第一天
 "我们本来可以从步骤1.b中获得该日期的
 firstofnextmonth = lastofcurrmonth +1。"但是我们也可以简单地在当前月的最后一个月加1

 " 3.b)根据所选日期的下个月的最后一个
 tempdate = firstofnextmonth(6)&&'28'。  "与步骤1.b)相同的逻辑
 tempdate = tempdate +4。"加上4天将使我们始终进入下个月
 tempdate = tempdate(6)&&'01'。  "这将使我们在下个月的下一个月
 lastofnextmonth = tempdate-1."减去一个,将得到下个月的最后一个

 ******************************************************  ********************
 *显示日期
 ******************************************************  ********************
 cl_demo_output => write(p_date)。

 cl_demo_output => write(firstofcurrmonth)。
 cl_demo_output => write(lastofcurrmonth)。

 cl_demo_output => write(firstofprevmonth)。
 cl_demo_output => write(lastofprevmonth)。

 cl_demo_output => write(firstofnextmonth)。
 cl_demo_output => write(lastofnextmonth)。

 cl_demo_output => display()。
 

一周热门 更多>