Selection Screen에서 PARAMETERS구문을 사용하여
사용자에게 특정값(Ex:'A01','A02','A03')만 입력을 받게 하고 싶습니다.
이때, ListBox안에 값들은 어떻게 셋팅을 시켜줘야 되는 건가요?
다른 예제들을 보면..
PARAMETERS p_carrid TYPE spfli-carrid
AS LISTBOX VISIBLE LENGTH 20
USER-COMMAND onli
DEFAULT 'LH'.
이런식으로 되어 있던데요..
spfli-carrid처럼 테이블안의 값들로 지정하는 방법 외에는 없는건지요..?
댓글 6
-
숟가락맨
2009.11.06 17:12
-
MadMax
2009.11.06 17:38
아래 source 참고하세요...
PARAMETERS p_carrid TYPE spfli-carrid " Dic 에서 가지고 오기
AS LISTBOX VISIBLE LENGTH 20 .
PARAMETERS p_list(02) " 사용자 지정
AS LISTBOX VISIBLE LENGTH 20 .
*&---------------------------------------------------------------------*
*& Form add-listbox_p_list
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM add-listbox_p_list .
DATA : BEGIN OF lt_scarr OCCURS 0,
carrid LIKE scarr-carrid,
carrname LIKE scarr-carrname,
END OF lt_scarr.
CLEAR : gt_values[], lt_scarr[].
SELECT * FROM scarr INTO CORRESPONDING FIELDS OF TABLE lt_scarr.
LOOP AT lt_scarr.
CLEAR gt_values.
gt_values-key = lt_scarr-carrid.
gt_values-text = lt_scarr-carrname.
APPEND gt_values.
ENDLOOP.
PERFORM add-listbox USING 'P_LIST'
gt_values[].
ENDFORM. " add-listbox_p_list
*&---------------------------------------------------------------------*
*& Form add-listbox
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM add-listbox USING pv_field_name
pt_value TYPE vrm_values.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = pv_field_name
values = pt_value
EXCEPTIONS
id_illegal_name = 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.
ENDIF.
ENDFORM. " add-listbox -
im 해성
2009.11.06 21:09
PROGRAM TEST.
TYPE-POOLS: vrm.
DATA: name TYPE vrm_id,
list TYPE vrm_values,
value LIKE LINE OF list.
PARAMETERS: ps_parm(10) AS LISTBOX VISIBLE LENGTH 10.
AT SELECTION-SCREEN OUTPUT.
name = 'PS_PARM'.
value-key = '1'. value-text = 'Line 1'. APPEND value TO list.
value-key = '2'. value-text = 'Line 2'. APPEND value TO list.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = name
values = list.
START-OF-SELECTION.
WRITE: / 'Parameter:', ps_parm. -
아밥고지를 찾아서
2009.11.06 22:51
im 해성님 방법이 가장 깔끔하네요. 다른것은 아에 못들어오게 하네요
-
초보생
2009.11.07 00:35
MadMax 님의 소스중에서 선언문에 TYPE-POOLS: vrm. gt_values TYPE vrm_values WITH HEADER LINE. 선언문이 빠져있네요. 참고하세요. -
와퍼
2009.11.07 00:36
잘 해결되었습니다.
답변 주신 모든 분들.. 정말 감사합니다..
리스트 박스....검색해 보시면 자료 많이 나올겁니다..^^;