八、界面元素
1、按钮
-
在界面中定义一个退出按钮
- 名称、文本、功能代码
- 名称、文本、功能代码
- 在PAI处理结果
MODULE USER_COMMAND_0100 INPUT. CASE SY-UCOMM. WHEN 'EXIT'. LEAVE PROGRAM. ENDCASE. ENDMODULE.
2、文本控件
3、输入框控件
4、单选按钮
- 成组设置Funcation Code,将多个单选按钮设置成一组
- 选中需要设置成一组的单选按钮,右键单选按钮组定义
5、复选框
- 默认情况下为不选中(通过赋值实现初始化为选中)
- 可以关联Function Code实现功能
6、显示与隐藏
选中复选框时,将输入框隐藏
IF GV_CHECKBOX = 'X'.
LOOP AT SCREEN.
IF SCREEN-NAME = 'GV_INPUT01'.
SCREEN-INPUT = '0'. "将输入框设置成不可输入
SCREEN-INVISIBLE = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
7、Tabstrip控件
- Tabstrip可以实现在某个界面中,通过tab页的形式来显示多个界面
- 构成:按钮及子界面区域
1、实现
- 创建Tabstrip Control,选择控件
-
- 输入标签条控件名称
- 输入需要创建的各个tab页的描述
- 设定各tab页的名称,及相应的子界面编号
- 激活程序
- 查看到程序中增加了子界面的编号,可以依次进入界面,修改界面格式
- 设置方式与主界面相同,但不能设置GUI Status和GUI TITLE
- 逻辑流
- 代码浅析
- ZBX_01_TOP
-
*&SPWIZARD: FUNCTION CODES FOR TABSTRIP 'LEARN' *标签条按钮的功能代码 CONSTANTS: BEGIN OF C_LEARN, TAB1 LIKE SY-UCOMM VALUE 'LEARN_FC1', TAB2 LIKE SY-UCOMM VALUE 'LEARN_FC2', TAB3 LIKE SY-UCOMM VALUE 'LEARN_FC3', TAB4 LIKE SY-UCOMM VALUE 'LEARN_FC4', END OF C_LEARN. *&SPWIZARD: DATA FOR TABSTRIP 'LEARN' **&TABSTRIP的数据变量 CONTROLS: LEARN TYPE TABSTRIP. DATA: BEGIN OF G_LEARN, SUBSCREEN LIKE SY-DYNNR, "子界面编号 PROG LIKE SY-REPID VALUE 'ZBX_01', "当前的程序名 PRESSED_TAB LIKE SY-UCOMM VALUE C_LEARN-TAB1, END OF G_LEARN. DATA: OK_CODE LIKE SY-UCOMM.
-
- ZBX_01_PBO
-
"根据功能代码获取子屏幕编号 MODULE LEARN_ACTIVE_TAB_SET OUTPUT. LEARN-ACTIVETAB = G_LEARN-PRESSED_TAB. CASE G_LEARN-PRESSED_TAB. WHEN C_LEARN-TAB1. G_LEARN-SUBSCREEN = '0110'. WHEN C_LEARN-TAB2. G_LEARN-SUBSCREEN = '0120'. WHEN C_LEARN-TAB3. G_LEARN-SUBSCREEN = '0130'. WHEN C_LEARN-TAB4. G_LEARN-SUBSCREEN = '0140'. WHEN OTHERS. *&SPWIZARD: DO NOTHING ENDCASE. ENDMODULE.
-
- ZBX_01_PAI
-
MODULE LEARN_ACTIVE_TAB_GET INPUT. OK_CODE = SY-UCOMM. CASE OK_CODE. WHEN C_LEARN-TAB1. G_LEARN-PRESSED_TAB = C_LEARN-TAB1. WHEN C_LEARN-TAB2. G_LEARN-PRESSED_TAB = C_LEARN-TAB2. WHEN C_LEARN-TAB3. G_LEARN-PRESSED_TAB = C_LEARN-TAB3. WHEN C_LEARN-TAB4. G_LEARN-PRESSED_TAB = C_LEARN-TAB4. WHEN OTHERS. ENDCASE. ENDMODULE.
-
- ZBX_01_TOP
8.代码逻辑顺序
1、程序执行PBO事件的LEARN_ACTIVE_TAB_SET代码块
2、将全局变量G_LEARN-PRESSED_TAB赋值给LEARN-ACTIVETAB
3、根据G_LEARN-PRESSED_TAB来获取数据,给全局变量G_LEARN-SUBSCREEN子屏幕赋值
4、调用(G_LEARN-PROG)程序的子屏幕(G_LEARN-SUBSCREEN)展示在LEARN_SCA区域中
5、点击回车
6、程序执行PAI事件
7、根据OK_CODE给全局变量G_LEARN-PRESSED_TAB赋值
8、程序执行PBO事件