메뉴 건너뛰기

SAP 한국 커뮤니티

ALV 버퍼 CLEAR 프로그램

sapjoy 2008.09.25 20:45 조회 수 : 7485 추천:1

ALV에 필드 카타로그를 추가한 경우 바로 적용이 안되는 경우가 있습니다.


이때는 다음 프로그램을 이용해 버퍼를 CLEAR 해야 합니다.


 


*&---------------------------------------------------------------------*
*& Report  BALVBUFDEL                                                  *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*


REPORT  BCALV_BUFFFER_DEL_SHARED.


  TABLES: EUINFO.


  types: stat_s_data type RSEXPOBUF,
       stat_t_data type stat_s_data occurs 0.


  data: gt_stat_data type stat_t_data,
        ls_stat_data type stat_s_data,
        l_obj_key type RSOBJKEY.


  CALL FUNCTION 'SBUF_OBJ_SHOW_OBJECT'
    EXPORTING
      BUFF_ID            = 0
      SHOW_FREE          = ' '
      SHOW_OBJECT        = 'X'
    TABLES
      STAT_DATA          = gt_stat_data
*   EXCEPTIONS
*     C_FUNC_ERROR       = 1
*     OTHERS             = 2
            .
  IF SY-SUBRC = 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    loop at gt_stat_data into ls_stat_data.
      if ls_stat_data-obj_key(2) cs '%F'.
        l_obj_key = ls_stat_data-obj_key+2.
        delete from shared buffer euinfo(%F) id l_obj_key.
      endif.
    endloop.
    MESSAGE S000(0K) WITH TEXT-004.
  ENDIF.