Pages

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

No comments:

Post a Comment