SELECT SCREEN 整理3 转载

     在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"按钮调用下一个屏幕,如下:
    
     

原文地址:https://www.cnblogs.com/eric0701/p/4235630.html