如下圖,User 可自行定義 PARAMETERS,可選擇的畫面
SAMPLE CODE :
REPORT Z_ERIC_CUSTOMIZE_POPUP_SELECT.
PARAMETERS : P_VALUE(10).
DATA: IT_RETURN LIKE STANDARD TABLE OF DDSHRETVAL WITH HEADER LINE.
DATA: WA_RETURN LIKE IT_RETURN.
"注意要用 DATA ELEMENT,EX : KEY TYPE I 會無法顯示
DATA: BEGIN OF IT_VALUE OCCURS 0,
KEY TYPE ANZNK,
TEXT TYPE TEXT10,
END OF IT_VALUE.
"程式放在 ON VALUE-REQUEST 這樣 P_VALUE 才會有選單可以彈出視窗 (即按 F4 產生 VALUE-REQUEST 的選單)
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VALUE.
"自行填入指定的值
IT_VALUE-KEY = '1'.
IT_VALUE-TEXT = 'LINE 1'.
APPEND IT_VALUE. CLEAR IT_VALUE.
IT_VALUE-KEY = '2'.
IT_VALUE-TEXT = 'LINE 2'.
APPEND IT_VALUE. CLEAR IT_VALUE.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
WINDOW_TITLE = 'SELECT' "POPUP 的 TITLE
RETFIELD = 'KEY' "回傳哪個值
VALUE_ORG = 'S' "回傳 Structure
TABLES
VALUE_TAB = IT_VALUE
RETURN_TAB = IT_RETURN
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
"回傳的值,要再回寫到 Selection Screen 的變數
READ TABLE IT_RETURN INTO WA_RETURN INDEX 1.
P_VALUE = WA_RETURN-FIELDVAL.
因為回傳的是一個 Structure,且上面的語法回傳時只會有一筆,因此過 Work Area 接收 Internal Table 中第一筆資料,再回寫到 Selection Screen 的變數
READ TABLE IT_RETURN INTO WA_RETURN INDEX 1.
P_VALUE = WA_RETURN-FIELDVAL.
如果要改成 Table,只需要 SELECT TABLE 值填入指定的 Internal Table 後即可
沒有留言:
張貼留言