아래는 cl_gui_alv_grid로 alv를 출력하였을때 리스트의 값을 읽는 로직입니다.
DATA: LT_ROWS TYPE LVC_T_ROW,
LS_ROW TYPE LVC_S_ROW.
**GRID Row를 선택했을경우 lt_rows에 쌓인다.
REFRESH: LT_ROWS.
CALL METHOD E_GRID->GET_SELECTED_ROWS
IMPORTING
ET_INDEX_ROWS = LT_ROWS.
IF LT_ROWS[] IS INITIAL.
MESSAGE S000 WITH 'ROW를 선택하세요.'.
ELSE.
LOOP AT LT_ROWS INTO LS_ROW.
****** INDEX값으로 ALV에 DISPLAY된 인터널 테이블을 읽으면 될것 같네요 ^^
ENDLOOP.
ENDIF.
근데 INDEX값으로 ALV에 DISPLAY된 인터널 테이블을 읽으면 된다고 하는데 인터널 테이블을 어떻게 읽어서 DB테이블에 업데이트 하는지 로직을 잘 모르겠습니다. 나름대로 로직을 짜봤는데 어렵습니다.
뿌려진 ALV화면의 ROW값을 읽는 메소드네요.
LT_ROWS값에 1이라고 들어오면 1라인을 읽은 것이고
뿌려진 ALV ITAB의 INDEX 1값을 읽어서 DB테이블에 업데이트하는 구문을 넣어주시면 될 듯.
READ TABLE GT_ITAB INDEX 1.
IF SY-SUBRC = 0.
UPDATE DBTAB SET FIELDNAME = GT_ITAB-AFILED.
ENDIF.