2017-04-24 169 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中找到。