在ABAP中在屏幕上創建按鈕,你需要在SELECTION-SCREEN對象中加入PUSHBUTTON參數,語法如下:
[Syntax]
SELECTION-SCREEN PUSHBUTTON [/] <pos(len)> <name> USER-COMMAND <ucom> [MODIF ID <key>]
<pos(len)>:PUSHBUTTON按鈕在屏幕生成的位置與長度。
<name>:PUSHBUTTON按鈕的名稱,給按鈕賦值時要用到名字。
<ucom>:必須指定的字符代碼,當用戶在選擇屏幕上觸發按鈕時,<ucom>被輸入到詞典對象字段:SSCRFIELDS-UCOMM中,需要注意的是,必須顯式使用語句TABLES引用SSCRFIELDS。否則將會報如下錯誤:
[For Example]
TABLES SSCRFIELDS."引用詞典對象
INCLUDE:<icon>. "按鈕中加入圖標必須調用該類型庫,圖標請參考T-CODE:ICON
SELECTION-SCREEN PUSHBUTTON /1(20) PUBU1 USER-COMMAND ABCD.
SELECTION-SCREEN SKIP."換行
SELECTION-SCREEN PUSHBUTTON /10(25) PUBU2 USER-COMMAND ABCE. "位置從10開始
AT SELECTION-SCREEN OUTPUT.
MOVE 'CALL NEXT SCREEN' TO PUBU1. "給PUBU1按鈕賦值描述
*INITIALIZATION. "屏幕初始化
* PUBU1 = 'First PUSHBUTTON'.
WRITE ICON_OKAY AS ICON TO PUBU2. "給PUBU2按鈕添加圖標,並且在給按鈕賦值之前,否則將會把文字替換。
*MOVE 'THE SECOND BUTTON' TO PUBU2.
CONCATENATE PUBU2 'My Second Button' INTO PUBU2 SEPARATED BY SPACE. "給第二個按鈕添加賦值描述
AT SELECTION-SCREEN.
IF SSCRFIELDS-UCOMM = 'ABCD'.
CALL SELECTION-SCREEN 1234. "調用程序中的另一個窗體
ENDIF.
以上代碼運行界面如下:
點擊"CALL NEXT SCREEN"按鈕調用下一個屏幕,如下: