2017-04-24 29 views
0

테이블 이름을 입력해야하는 선택 화면을 만들려고하고 있는데 어떤 테이블을 선택했는지에 따라 일부 매개 변수를 요청해야합니다.
POPUP_TO_GET_VALUE/POPUP_GET_VALUES을 사용하려고했지만 값이 아니라 선택 옵션을 사용해야하기 때문에 도움이되지 않습니다.SAP ABAP의 동적 선택 옵션

답변

1

동적 선택 옵션의 경우 자유 선택을 사용할 수 있습니다. 사용법을 보여주기위한 간단한 샘플 프로그램을 작성했습니다. 더 자세한 사용자 정의 동작에 대해서는 FM의 설명서 및 FM 매개 변수를 확인할 수 있습니다.

TYPE-POOLS: rsds. 

DATA: ls_field TYPE rsdsfields, 
     lt_field TYPE STANDARD TABLE OF rsdsfields, 
     l_selid TYPE dynselid, 
     l_repid TYPE sy-repid, 
     ls_pfkey TYPE rsdspfkey, 
     lt_trange TYPE rsds_trange. 

START-OF-SELECTION. 

    ls_field-tablename = 'T001'. 
    ls_field-fieldname = 'BUKRS'. 
    ls_field-type = 'S'. 
    APPEND ls_field TO lt_field. 

    CALL FUNCTION 'FREE_SELECTIONS_INIT' 
    EXPORTING 
     kind   = 'F' 
    IMPORTING 
     selection_id = l_selid 
    TABLES 
     fields_tab = lt_field[]. 

    ls_pfkey-program = sy-repid. 

    CALL FUNCTION 'FREE_SELECTIONS_DIALOG' 
    EXPORTING 
     selection_id = l_selid 
     title   = 'Select Company' 
     as_window  = 'X' 
     pfkey   = ls_pfkey 
     tree_visible = '' 
    IMPORTING 
     field_ranges = lt_trange 
    TABLES 
     fields_tab  = lt_field[] 
    EXCEPTIONS 
     internal_error = 1 
     no_action  = 2 
     selid_not_found = 3 
     illegal_status = 4 
     OTHERS   = 5. 

사용자 선택은 lt_trange에서 찾을 수 있습니다.