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

25 篇文章 7 订阅

Selection Screen 选择屏幕

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.

在这里插入图片描述


  • 24
    点赞
  • 144
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值