본문 바로가기
ERP-SAP/ABAP

<ABAP> ALV Toolbar 버튼 삭제, 생성, 안나오게 하는 법 (툴바) alv layout

by 행복한워니의 기록 2013. 1. 8.
728x90
반응형
ALV 레이아웃 설정

I_SAVE 값을 아래와 같이 줄 수 있습니다.
1) ' ' : 레이아웃 <선택, 변경> 만 가능
2) 'X' : 레이아웃 <선택, 변경, 저장, 관리> 가능
저장시 사용자 고유 선택 불가, 기본 셋팅 선택 가능
3) 'U' : 레이아웃 <선택, 변경, 저장, 관리> 가능
저장시 사용자 고유 선택 되어 있음(해제 불가), 기본 셋팅 선택 가능
4) 'A' : 레이아웃 <선택, 변경, 저장, 관리> 가능
저장시 사용자 고유 선택 가능, 기본 셋팅 선택 가능
100스크린과 110스크린(서브)에 ALV가 있을경우 100스크린에 ALV에 레이아웃을 변경하여 기본으로 지정하면
110스크린(서브)에서 100스크린의 ALV가 자동으로 지정되는데 I_DEFAULT의 기본값 'X'를 ''로 변경하면된다.

I_DEFAULT
1) ' ' : 저장된 레이아웃중에 기본 셋팅 되어 있는 레이아웃으로 Display 하지 않음.
2) 'X' : 저장된 레이아웃중에 기본 셋팅 되어 있는 레이아웃으로 Display 함.

  DATA gt_ui_functions    TYPE ui_functions,           " ToolBar
       gt_ui_functions2   TYPE ui_functions,           " ToolBar
       gt_ui_functions3   TYPE ui_functions,           " ToolBar
       gt_ui_functions4   TYPE ui_functions,           " ToolBar
       gt_ui_functions5   TYPE ui_functions,           " ToolBar

       gt_ui_functions6   TYPE ui_functions.           " ToolBar
  

 

 

 

    PERFORM toolbar_part      USING 'GT_UI_FUNCTIONS'.  " Tool Bar

 

*&---------------------------------------------------------------------*
*&      Form  toolbar_part
*&---------------------------------------------------------------------*
*       ALV기본 제공 ToolBar 정의
*----------------------------------------------------------------------*
*      -->p_t_ui_functions   UI Function Table
*----------------------------------------------------------------------*
FORM toolbar_part  USING p_t_ui_functions.

  FIELD-SYMBOLS <table> TYPE ui_functions.
  DATA l_table_name     LIKE feld-name.

  CONCATENATE p_t_ui_functions '[]' INTO  l_table_name.
  ASSIGN     (l_table_name)    TO <table>.

  PERFORM append_exclude_functions
        TABLES  <table>
*            USING : CL_GUI_ALV_GRID=>MC_FC_EXCL_ALL.
         USING cl_gui_alv_grid=>mc_fc_loc_undo"
**                cl_gui_alv_grid=>mc_fc_auf,      " ???? &AUF
*                cl_gui_alv_grid=>mc_fc_average,  " &AVERAGE
*                cl_gui_alv_grid=>mc_fc_back_classic,
*                cl_gui_alv_grid=>mc_fc_call_abc, " &ABC
*                cl_gui_alv_grid=>mc_fc_call_chain,
*                cl_gui_alv_grid=>mc_fc_call_crbatch,
*                cl_gui_alv_grid=>mc_fc_call_crweb,
*                cl_gui_alv_grid=>mc_fc_call_lineitems,
**                cl_gui_alv_grid=>mc_fc_call_master_data,
**                cl_gui_alv_grid=>mc_fc_call_more,
**                cl_gui_alv_grid=>mc_fc_call_report,
*                cl_gui_alv_grid=>mc_fc_call_xint,
**                cl_gui_alv_grid=>mc_fc_call_xxl,
**                cl_gui_alv_grid=>mc_fc_col_invisible,
**                cl_gui_alv_grid=>mc_fc_col_optimize,
**                cl_gui_alv_grid=>mc_fc_current_variant,
**                cl_gui_alv_grid=>mc_fc_data_save,
**                cl_gui_alv_grid=>mc_fc_delete_filter,
**                cl_gui_alv_grid=>mc_fc_deselect_all,
**                cl_gui_alv_grid=>mc_fc_detail,
*                cl_gui_alv_grid=>mc_fc_expcrdata,
*                cl_gui_alv_grid=>mc_fc_expcrdesig,
*                cl_gui_alv_grid=>mc_fc_expcrtempl,
*                cl_gui_alv_grid=>mc_fc_expmdb,
*                cl_gui_alv_grid=>mc_fc_extend,
*                cl_gui_alv_grid=>mc_fc_f4,
**                cl_gui_alv_grid=>mc_fc_filter,
**                cl_gui_alv_grid=>mc_fc_find,
**                cl_gui_alv_grid=>mc_fc_fix_columns,
                cl_gui_alv_grid=>mc_fc_graph,
                cl_gui_alv_grid=>mc_fc_help,
                cl_gui_alv_grid=>mc_fc_info,
