1.PARAMETERS对象的基本语法及定义

      PARAMETERS可以参照数据字典具体字段或者自定义数据类型创建文本输入域以及单选/复选框等。与SELECT-OPTIONS不同的是,PARAMETERS只能创建一个单一的输入域且最多只能输入一行,其对象的命名长度不能超过8位。显示长度参照数据对象变化。PARAMETERS定义后不会产生内表,可作为变量在程序中运用,基本语法如下:
      PARAMETERS PNAME(不能超过8位)....
      [For Example]

   DATA AGE TYPE I.

   PARAMETERS USER_AGE LIKE AGE.
   DATA NICKNAME TYPE LENGTH 60.  "长度为60  表单域会相对于这个长度
   PARAMETERS NAMEA LIKE NICKNAME.
   *运行界面如下:

PARAMETERS:MATNRR LIKE MARA-MATNR.   "文本域

PARAMETERS:TYPE AS CHECKBOX.         "多选框
PARAMETERS:P1 RADIOBUTTON GROUP GRP1,"单选域
                     P2 RADIOBUTTON GROUP GRP1 DEFAULT 'X'"默认选中 ”X“
                     P3 RADIOBUTTON GROUP GRP1.

*运行界面如下:

 2.PARAMETERS常用的扩展语法

 ...DEFAULT f:定义默认值。
 ...TYPE type:参照某一类型对象定义PARAMETERS。
 ...DECIMALS dec:定义小数位,对输入参数自动格式化,该语法只对P类型有效(参数某一类型定义关键字TYPE)。
 ...LIKE g:參照某一字典对象定义PARAMETERS。
 ...MEMORY ID pi:将PARAMETERS存储在SAP内存,参数名长度不能超过三位
 ...NO-DISPLAY:将PARAMETERS设置为隐藏,不会的屏幕上输出。
 ...LOWER CASE:输入值中不允许输入小写字符,否则会自动转换为大写。
 ...OBLIGATORY:限制该PARAMETERS为必填,否则会提示输入。
 ...AS CHECKBOX:创建CHECKBOX对象。
 ...RADIO BUTTON GROUP radi:创建(RADIO)单选框。
 ...VISIBLE LENGTH vlen:定义显示长度。
 ...USER-COMMAND ucom:为创建对象分配对象名,该值保存在内表中可供其它对象操作。
 ...AS LISTBOX VISIBLE LENGTH vlen:创建一个下拉框,并指定长度。
 以下示例展示如何对下拉框填充数据。
 [For Example]

*定义一个下拉框对象,其可视数据长度一般比输出数据长度大2用于放置下拉图标

PARAMETERS:P_LANG(20) AS LISTBOX VISIBLE LENGTH 22.
*该变量用于记录下拉列表数值是否初始化,否则每次屏幕初始化都会重新加载重复数据
DATA:INIT.
AT SELECTION-SCREEN OUTPUT.
   PERFORM SETLIST.
*子程序用于加载下拉框的数据
FORM SETLIST.
  TYPE-POOLS VRM.
  DATA MYVALUE TYPE VRM_VALUES WITH HEADER LINE.
  
*对内表加载值
MYVALUE-KEY = 'CHINESE'. MYVALUE-TEXT = '中国'APPEND MYVALUE.
MYVALUE-KEY = 'AMERICAN'. MYVALUE-TEXT = '美国'APPEND MYVALUE.
MYVALUE-KEY = 'ENGLISH'. MYVALUE-TEXT = '英国'APPEND MYVALUE.
MYVALUE-KEY = 'FRENCH'. MYVALUE-TEXT = '法国'APPEND MYVALUE.
IF INIT IS INITIAL.
    CALL FUNCTION 'VRM_SET_VALUES' "调用函数对下拉框对象传递数据
       EXPORTING
         ID 'P_LANG' "下拉框对象名
         VALUES = MYVALUE[]  "下拉框中加载的数据
       EXCEPTIONS
         ID_ILLEGAL_NAME = 1
         OTHERS 2.
ENDIF.
INIT = 'X'"记录初始化状态
ENDFORM.
代码执行结果界面如下:

 

引用字典对象 TYPE-POOLS VRM 用于保存列表对象,也可自定义一内表,如

DATA:BEGIN OF VALUES OCCURS 0,
         KEY(40) TYPE C,
         TEXT(40) TYPE C,
END OF VALUES.