ALV DropdownListBox 로직
1. ALV 관련 데이터 선언
2. Field Catalog에 대상 필드 설정
2. DropdownListBox 테이블 구성
4. Grid 객체 메소드 실행하여 테이블 Assign
5. 필요시 화면 Refresh
1. Data 선언
– DATA: gs_fcat TYPE LVC_S_FCAT.
– DATA: gt_listbox TYPE lvc_t_dral,
gs_listbox TYPE lvc_s_dral,
– FIELD-SYMBOLS: <fs_grid> TYPE REF TO cl_gui_alv_grid.
2. Class Catalog Field 설정
– gs_fcat-drdn_hndl = ‘1’ or ‘2’ ….
3. DropdownListBox 테이블 구성
[#M_소스코드 보기|접기|
CLEAR: gt_listbox, gs_listbox.
LOOP AT gt_zcode.
gs_listbox-handle = 1. ” DropdownListBox 유형별로 구분.
gs_listbox-int_value = gt_zcode-zcode. ” 코드.
gs_listbox-value = gt_zcode-zcode. ” 텍스트.
APPEND gs_listbox TO gt_listbox.
ENDLOOP.
_M#]
4. Grid 객체 메소드 실행하여 테이블 Assign
[#M_소스코드 보기|접기|
CALL METHOD <fs_grid>->set_drop_down_table
EXPORTING
it_drop_down_alias = gt_listbox.
_M#]
5. ALV Refresh
[#M_소스보기|접기|
CLEAR gs_stbl.
gs_stbl-row = c_check.
gs_stbl-col = c_check.
CASE p_value.
WHEN ‘0100’.
* refresh 후에 원래대로 Grid 가 표시되도록 하는 처리
CALL METHOD go_grid1->set_frontend_layout
EXPORTING
is_layout = gs_layout.
* ALV Refresh – Column & line fix
CALL METHOD go_grid1->refresh_table_display
EXPORTING
i_soft_refresh = ‘X’
is_stable = gs_stbl.
ENDCASE.
* Send Buffered Automation Queue to Frontend
CALL METHOD cl_gui_cfw=>flush.
_M#]