這兩個函數都是用來在彈出框裡輸入相關資料的。在ecc裡面非常好用。
前者可以得到一批輸入資料,後者只得到某一個資料,其實後者在函數中也是調用了前者。
貼一段別人的代碼作為例子:
DATA: BEGIN OF FIELDS OCCURS 5.
INCLUDE STRUCTURE SVAL.
DATA: END OF FIELDS.
FIELDS-TABNAME = MARA.
FIELDS-FIELDNAME = MATNR.
APPEND FITLDS.
FIELDS-TABNAME = VBAP.
FIELDS-FIELDNAME = MATNR.
APPEND FITLDS.
FIELDS-TABNAME = LIPS.
FIELDS-FIELDNAME = MATNR.
APPEND FITLDS.
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
POPUP_TITLE = 'TEXT-PR2'
START_COLUMN = START_COLUMN
START_ROW = 5
IMPORTING
RETURNCODE = RETURNCODE
TABLES
FIELDS = FIELDS
EXCEPTIONS
ERROR_IN_FIELDS = 1.
它輸入了三個欄位,不過沒有對欄位屬性做任何限定。貼一段自己的代碼:
SPAN {
font-family: "Fixedsys";
font-size: 12pt;
color: #000000;
background: #FFFFFF;
}
.L1S31 {
font-style: italic;
color: #808080;
}
.L1S33 {
color: #4DA619;
}
.L1S52 {
color: #0000FF;
}
DATA
: l_returncode TYPE
c
.
DATA
: itb_sval TYPE
TABLE
OF
sval,
wa_sval LIKE
LINE
OF
itb_sval.
wa_sval-tabname = 'ZTM_FYBX_NETPAY'
. "表名
wa_sval-fieldname = 'SEND_DATE'
. "欄位名
wa_sval-FIELD_OBL = 'X'
. "強制輸入
APPEND
wa_sval TO
itb_sval.
CALL
FUNCTION
'POPUP_GET_VALUES'
EXPORTING
popup_title = '請填寫提交支付日期'
IMPORTING
returncode = l_returncode
TABLES
fields
= itb_sval.
IF
l_returncode = 'A'
.
MESSAGE
'使用者已取消'
TYPE
'S'
.
RETURN
.
ENDIF
.
tabname就是欄位所在的表名,fieldname就是表中的欄位名,在螢幕上會自動顯示出該欄位的短文本,並按照輸入協助提供輸入框,並做校正。上面的代碼錶示該欄位需要強制輸入。效果
如果使用者取消了輸入,則l_returncode返回'A',如果點了確定按鈕,則為空白。