这两个函数都是用来在弹出框里输入相关数据的。在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',如果点了确定按钮,则为空。