SELECTION-SCREEN BUTTON

BAP SELECTION-SCREEN按钮

在选择屏幕 上创建按钮

要在选择屏 幕上创建按 钮,可以与 PUSHBUTTON 参数一起使 用 SELECTION-SCREEN 语句。语法 如下:

语法

SELECTION SCREEN PUSHBUTTON [/] <pos(len)> <name> 
                            USER-COMMAND <ucom> [MODIF ID <key>].
参数 [/]<pos(len)>、 <name> 和 MODIF ID 选项与在注释. 中对 COMMENT 选项进行的 描述相同。
在 <name> 中指定的文 本是按钮文 本。
对于 <ucom>, 必须指定最 多为 4 字符的代码 。当用户在 选择屏幕上 单击按钮时 ,<ucom> 被输入词典 字段 SSCRFIELDS-UCOMM。

必须使用 TABLES 语句声明 SSCRFIELDS。

可以在事件 AT SELECTION-SCREEN (参见 AT SELECTION-SCREEN )中检查 SSCRFIELDS-UCOMM 字段的内容 。
下列示例与 展示应用工 具条按钮的 示例(参见 在应用工具条中创建按钮 )的效果相 同。但是, 按照“ SAP 风格指南” ,建议尽可 能把按钮放 在应用工具 条中。

TABLES SSCRFIELDS.
DATA FLAG.
PARAMETERS TEST.
SELECTION-SCREEN PUSHBUTTON /20(10) BUT1
                                    USER-COMMAND CLI1.
SELECTION-SCREEN PUSHBUTTON /20(10) TEXT-020 
                                    USER-COMMAND CLI2.
INITIALIZATION.
   BUT1 = 'Button 1'.
AT SELECTION-SCREEN.
   IF SSCRFIELDS-UCOMM = 'CLI1'.
      FLAG = '1'.
   ELSEIF SSCRFIELDS-UCOMM = 'CLI2'.
      FLAG = '2'.
ENDIF.
START-OF-SELECTION.
   IF FLAG = '1'.
      WRITE / 'Button 1 was clicked'.
   ELSEIF FLAG = '2'.
      WRITE / 'Button 2 was clicked'.
   ENDIF.

如果文本符 号 TEXT-020 被定义为“ Button 2”(参见 文本符号 ),该示例 使具有文本 “Button 1”和“Button 2”的两个 按钮出现在 选择屏幕上 ,如下所示 :


CLI1 和 CLI2 用于 <ucom>。 当用户单击 按钮时,内 部标志 FLAG 按照时间事 件 AT SELECTION-SCREEN 中的定义进 行设置。FLAG 
字段可以在 程序的后续 流程中进行 进一步的处 理(参见 通过事件控制 ABAP/4 程序流 )。

 

另外也可以直接用SSCRFIELDS

示例:

Tables:SSCRFIELDS.

SELECTION-SCREEN FUNCTION KEY 1.                   "工具栏按钮,最多5个
SELECTION-SCREEN FUNCTION KEY 2.


INITIALIZATION .
  input = '输入查询条件'.
   sscrfields-functxt_01 = '@HH@ 上传作废标记'.
   sscrfields-functxt_02 = '@HH@ 上传增值税号码'.
@HH@ 按钮进入表icon看到所有的

AT SELECTION-SCREEN.
  CASE sy-ucomm . " sy-dynnr sscrfields-ucomm
    WHEN 'FC01'. "   该user command为系统规定
      PERFORM frm_upload_file.
      PERFORM frm_write_flag.

    WHEN 'FC02'. 
      PERFORM frm_upload_file.
      PERFORM frm_write_num.
    WHEN OTHERS.
  ENDCASE.

posted @ 2013-11-27 08:13  Eric.su  阅读(339)  评论(0编辑  收藏  举报