0
테이블 이름을 입력해야하는 선택 화면을 만들려고하고 있는데 어떤 테이블을 선택했는지에 따라 일부 매개 변수를 요청해야합니다.
POPUP_TO_GET_VALUE/POPUP_GET_VALUES
을 사용하려고했지만 값이 아니라 선택 옵션을 사용해야하기 때문에 도움이되지 않습니다.SAP ABAP의 동적 선택 옵션
테이블 이름을 입력해야하는 선택 화면을 만들려고하고 있는데 어떤 테이블을 선택했는지에 따라 일부 매개 변수를 요청해야합니다.
POPUP_TO_GET_VALUE/POPUP_GET_VALUES
을 사용하려고했지만 값이 아니라 선택 옵션을 사용해야하기 때문에 도움이되지 않습니다.SAP ABAP의 동적 선택 옵션
동적 선택 옵션의 경우 자유 선택을 사용할 수 있습니다. 사용법을 보여주기위한 간단한 샘플 프로그램을 작성했습니다. 더 자세한 사용자 정의 동작에 대해서는 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
에서 찾을 수 있습니다.