본문 바로가기

SAP/ABAP

/복습/[엑셀 업로드 프로그램 이해하기] 편집프로그램(툴바 복사)

 

최초 작성일: 2024-09-29

최종 작성일: 2024-09-29

목표: 엑셀업로드프로그램 이해하기  

 

FORM alv_grid .

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program       = sy-repid
      i_callback_pf_status_set = 'PF_STATUS_SET'  ->> PBO
      i_callback_user_command  = 'USER_COMMAND'   ->> PAI
      is_layout                = ls_layout
      it_fieldcat              = it_fieldcat
    TABLES
      t_outtab                 = it_zscarr
* EXCEPTIONS
*     PROGRAM_ERROR            = 1
*     OTHERS                   = 2
    .
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.


ENDFORM.

 

 

   i_callback_pf_status_set 'PF_STATUS_SET'  ==>> PERFORM PF_STATUS_SET 연결 =>> PBO(before output)

출력 전에 실행, 버튼 툴바

REUSE ALVGRID DISPLAY 펑션을 타서 출력하기 전에 실행한다


   i_callback_user_command  'USER_COMMAND'  => PERFORM USER_COMMAND 로 연결 =>> PAI(after input)

버튼을 눌렀을 때 실행

 

 

*툴바 생성( PF_STATUS_SET', PBO )  1) 

 

FORM pf_status_set USING extab TYPE slis_t_extab.

  SET PF-STATUS 'STANDARD'. -> 다른 툴바를 복사해서 사용할예정 

ENDFORM.

 

 

*툴바 생성( 'USER_COMMAND ' , PAI)  2)

EDIT, BA, DATA_SAVE, DEL 버튼 생성 필요

FORM user_command USING p_ucomm TYPE sy-ucomm
                        p_selfield TYPE slis_selfield.
  DATA : p_confirm TYPE c.
  DATA : p_button TYPE c.

  CASE p_ucomm.

    WHEN '&EDIT'.
      PERFORM fieldcat_edit CHANGING it_fieldcat.
      IF togl = ''.
        togl = 'X'.
      ELSE.
        CLEAR togl.
      ENDIF.
      PERFORM alv_grid.


   WHEN '&BA'.
     LEAVE PROGRAM.


    WHEN '&DATA_SAVE'.
      IF togl = 'X'.
        p_button = 'S'.
        IF it_zscarrcp[] NE it_zscarr[].
          PERFORM popup_confirm USING p_button CHANGING p_confirm.
          IF p_confirm = '1'.
            PERFORM f_save_data.
            PERFORM get_data.
            p_selfield-refresh = 'X'.
            p_selfield-row_stable = 'X'.
            p_selfield-col_stable = 'X'.
          ELSE.
            LEAVE SCREEN.
          ENDIF.
        ELSE.
          MESSAGE '변경할 데이터가 없습니다.' TYPE 'I'.
        ENDIF.
      ELSE.
        MESSAGE '조회모드입니다.' TYPE 'I'.
      ENDIF.

    WHEN '&DEL'.

      READ TABLE it_zscarr WITH KEY box = 'X'.
      IF sy-subrc = '0'.
        p_button = 'D'.
*      READ TABLE it_zscarr INTO wa_zscarr INDEX p_selfield-tabindex.
        PERFORM popup_confirm USING p_button CHANGING p_confirm.
        IF p_confirm = '1'.
          PERFORM f_delete_data.
          PERFORM get_data.
          p_selfield-refresh = 'X'.
          p_selfield-row_stable = 'X'.
          p_selfield-col_stable = 'X'.
        ELSE.
          LEAVE SCREEN.
        ENDIF.
      ELSE.
        MESSAGE '삭제할 데이터가 없습니다.' TYPE 'I'.
      ENDIF.

  ENDCASE.
ENDFORM.

 

 

SAP에 내장되어 있는 버튼 툴바 활용

경로: local object에서 Function Group 선택 후 KKBL 검색해서 GUI Status 확인

 

 

SAP에 내장되어 있는 버튼 툴바 카피 방법

경로: 오른쪽 버튼 선택 > COPY 클릭 > 대상이 되는 프로그램명 입력