*                cl_gui_alv_grid=>mc_fc_load_variant,
                cl_gui_alv_grid=>mc_fc_loc_copy,          " ? ??
                cl_gui_alv_grid=>mc_fc_html,
                cl_gui_alv_grid=>mc_fc_loc_copy_row,      " ? ??
                cl_gui_alv_grid=>mc_fc_loc_cut,           " ??
                cl_gui_alv_grid=>mc_fc_loc_delete_row,    " ???
                cl_gui_alv_grid=>mc_fc_loc_insert_row,    " ???
                cl_gui_alv_grid=>mc_fc_loc_move_row,
                cl_gui_alv_grid=>mc_fc_loc_append_row,    " ????
                cl_gui_alv_grid=>mc_fc_loc_paste,         " ????
                cl_gui_alv_grid=>mc_fc_loc_paste_new_row" ????
**                cl_gui_alv_grid=>mc_fc_maintain_variant,
*                cl_gui_alv_grid=>mc_fc_maximum,
*                cl_gui_alv_grid=>mc_fc_minimum,
**                cl_gui_alv_grid=>mc_fc_pc_file,
**                cl_gui_alv_grid=>mc_fc_print,
**                cl_gui_alv_grid=>mc_fc_print_back,
**                cl_gui_alv_grid=>mc_fc_print_prev,
**                cl_gui_alv_grid=>mc_fc_reprep,
**                cl_gui_alv_grid=>mc_fc_save_variant,
**                cl_gui_alv_grid=>mc_fc_select_all,
                cl_gui_alv_grid=>mc_fc_send,
*                cl_gui_alv_grid=>mc_fc_separator,
*                cl_gui_alv_grid=>mc_fc_sort,
*                cl_gui_alv_grid=>mc_fc_sort_asc,
*                cl_gui_alv_grid=>mc_fc_sort_dsc,
*                cl_gui_alv_grid=>mc_fc_subtot,
*                cl_gui_alv_grid=>mc_fc_sum,
*                cl_gui_alv_grid=>mc_fc_to_office,
*                cl_gui_alv_grid=>mc_fc_to_rep_tree,
**                cl_gui_alv_grid=>mc_fc_unfix_columns,
*                cl_gui_alv_grid=>mc_fc_views,
*                cl_gui_alv_grid=>mc_fc_view_crystal,
*                cl_gui_alv_grid=>mc_fc_view_excel,
*                cl_gui_alv_grid=>mc_fc_view_grid,
*                cl_gui_alv_grid=>mc_fc_word_processor,
                cl_gui_alv_grid=>mc_fc_refresh,
                cl_gui_alv_grid=>mc_fc_check.

ENDFORM.                    " toolbar_part

  *&---------------------------------------------------------------------*
*& Form APPEND_EXCLUDE_FUNCTIONS
*&---------------------------------------------------------------------*
* GUI Status에서 빼고자 하는 Function 코드를 Internal table에 저장
*----------------------------------------------------------------------*
* -->pt_table : Function Code저장 IT
* <--p_value : Function code
*----------------------------------------------------------------------*
FORM append_exclude_functions TABLES pt_table
USING p_value TYPE any.

DATA : ls_exclude TYPE ui_func.

ls_exclude = p_value.
APPEND ls_exclude TO pt_table.

ENDFORM. " APPEND_EXCLUDE_FUNCTIONS

  *&---------------------------------------------------------------------*
