• 选择屏幕2


    https://blog.csdn.net/Fall_in_Lc/article/details/125684466

    Selection Screen 选择屏幕

    BLOCK块

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

    SELECTION-SCREEN BEGIN OF BLOCK  blk1 WITH FRAME  TITLE TEXT-001.
    
    SELECTION-SCREEN  END OF BLOCK blk1.
    
    • 1
    • 2
    • 3

    WITH FRAME 就是显示整个区域的边框
    TITLE TEXT 就是给整个区域命名。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  CMMENT  2(8)  TEXT-002  FOR  FIELD  p_xxx1.
    	SELECTION-SCREEN  POSITION  14.
    	PARAMETERS p_xxx2  RDIOBUTTON  GROUP g1.
    	SELECTION-SCREEN END OF  LINE.
    SELECTION-SCREEN END  OF BLOCK blk1.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    Check Box 复选框

    PARAMETERS p_xxx AS CHECKBOX.

    文本框 – 不使用PARAMETERS

    使用SELECT-OPTIONS 来做输入框

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

    文本框 – 使用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,		" 和 PARAMETERS  一样
    								  s_xxx2  FOR  xxx  NO   INTERVALS,					"可输入多值
    								  s_xxx3  FOR  xxx. 												:可输入多值,范围
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    动态显示屏幕

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

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

    SELECT-OPTIONS:  s_xxx1  FOR  xxx NO INTERVALS  NO-EXTENSION  MEMORY ID  s1 MODIF  ID  ty1,
    								  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  SCRENN.
    ENDLOOP.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

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

    这里有几点需要注意,

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

    我们在SELECT-OPTIONS 里还加入了 MEMORY ID xx
    这是用来记录我们屏幕上输入的值
    当我们再次执行程序时,它会自动带出我们上一次输入的值
    这会减少用户的输入,是非常值得使用的

    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.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
  • 相关阅读:
    JavaScript的Web Worker
    Oracle一些操作语句
    【javaEE初阶】多线程 _ 进阶篇 _ 死锁
    【vue2绘制echarts环状图】vue2使用echarts绘制环状图
    autopoi-web 导入 excel 解决二级表头重复问题
    final关键字
    记一次Golang中一次内存泄漏的问题排查
    npm包停止了对 require 导入方式的支持,只允许使用import 导入方式,怎么解决
    Android开发者在企业秋招或者社招中加分点到底有哪些?
    【暑期每日一题】洛谷 P7222 [RC-04] 信息学竞赛
  • 原文地址:https://blog.csdn.net/weixin_43847969/article/details/126717103