【发布时间】:2018-01-26 17:40:11
【问题描述】:
基本上,我正在尝试将表单中的记录插入数据库表中。不知道为什么它会添加空记录。
Here's my codes:
*--------------Screen 9003------------------------------------------------------------*
MODULE status_9003 OUTPUT.
SET PF-STATUS 'PF_PO_INN'.
SET TITLEBAR 'PO_TITLE1'.
ENDMODULE.
module user_command_9003 input.
"IF sy-ucomm = 'EXE'.
IF sy-ucomm = 'CREATE'.
PERFORM ADD_COURSE.
ELSEIF SY-UCOMM = 'BACK'.
PERFORM CLEAR_INPUTS.
LEAVE TO SCREEN 9001.
ENDIF.
ENDMODULE.
*-------------------Create course--------------------------------------*
FORM ADD_COURSE.
DATA ITAB_ZCMS_COURSES_HD LIKE TABLE OF ZCMS_COURSES WITH HEADER LINE.
ITAB_ZCMS_COURSES_HD-COURSE_ID = ZCMS_COURSES-COURSE_ID.
ITAB_ZCMS_COURSES_HD-COURSE_CONTENT = ZCMS_COURSES-COURSE_CONTENT .
ITAB_ZCMS_COURSES_HD-MUSIC_GENRE = ZCMS_COURSES-MUSIC_GENRE.
ITAB_ZCMS_COURSES_HD-OPTIONS = ZCMS_COURSES-OPTIONS.
ITAB_ZCMS_COURSES_HD-COURSE_NAME = ZCMS_COURSES-COURSE_NAME.
INSERT ZCMS_COURSES FROM ITAB_ZCMS_COURSES_HD.
MODIFY zcms_courses FROM TABLE ITAB_ZCMS_COURSES_HD.
SELECT * INTO TABLE ITAB_ZCMS_COURSES_HD FROM zcms_courses.
LOOP AT ITAB_ZCMS_COURSES_HD.
WRITE AT: /1(2) sy-tabix,
6 ITAB_ZCMS_COURSES_HD-COURSE_NAME,
20 ITAB_ZCMS_COURSES_HD-COURSE_CONTENT,
30 ITAB_ZCMS_COURSES_HD-OPTIONS,
46 ITAB_ZCMS_COURSES_HD-MUSIC_GENRE.
ENDLOOP.
"To show that record is added
MESSAGE 'Course Created.' TYPE 'S'.
ENDFORM.
如上图所示插入一条空记录
^用户输入记录在弹出“Course Created”消息时添加到数据库中。
【问题讨论】:
-
尝试在INSERT处下断点,看是否执行了2次。然后把 BP 放在前面来确定是什么引发了第二次执行
-
请解释您要对代码执行的操作。
MODIFY命令没有意义,内部表总是空的。没看到这段代码怎么会生成空记录,可能之前在表里吧? -
我认为在信息准备好之前有些事情正在触发。我前段时间遇到了同样的问题。这与 ALV 事件有关。