2020-08-15 07:01发布
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)当我输入日期时,必须对其进行验证... 显示全部
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
当我输入日期时,必须对其进行验证,并应打印以下内容。
1。 输入日期的当前月份的第一个和最后一个日期。
2。 输入日期的上个月的第一和最后一个日期。
3。 输入日期的下个月的第一个和最后一个日期。
我不是在要求整个程序,而只是关于如何进行的线索。 我是一个初学者,但学到很多东西。 任何帮助,将不胜感激。
关于
Srinath。
不需要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()。
最多设置5个标签!
不需要FM,只需基于TYPE d或基准(ABAP类型日期)的简单ABAP,即可使用字符替换以及加/减:
一周热门 更多>