셀렉션 스크린에 List Box 만들기
본인 요청에 의해 강조함 ㅋㅋ
*1. top 에 다음을 선언한다.
TYPE-POOLS : vrm.
*--- listbox
DATA : name TYPE vrm_id,
list TYPE vrm_values,
value LIKE LINE OF list.
*2.SELECTION-SCREEN 에 리스트 박스를 만든다.
PARAMETERS : p_select LIKE ztwb_0004-zwbcod1 AS LISTBOX
VISIBLE LENGTH 20 OBLIGATORY
DEFAULT '01'
USER-COMMAND com1.
*3.SELECTION-SCREEN output. 을 구성한다.
*----------------------------------------------------------------------*
* AT SELECTION SCREEN OUTPUT *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
PERFORM listbox.
PERFORM modify_screen.
*4. 해당 perform문을 구성한다.
*&---------------------------------------------------------------------*
*& Form LISTBOX
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM listbox .
CLEAR : value, list.
value-key = '01'.
value-text = '파일 업로드'.
APPEND value TO list.
value-key = '02'.
value-text = '데이터 조회'.
APPEND value TO list.
PERFORM call_listbox
USING 'P_SELECT'
list.
ENDFORM. " LISTBOX
*&---------------------------------------------------------------------*
*& Form CALL_LISTBOX
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_2304 text
* -->P_LIST text
*----------------------------------------------------------------------*
FORM call_listbox USING p_name TYPE vrm_id
p_list TYPE vrm_values.
*---
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = p_name
values = p_list.
ENDFORM. " CALL_LISTBOX
*&---------------------------------------------------------------------*
*& Form MODIFY_SCREEN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM modify_screen .
LOOP AT SCREEN.
IF p_select EQ '01' AND screen-group1 = 'SEL'.
screen-active = '0'.
ELSEIF p_select NE '01' AND screen-group1 = 'SEL'.
screen-active = '1'.
ENDIF.
IF p_select EQ '02' AND screen-group1 = 'EXC'.
screen-active = '0'.
ELSEIF p_select NE '02' AND screen-group1 = 'EXC'.
screen-active = '1'.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDFORM. " MODIFY_SCREEN