ABAP DUMP ERROR 24시

alv (application-toolbar) 본문

[SAP]ABAP/ABAP 강의 SYNC

alv (application-toolbar)

이운형 2022. 7. 20. 12:48
반응형

 


FORM save_data .

*  1. 해당 테이블에 데이터를 저장하기 위해서는 해당 테이블과 동일한 구조를 가진 itab 이 있어야한다.

  DATA : lt_save TYPE TABLE OF zc5t07005,
         ls_save LIKE LINE  OF lt_save.



  CLEAR   : ls_save.
  REFRESH : lt_save.

* ALV 내의 data를 itab 에 반영
  CALL METHOD gcl_alv_grid->check_changed_data.
*  IMPORTING
*    e_valid=

  LOOP AT gt_data INTO gs_data.
    IF gs_data-matnr IS INITIAL.
      CONTINUE.

    ENDIF.

    MOVE-CORRESPONDING gs_data TO ls_save.
    APPEND ls_save TO lt_save.
    CLEAR : ls_save.

  ENDLOOP.

  IF lt_save IS NOT INITIAL.

    MODIFY zc5t07005 FROM TABLE lt_save.

    IF  sy-dbcnt > 0.
      COMMIT WORK AND WAIT.
      MESSAGE s003.

    ELSE.
      ROLLBACK WORK.
    ENDIF.

  ELSE.
    MESSAGE s000 WITH TEXT-m01 DISPLAY LIKE 'W'.

  ENDIF.



ENDFORM.
*&---------------------------------------------------------------------*
*& Form delete_row
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM delete_row .

  DATA : lv_cnt   TYPE i,
         lv_tabix TYPE sy-tabix,
         lv_add   TYPE i.

  CLEAR   : lv_cnt, gs_row.
  REFRESH : gt_rows.

  CALL METHOD gcl_alv_grid->get_selected_rows
    IMPORTING
      et_index_rows = gt_rows.

  lv_cnt = lines( gt_rows ).

  IF lv_cnt IS INITIAL.
    MESSAGE s000 WITH TEXT-m02 DISPLAY LIKE 'E'.
    EXIT.
  ENDIF.

* 선택된 행의 번호를 받아와서 선택된 행에 'X' 표시
*  LOOP AT gt_rows INTO gs_row.
*
*    READ TABLE gt_data INTO gs_data INDEX gs_row-index.
*
*    gs_data-mark = 'X'.
*
*    MODIFY gt_data FROM gs_data INDEX gs_row-index
*    TRANSPORTING mark.
*
*  ENDLOOP.
*
** 'X' 표시된 행을 삭제
*  DELETE gt_data WHERE mark EQ 'X'.
  LOOP AT  gt_rows INTO gs_row.

    lv_tabix = gs_row-index - lv_add .

    DELETE gt_data INDEX lv_tabix.

    lv_add += 1 .

  ENDLOOP.


  PERFORM refresh_grid.

ENDFORM.

 

 

반응형
Comments