Pages

Showing posts with label row selection ALV OOPS method. Show all posts
Showing posts with label row selection ALV OOPS method. Show all posts

Monday, December 21, 2009

ALV with row selection

1:
*
MODULE user_command_0001 INPUT.
CASE sy-ucomm.
WHEN gc_back.
LEAVE TO SCREEN 0.
WHEN gc_exit OR gc_cancel.
LEAVE PROGRAM.
WHEN gc_select.
PERFORM read_selected_row.
WHEN gc_download.
PERFORM download.
ENDCASE. "sy-ucomm
ENDMODULE. " USER_COMMAND_0001 INPUT

2:
FORM read_selected_row .
DATA: li_index TYPE lvc_t_roid,
lwa_index TYPE lvc_s_roid,
lv_line TYPE i.

CALL METHOD lv_alv_grid->get_selected_rows
IMPORTING
* ET_INDEX_ROWS =
et_row_no = li_index
.
* Get the number of lines selected
DESCRIBE TABLE li_index LINES lv_line.

IF lv_line IS INITIAL.
MESSAGE e000(zpp) WITH text-047.
ELSE.
LOOP AT gi_final INTO gwa_final.
READ TABLE li_index INTO lwa_index WITH KEY row_id = sy-tabix.
IF sy-subrc = 0.
SET PARAMETER ID gc_mat FIELD gwa_final-matnr.
SET PARAMETER ID gc_wrk FIELD gwa_final-werks.
SET PARAMETER ID gc_pln FIELD gwa_final-plnnr.
IF gwa_final-plnty = gc_r.
CALL TRANSACTION gc_ca23 AND SKIP FIRST SCREEN.
ELSEIF gwa_final-plnty = gc_n.
CALL TRANSACTION gc_ca03 AND SKIP FIRST SCREEN.
ENDIF.
ENDIF. "sy-subrc = 0
ENDLOOP. "AT gi_final
ENDIF. "lv_line IS INITIAL

ENDFORM. " READ_SELECTED_ROW