SAP ABAP Selection Screen 选择屏幕看这一篇就够了(持续更新)

Selection Screen 选择屏幕

文章目录

  • Selection Screen 选择屏幕
    • BLOCK 块
    • Radio button 单选框
    • 豪横的横向单选框
    • Check Box 复选框
    • 文本框 - 一般不用 PARAMETERS
    • 文本框 - 主要使用 SELECT-OPTIONS
    • 动态显示选择屏幕
    • Screen Icon 屏幕图标
    • Drop Down List 下拉选项

BLOCK 块

Block 是在屏幕上划分一个区域,对屏幕进行分块便于对功能进行区分。

为了好看

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001.SELECTION-SCREEN END OF BLOCK blk1.

WITH FRAME 就是显示整个区域的边框

在这里插入图片描述

TITLE TEXT-001 就是给整个区域命名。TEXT-001 可以在文本元素里给整个 BLOCK 添加描述

在这里插入图片描述

Radio button 单选框

单选框,用来做选择。

选择大于努力

PARAMETERS: p_xxxx RADIOBUTTON GROUP g1 DEFAULT 'X',p_xxxx RADIOBUTTON GROUP g1.

在这里插入图片描述

有的时候还要加上 USER-COMMAND 关键字用于获取用户的选择,以便动态更改屏幕

豪横的横向单选框

有时候为了好看,我们会把单选框做来横着

可以称之为豪横的单选框

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001.SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN POSITION 1.PARAMETERS p_xxx1 RADIOBUTTON GROUP g1 USER-COMMAND uc DEFAULT 'X'.SELECTION-SCREEN COMMENT 2(8) TEXT-002 FOR FIELD p_xxx1.SELECTION-SCREEN POSITION 14.PARAMETERS p_xxx2 RADIOBUTTON GROUP g1.SELECTION-SCREEN COMMENT 15(10) TEXT-003 FOR FIELD p_xxx2.SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK blk1.

在这里插入图片描述

Check Box 复选框

复选框

小孩子才做选择

我全都要

PARAMETERS p_xxxx AS CHECKBOX.

在这里插入图片描述

文本框 - 一般不用 PARAMETERS

PARAMETERS 已经在 单选框、多选框处大显身手了

那么在文本框这里我们就给他点休息时间

因为使用 SELECT-OPTIONS 来做输入框,相较于 PARAMETERS 可以说是

“人无我有,人有我优”

PARAMETERS: p_xxxx TYPE xxxx OBLIGATORY,p_xxxx TYPE xxxx OBLIGATORY DEFAULT, p_xxxx TYPE xxxx OBLIGATORY DEFAULT.

文本框 - 主要使用 SELECT-OPTIONS

有些人天生就是主角

没错 说的就是 SELECT-OPTIONS

SELECT-OPTIONS 可以输入单值、多值 、范围

还可以包含、排除等

再搭配上 OPEN-SQL 从数据库里查询值

只能说爱不释手

SELECT-OPTIONS: s_xxx FOR xxx,           s_xxx FOR xxx DEFAULT xxx. 
SELECT-OPTIONS: s_xxx1 FOR xxx NO INTERVALS NO-EXTENSION, " 和 PARAMETERES 一样s_xxx2 FOR xxx NO INTERVALS, " 可输入多值s_xxx3 FOR xxx. " 可输入多值、范围

在这里插入图片描述

动态显示选择屏幕

为了使选择屏幕的输入有针对性,有时我们会让它动起来

就是动态显示选择屏幕的内容

SELECT-OPTIONS: s_xxx1 FOR xxx NO INTERVALS NO-EXTENSION MEMORY ID s1 MODIF ID ty1, " 和 PARAMETERES 一样s_xxx2 FOR xxx NO INTERVALS MEMORY ID s2 MODIF ID ty2,              " 可输入多值s_xxx3 FOR xxx MEMORY ID s3 MODIF ID ty3. " 可输入多值、范围PARAMETERS: p_xxx1 RADIOBUTTON GROUP g1 USER-COMMAND uc DEFAULT 'X',
p_xxx2 RADIOBUTTON GROUP g1,
p_xxx3 RADIOBUTTON GROUP g1.AT SELECTION-SCREEN OUTPUT.LOOP AT SCREEN. " LOOP 很关键,就是全部循环来控制哪些显示 1 哪些隐藏 0
IF screen-group1 EQ 'TY1' AND p_xxx1 NE 'X'.
* screen-invisible = 1.screen-active = 0. " 0 隐藏,1 显示ENDIF.IF screen-group1 EQ 'TY2' AND p_xxx2 NE 'X'.
screen-active = 0.ENDIF.IF screen-group1 EQ 'TY3' AND p_xxx3 NE 'X'.
screen-active = 0.ENDIF.MODIFY SCREEN.
ENDLOOP.

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

以上的效果是选择屏幕会依据单选框的选择进行变化

这里有几点需要注意的

  1. PARAMETERS 单选框里 USER-COMMAND uc 是必需的
  2. SELECT-OPTIONS 输入框里 MODIF ID ty 是必需的
  3. 在 ==AT SELECTION-SCREEN OUTPUT ==事件里对屏幕进行逻辑处理

我们在 SELECT-OPTIONS 里还加入了 MEMORY ID xx

这是用来记录我们屏幕上输入的值

当我们再次执行程序时,它会自动带出我们上一次输入的值

这会减少用户的输入,是非常值得推荐的

Screen Icon 屏幕图标

在选择屏幕上我们除了可以ONLI POST 表单以外

我们还能做什么?

在很多时候,我们可能会需要从外部导入 EXCEL 等文件内容

为了确保内容的可读性,我们会设计一个 EXCEL 模板

那么用户怎么去下载这个模板呢

这个时候我们就可以在选择屏幕处增加一个下载按钮

就像下面这样

TABLES: sscrfields.SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001.PARAMETERS p_xxxx TYPE xxxx.
SELECTION-SCREEN END OF BLOCK blk1.
SELECTION-SCREEN FUNCTION KEY 1.INITIALIZATION.sscrfields-functxt_01 = 'Test Icon'.AT SELECTION-SCREEN.
IF sscrfields-ucomm EQ 'FC01'.MESSAGE 'Hello World!' TYPE 'S'.ENDIF.

在这里插入图片描述

Drop Down List 下拉选项

有的时候单选框占的位置太多了,不太好看

我们就可以用下拉框来限制用户的输入

TYPE-POOLS: vrm.DATA: gv_name TYPE vrm_id,gt_list TYPE vrm_values,gs_list LIKE LINE OF gt_list.PARAMETERS: p_type(10) AS LISTBOX VISIBLE LENGTH 10.AT SELECTION-SCREEN OUTPUT.gv_name = 'P_TYPE'.gs_list-key = '1'.gs_list-text = '失败'.APPEND gs_list TO gt_list.gs_list-key = '2'.gs_list-text = '成功'.APPEND gs_list TO gt_list.gs_list-key = '3'.gs_list-text = '全部'.APPEND gs_list TO gt_list.CALL FUNCTION 'VRM_SET_VALUES' EXPORTING id = gv_name values = gt_list.

在这里插入图片描述



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部