Online程序学习(二)

本文详细介绍了GUI界面的各种元素,如按钮、文本控件、输入框、单选按钮、复选框以及Tabstrip控件的使用和逻辑实现。通过具体的代码示例,展示了如何在程序中定义这些元素的功能,包括退出按钮的逻辑、输入框的隐藏显示以及Tabstrip控件的切换逻辑。此外,还解析了相关代码逻辑顺序,帮助理解界面交互的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

八、界面元素

1、按钮

  1. 在界面中定义一个退出按钮

    1. 名称、文本、功能代码

  2. 在PAI处理结果
    MODULE USER_COMMAND_0100 INPUT.
      CASE SY-UCOMM.
        WHEN 'EXIT'.
          LEAVE PROGRAM.
      ENDCASE.
    ENDMODULE.

2、文本控件

3、输入框控件

4、单选按钮

  1. 成组设置Funcation Code,将多个单选按钮设置成一组
  2. 选中需要设置成一组的单选按钮,右键单选按钮组定义

5、复选框

  1. 默认情况下为不选中(通过赋值实现初始化为选中)
  2. 可以关联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控件

  1. Tabstrip可以实现在某个界面中,通过tab页的形式来显示多个界面
  2. 构成:按钮及子界面区域

1、实现

  1. 创建Tabstrip Control,选择控件  
    1.                 
  2. 输入标签条控件名称
  3. 输入需要创建的各个tab页的描述
  4. 设定各tab页的名称,及相应的子界面编号
  5. 激活程序
    1. 查看到程序中增加了子界面的编号,可以依次进入界面,修改界面格式
    2. 设置方式与主界面相同,但不能设置GUI Status和GUI TITLE
  6. 逻辑流
  7. 代码浅析
    1. ZBX_01_TOP
      1. *&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.
    2. ZBX_01_PBO
      1. "根据功能代码获取子屏幕编号
        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.

    3. ZBX_01_PAI
      1. 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.

        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事件

        

                

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值