SAP ABAP 中的动态 select-选项
Dynamic select-option in SAP ABAP
我想制作一个 selection 屏幕,我必须在其中输入 table 名称,然后根据 table 是 select ed 我必须要一些参数。
我尝试使用 POPUP_TO_GET_VALUE / POPUP_GET_VALUES
但它没有帮助,因为我需要使用 select 选项而不仅仅是值。
对于动态 select 选项,您可以使用免费的 select 离子。写了一个小示例程序来演示用法。您可以查看 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.
用户 selection 可以在 lt_trange
.
中找到
我想制作一个 selection 屏幕,我必须在其中输入 table 名称,然后根据 table 是 select ed 我必须要一些参数。
我尝试使用 POPUP_TO_GET_VALUE / POPUP_GET_VALUES
但它没有帮助,因为我需要使用 select 选项而不仅仅是值。
对于动态 select 选项,您可以使用免费的 select 离子。写了一个小示例程序来演示用法。您可以查看 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.
用户 selection 可以在 lt_trange
.