在选择屏幕 上创建按钮
要在选择屏 幕上创建按 钮,可以与 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.