*&      Form  alv_display_part
*&---------------------------------------------------------------------*
*       ALV Grid Display
*----------------------------------------------------------------------*
FORM alv_display_part .
  gs_variant-handle  '0001'.

  CALL METHOD lcl_grid->set_table_for_first_display
    EXPORTING
      is_layout            gs_layo
      it_toolbar_excluding gt_ui_functions  <---여기로 들어간다.
      i_save               ' '              <- 이건 맨 위를 참조해라
      i_default            c_x
      is_variant           gs_variant
    CHANGING
      it_sort              gt_sort[]
      it_outtab            gt_dt[]
      it_fieldcatalog      gt_lvc_fcat[].

ENDFORM.                    " alv_display_part

 

ver 2 아래꺼 참조

*&---------------------------------------------------------------------*
*& Form EXCLUDE_TOOLBAR_MAIN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_TOOLBAR01 text
*----------------------------------------------------------------------*
FORM exclude_toolbar_main TABLES p_exclude_toolbar_main.

PERFORM append_exclude_toolbar
                TABLES p_exclude_toolbar_main
* USING : CL_GUI_ALV_GRID=>MC_FC_EXCL_ALL. " ** 툴바 모두제거 **
USING : CL_GUI_ALV_GRID=>MC_FC_LOC_UNDO, " 실행취소&LOCAL&UNDO
CL_GUI_ALV_GRID=>MC_FC_AUF, " 소계확장 &AUF
CL_GUI_ALV_GRID=>MC_FC_AVERAGE, " &AVERAGE
CL_GUI_ALV_GRID=>MC_FC_BACK_CLASSIC,
CL_GUI_ALV_GRID=>MC_FC_CALL_ABC, " &ABC
CL_GUI_ALV_GRID=>MC_FC_CALL_CHAIN,
CL_GUI_ALV_GRID=>MC_FC_CALL_CRBATCH,
CL_GUI_ALV_GRID=>MC_FC_CALL_CRWEB,
CL_GUI_ALV_GRID=>MC_FC_CALL_LINEITEMS,
CL_GUI_ALV_GRID=>MC_FC_CALL_MASTER_DATA,
CL_GUI_ALV_GRID=>MC_FC_CALL_MORE,
CL_GUI_ALV_GRID=>MC_FC_CALL_REPORT,
CL_GUI_ALV_GRID=>MC_FC_CALL_XINT,
CL_GUI_ALV_GRID=>MC_FC_CALL_XXL,
CL_GUI_ALV_GRID=>MC_FC_COL_INVISIBLE,
CL_GUI_ALV_GRID=>MC_FC_COL_OPTIMIZE,
CL_GUI_ALV_GRID=>MC_FC_CURRENT_VARIANT, "레이아웃 변경
CL_GUI_ALV_GRID=>MC_FC_DATA_SAVE,
CL_GUI_ALV_GRID=>MC_FC_DELETE_FILTER,
CL_GUI_ALV_GRID=>MC_FC_DESELECT_ALL,
CL_GUI_ALV_GRID=>MC_FC_DETAIL,
CL_GUI_ALV_GRID=>MC_FC_EXPCRDATA,
CL_GUI_ALV_GRID=>MC_FC_EXPCRDESIG,
CL_GUI_ALV_GRID=>MC_FC_EXPCRTEMPL,
CL_GUI_ALV_GRID=>MC_FC_HTML,
CL_GUI_ALV_GRID=>MC_FC_URL_COPY_TO_CLIPBOARD,
CL_GUI_ALV_GRID=>MC_FC_EXPMDB,
CL_GUI_ALV_GRID=>MC_FC_EXTEND,
CL_GUI_ALV_GRID=>MC_FC_F4,
CL_GUI_ALV_GRID=>MC_FC_FILTER,
CL_GUI_ALV_GRID=>MC_FC_FIND,
CL_GUI_ALV_GRID=>MC_FC_FIX_COLUMNS,
CL_GUI_ALV_GRID=>MC_FC_GRAPH,
CL_GUI_ALV_GRID=>MC_FC_HELP,
CL_GUI_ALV_GRID=>MC_FC_INFO, " !: INFO
CL_GUI_ALV_GRID=>MC_FC_LOAD_VARIANT,
CL_GUI_ALV_GRID=>MC_FC_LOC_COPY, " 행 카피.
CL_GUI_ALV_GRID=>MC_FC_HTML,
CL_GUI_ALV_GRID=>MC_FC_LOC_COPY_ROW, " 행 카피.
CL_GUI_ALV_GRID=>MC_FC_LOC_CUT, " 가위.
CL_GUI_ALV_GRID=>MC_FC_LOC_DELETE_ROW, " 행삭제.
CL_GUI_ALV_GRID=>MC_FC_LOC_INSERT_ROW, " 행삽입.
CL_GUI_ALV_GRID=>MC_FC_LOC_MOVE_ROW,
CL_GUI_ALV_GRID=>MC_FC_LOC_APPEND_ROW, " 라인생성.
CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE, " 겹쳐쓰기.
CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE_NEW_ROW, " 겹쳐쓰기.
CL_GUI_ALV_GRID=>MC_FC_MAINTAIN_VARIANT,
CL_GUI_ALV_GRID=>MC_FC_MAXIMUM,
CL_GUI_ALV_GRID=>MC_FC_MINIMUM,
CL_GUI_ALV_GRID=>MC_FC_PC_FILE,
CL_GUI_ALV_GRID=>MC_FC_CALL_XML_EXPORT,
CL_GUI_ALV_GRID=>MC_FC_PRINT,
CL_GUI_ALV_GRID=>MC_FC_PRINT_BACK,
CL_GUI_ALV_GRID=>MC_FC_PRINT_PREV,
CL_GUI_ALV_GRID=>MC_FC_REFRESH, " REFRESH
CL_GUI_ALV_GRID=>MC_FC_REPREP,
CL_GUI_ALV_GRID=>MC_FC_SAVE_VARIANT,
CL_GUI_ALV_GRID=>MC_FC_SELECT_ALL,
CL_GUI_ALV_GRID=>MC_FC_SEND,
CL_GUI_ALV_GRID=>MC_FC_SEPARATOR,
CL_GUI_ALV_GRID=>MC_FC_SORT,
CL_GUI_ALV_GRID=>MC_FC_SORT_ASC,
CL_GUI_ALV_GRID=>MC_FC_SORT_DSC,
CL_GUI_ALV_GRID=>MC_FC_SUM, "SUM
CL_GUI_ALV_GRID=>MC_FC_SUBTOT, "SUB SUM
CL_GUI_ALV_GRID=>MC_MB_SUM,
CL_GUI_ALV_GRID=>MC_FC_SUM,
CL_GUI_ALV_GRID=>MC_MB_EXPORT, "EXPORT
CL_GUI_ALV_GRID=>MC_FC_TO_OFFICE,
CL_GUI_ALV_GRID=>MC_FC_TO_REP_TREE,
CL_GUI_ALV_GRID=>MC_FC_UNFIX_COLUMNS,
CL_GUI_ALV_GRID=>MC_FC_VIEWS,
CL_GUI_ALV_GRID=>MC_FC_VIEW_CRYSTAL,
CL_GUI_ALV_GRID=>MC_FC_VIEW_EXCEL,
CL_GUI_ALV_GRID=>MC_FC_VIEW_GRID,
CL_GUI_ALV_GRID=>MC_FC_WORD_PROCESSOR.

* USING :
* cl_gui_alv_grid=>mc_fc_loc_copy, " 행 카피.
* cl_gui_alv_grid=>mc_fc_html,
* cl_gui_alv_grid=>mc_fc_loc_copy_row, " 행 카피.
* cl_gui_alv_grid=>mc_fc_loc_cut, " 가위.
* cl_gui_alv_grid=>mc_fc_loc_delete_row, " 행삭제.
* cl_gui_alv_grid=>mc_fc_loc_insert_row, " 행삽입.
* cl_gui_alv_grid=>mc_fc_loc_move_row,
* cl_gui_alv_grid=>mc_fc_loc_append_row, " 라인생성.
* cl_gui_alv_grid=>mc_fc_loc_paste, " 겹쳐쓰기.
* cl_gui_alv_grid=>mc_fc_loc_paste_new_row. " 겹쳐쓰기.

ENDFORM. " EXCLUDE_TOOLBAR_MAIN

 

 

 

 

728x90
반응형