안녕하세요? ABAP을 배우고 있어요.
easy-ABAP 책과 함께,
타 교육용 서버에 가지고 있는 소스를 카피해서 사용하고 있어요.
제가 Delete 구문을 이런식으로 넣었는데.
소스 받은거에선 한줄을 선택하면 해당 줄이 지워지는 것이었는데,
제가 적용하니 화면에서 선택하여 버튼을 누르면 모든 ALV 내용이 다 날라가 버려요 ㅠ-ㅠ으억
무엇이 잘못 된것일까요.?
form delete using p_text1
p_text2
p_text3.
data : lv_subrc type syst-subrc,
lv_answer type char01.
* CLEAR p_subrc.
perform confirm_to_popup using p_text1
p_text2
p_text3
changing lv_answer.
if lv_answer = 'J'.
* delete data
call method lcl_alv->get_selected_rows
importing
et_index_rows = lt_row.
loop at lt_row into ls_row.
read table gt_tab index ls_row-index.
delete from sbook where carrid = gt_tab-carrid.
** AND EMPWORK = gs_tab-EMPWORK.
endloop.
if sy-subrc = 0.
commit work.
message s000 with 'Data deleted successfully' display like 'S'.
clear : gs_tab, gs_tab_old.
* DELETE gt_tab INDEX g_row.
else.
rollback work.
message s000 with 'Cannot delete' display like 'E'.
endif.
else.
return.
endif.
endform. " delete
댓글 7
-
sapjoy
2017.01.25 01:13
-
스텔라2
2017.01.25 22:20
네. 알겠습니다.^^;
해당 Q&A를 보았으나,
교재에 관하여서만 Q&A해야하는줄 알고 이곳에 질문을 하였습니다.
죄송합니다.~
-
스텔라2
2017.01.25 22:20
네. 알겠습니다.^^;
해당 Q&A를 보았으나,
교재에 관하여서만 Q&A해야하는줄 알고 이곳에 질문을 하였습니다.
죄송합니다.~
-
QAZ
2017.01.25 02:42
carrid가 같은 값을 지닌 데이터들이 많은가요?
-
스텔라2
2017.01.25 22:22
아니요, carrid의 값은 많으나 같은 내용의 데이터는 없습니다..ㅠ-ㅠ;
읽어주셔서 감사합니다;
-
빠코
2017.01.25 17:22
LT_ROW에 선택한 라인의 INDEX가 담길텐데요.
이럴경우 LT_ROW의 INDEX를 DESCENDING하고 DELETE하셔야 합니다.
DESCENDING 안하고 DELETE하는 잘못된 index로 데이터 삭제합니다.
index 1,2인 라인 선택시 실제로는 1,3라인 삭제됨.
loop at lt_row into ls_row.
read table gt_tab index ls_row-index.
delete from sbook where carrid = gt_tab-carrid. = 변수명 확인 gt_tab
** AND EMPWORK = gs_tab-EMPWORK. = 변수명 확인 gs_tab
endloop. -
스텔라2
2017.01.25 22:23
네. 다시만들어서 적용해보겠습니다.
친절하게 알려주셔서 감사합니다.
안녕하세요.
질문은 ABAP QnA 게시판 이용 부탁드립니다. ~