계속 고민해도 안풀리는 문제인데요.
온라인 ALV 스크린에서 라인을 클릭시 저장, 삭제가 되야 하는데
이것저것 해봐도 잘 안되서 이렇게 질문 드립니다.
라인을 클릭시 라인을 읽어서 해당하는 라인만 저장, 삭제가 되야 하는데
어떻게 읽어야 할지 저장 삭제는 어떻게 해야 할지 모르겠습니다.
간단한거 같지만 제게는 간단하지가 않아서요.
우선 클릭 이벤트는 ok_code를 사용하고 있습니다.
그래서 user_command를 탈수가 없어서 어플리케이션 툴바에 있는 저장, 삭제 버튼을
사용하지 못하고 있습니다. 방법이 있을텐데 찾기가 힘드네요.
보통의 ALV일 경우 요소리스트에 SSCRFIELDS-UCOMM 사용하면 되겠지만
온라인 스크린상 다른 버튼을 사용하고 있기 때문에 ok_code를 사용하고 있거든요.
ALV는 cl_gui_alv_grid, cl_gui_custom_container, set_table_for_first_display
를 사용하고 있습니다.
제가 초보라서 자세히 알려주시면 감사드리겠습니다.
간단한 소스인데요..
선택한 값을 불러와서 처리하면 됩니다.
CALL METHOD grid1->get_selected_rows
이걸이용하시면 됩니다. 해보시고 디버깅찍어보시면 쉽게 이해하실 수 있을겁니다.
CALL METHOD grid1->get_selected_rows
IMPORTING
et_index_rows = lt_index_rows.
gt_index_rows[] = lt_index_rows.
LOOP AT gt_index_rows.
gt_zmmt0105-mark = 'X'.
MODIFY gt_zmmt0105 INDEX gt_index_rows-index
TRANSPORTING mark.
p_count = p_count + 1.
ENDLOOP.