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 C 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.