ABAP Dialog开发(一)——多页签子屏幕切换

该文章描述了一个ABAP程序的设计与实现,通过上下分屏和子屏幕内嵌展示查询条件,使用多页签切换展示不同类型的库存数据,如非限制库存、供应商库存等。程序实现了用户输入工厂和物料后,动态查询和显示库存信息的功能,并且详细介绍了代码实现和界面处理过程。

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

文章目录


一、需求

通过工厂+物料,查询当前非限制库存、供应商库存、销售订单库存、客户寄售库存。


二、设计思路

1、可以将界面上下切分为两个屏幕,上半部分用于输入选择条件,而下半部分用于显示当前的库存数据。用户需要在上半部分输入所需的查询条件,例如物料号码、工厂等等,然后点击“查询”按钮以执行查询操作。当查询完成后,系统将会在下半部分屏幕中显示与查询条件匹配的所有库存数据。通过将界面切分为上下两个屏幕,可以使用户更加方便地输入和查看库存数据。此外,用户还可以根据自己的需求对查询结果进行进一步的筛选、排序以及导出等操作;

2、可以采用将选择屏幕内嵌为子屏幕使用的设计方式,实现上半部分屏幕的选择功能。这种设计方式可以简化画屏幕元素的过程,同时也方便了用户输入和选择查询条件。

3、为了显示不同类型的库存数据,采用将下半部分屏幕分成多个子屏幕页签,并使用切换的方式来显示不同的库存类型数据。这种设计方式可以使得用户方便地查看不同类型的库存数据,并且减少界面的混乱度。具体而言,我们可以在下半部分屏幕上方设置一个页签栏,每个页签对应一个库存类型,例如非限制库存、供应商库存、销售订单库存和客户寄售库存等。当用户需要查看某一种库存类型时,他们可以单击相应的页签来切换到对应的子屏幕中。每个子屏幕都会显示当前库存类型的所有库存数据,并且可以按照不同的属性进行排序、过滤或导出。通过使用多个子屏幕页签的方式,可以使得界面更加清晰、易于理解。同时,这种设计方式还可以增加系统的可扩展性和可维护性,以便根据未来的需求进一步调整和优化界面。

三、实现难点

1.选择屏幕内嵌为子屏幕 

代码如下(示例):

SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
  PARAMETERS:p_werks TYPE mard-werks OBLIGATORY.
  SELECT-OPTIONS: s_matnr FOR mard-matnr.
SELECTION-SCREEN END OF SCREEN 100.

屏幕逻辑流中代码实现如下: 


屏幕布局设置如下:


2.多页签子屏幕切换

可使用标准向导自动生成页签及对应代码,具体过程如下所示:


 选择标签条(含向导)按钮,划定屏幕区域。



 输入标签条名称:


输入标签文本,需要创建几个页签输入几个文本即可。本例我们需要显示 非限制库存、供应商库存、销售订单库存、客户寄售库存四种类型库存,输入TAB1~TAB4四个标签名称。


系统根据输入的标签文本,自动生成对应的子屏幕编号及页签按钮对应的功能码,如项目上有明确的命名规范要求,请根据规范修改命名规则即可;如无特殊要求,使用自动生成的命名规则即可。


选择向导自动生成代码存放的程序位置,若输入的程序不存在,将自动创建该包含程序 。


点击完成即可。


自动生成的代码如下所示:(上述截图具体数据只做测试,如屏幕编号等,故代码截图和上述向导截图中的屏幕编号可能不太匹配,以代码屏幕编号为准)

定义部分:


屏幕PBO部分: 


 屏幕PAI部分:


四、实例代码

主程序:

*======================================================================*
*& <项目名称>:
*& <程序类型>:
*& <功能模块>:
*& <事物代码>:
*& <程序名称>:
*& <程序描述>:
*& <创 建 人>:
*& <创建日期>:
*& <功能顾问>:
*& <功能说明>:
*&
*&---------------------------------------------------------------------*
*&             Modification Log<程序修改日志>
*&<日期>       <开发者>     <修改者>            <修改描述>
*&---------------------------------------------------------------------*
REPORT zmzhdemo03.

"ALV 通用方法
INCLUDE zcmx_alv.

"ALV 通用事件及本地类注册
INCLUDE zcmx_alvevt.

"定义声明部分
INCLUDE zmzhdemo03top .

"程序逻辑处理
INCLUDE zmzhdemo03f01 .

"程序界面处理
INCLUDE zmzhdemo03f02 .

"程序界面PBO部分
INCLUDE zmzhdemo03pbo .

"程序界面PAI部分
INCLUDE zmzhdemo03pai .

定义声明:

*&---------------------------------------------------------------------*
*& 包含               ZMZHDEMO03TOP
*&---------------------------------------------------------------------*

************************************************************************
* <1.声明>
************************************************************************
TYPE-POOLS: slis.

*----------------------------------------------------------------------*
* <1.1-表工作区>
*----------------------------------------------------------------------*
TABLES:mard.

*----------------------------------------------------------------------*
* <1.2-类型>
*----------------------------------------------------------------------*


*----------------------------------------------------------------------*
* <1.3-内表>
*----------------------------------------------------------------------*
DATA:
  gt_tab1 TYPE TABLE OF mard,
  gt_tab2 TYPE TABLE OF mslb,
  gt_tab3 TYPE TABLE OF mska,
  gt_tab4 TYPE TABLE OF msku.


*----------------------------------------------------------------------*
* <1.4-工作区>
*----------------------------------------------------------------------*
DATA:
  gt_fieldcat TYPE lvc_t_fcat,
  gs_alvtitle TYPE lvc_title,
  gs_layout   TYPE lvc_s_layo.

*----------------------------------------------------------------------*
* <1.5-常量>
*----------------------------------------------------------------------*

*&SPWIZARD: FUNCTION CODES FOR TABSTRIP 'TAB9000'
CONSTANTS:
  BEGIN OF c_tab9000,
    tab1 LIKE sy-ucomm VALUE 'TAB9000_FC1',
    tab2 LIKE sy-ucomm VALUE 'TAB9000_FC2',
    tab3 LIKE sy-ucomm VALUE 'TAB9000_FC3',
    tab4 LIKE sy-ucomm VALUE 'TAB9000_FC4',
  END OF c_tab9000.

*&SPWIZARD: DATA FOR TABSTRIP 'TAB9000'
CONTROLS:
  tab9000 TYPE TABSTRIP.

CONSTANTS:
  g_container_name1 TYPE char10 VALUE 'CUSTOM1',
  g_container_name2 TYPE char10 VALUE 'CUSTOM2',
  g_container_name3 TYPE char10 VALUE 'CUSTOM3',
  g_container_name4 TYPE char10 VALUE 'CUSTOM4'.

*----------------------------------------------------------------------*
* <1.6-全局变量> Global Variants Declaration
*----------------------------------------------------------------------*

DATA:
  BEGIN OF g_tab9000,
    subscreen   LIKE sy-dynnr,
    prog        LIKE sy-repid VALUE 'ZMZHDEMO03',
    pressed_tab LIKE sy-ucomm VALUE c_tab9000-tab1,
  END OF g_tab9000.

DATA:
  save_ok LIKE sy-ucomm,
  ok_code LIKE sy-ucomm.

DATA:
  g_alv_grid1      TYPE REF TO cl_gui_alv_grid,
  g_alv_container1 TYPE REF TO cl_gui_custom_container,
  g_alv_grid2      TYPE REF TO cl_gui_alv_grid,
  g_alv_container2 TYPE REF TO cl_gui_custom_container,
  g_alv_grid3      TYPE REF TO cl_gui_alv_grid,
  g_alv_container3 TYPE REF TO cl_gui_custom_container,
  g_alv_grid4      TYPE REF TO cl_gui_alv_grid,
  g_alv_container4 TYPE REF TO cl_gui_custom_container.

*----------------------------------------------------------------------*
* <1.7-宏>
*----------------------------------------------------------------------*
*DEFINE fc.
*
*END-OF-DEFINITION.

*----------------------------------------------------------------------*
* <1.8-类>      CLASS lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*


*----------------------------------------------------------------------*
* <1.9-选择屏幕>
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
  PARAMETERS:p_werks TYPE mard-werks OBLIGATORY.
  SELECT-OPTIONS: s_matnr FOR mard-matnr.
SELECTION-SCREEN END OF SCREEN 100.


************************************************************************
* <2.处理过程>
************************************************************************
*----------------------------------------------------------------------*
* <2.1-用于程序的初始化,在标准显示选择屏调用前执行,>
*----------------------------------------------------------------------*
INITIALIZATION.


*----------------------------------------------------------------------*
* AT SELECTION-SCREEN
*----------------------------------------------------------------------*


*----------------------------------------------------------------------*
* <2.3-在选择屏幕被处理后触发的事件>
*----------------------------------------------------------------------*
START-OF-SELECTION.


END-OF-SELECTION.

*----------------------------------------------------------------------*
* <2.4-运行时环境中最后被触发的事件>
*----------------------------------------------------------------------*

  CALL SCREEN 9000.

程序逻辑处理:

*&---------------------------------------------------------------------*
*& Include ZMZHDEMO03F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form frm_get_data
*&---------------------------------------------------------------------*
*& 数据获取
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_get_data .

  "根据选择界面输入条件 筛选数据

  "普通库存
  SELECT * FROM mard INTO TABLE gt_tab1 UP TO 100 ROWS WHERE werks = p_werks AND matnr IN s_matnr.

  "供应商库存
  SELECT * FROM mslb INTO TABLE gt_tab2 UP TO 100 ROWS WHERE werks = p_werks AND matnr IN s_matnr.

  "销售订单库存
  SELECT * FROM mska INTO TABLE gt_tab3 UP TO 100 ROWS WHERE werks = p_werks AND matnr IN s_matnr.

  "客户库存
  SELECT * FROM msku INTO TABLE gt_tab4 UP TO 100 ROWS WHERE werks = p_werks AND matnr IN s_matnr.

ENDFORM.

程序界面处理:

*&---------------------------------------------------------------------*
*& 包含               ZMZHDEMO03F02
*&---------------------------------------------------------------------*


*&---------------------------------------------------------------------*
*& Form frm_data_display
*&---------------------------------------------------------------------*
*& ALV显示处理
*&---------------------------------------------------------------------*
*&      --> T_TABLE
*&      --> ALV_GRID
*&      --> ALV_CONTAINER
*&      --> CONTAINER_NAME
*&---------------------------------------------------------------------*
FORM frm_data_display  TABLES   t_table        TYPE STANDARD TABLE
                        USING   alv_grid       TYPE REF TO cl_gui_alv_grid
                                alv_container  TYPE REF TO cl_gui_custom_container
                                container_name TYPE c
                                handle         TYPE slis_handl.

  "ALV 初始化
  IF alv_grid IS INITIAL .

    "LAYOUT 布局设定
    PERFORM frm_alv_layout.

    "FIELDCAT 字段填充设定
    PERFORM frm_fieldcat_build TABLES t_table.

    "容器实例化及ALV界面显示
    PERFORM frm_report_display TABLES t_table USING alv_grid alv_container container_name handle.

  ELSE.

    "内表数据刷新
    PERFORM frm_alv_refresh_no_scroll USING alv_grid.

    "优化列宽设定
    PERFORM frm_alv_col_optimize USING alv_grid.

  ENDIF.


ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_ALV_LAYOUT
*&---------------------------------------------------------------------*
*       设定Layout
*----------------------------------------------------------------------*
FORM frm_alv_layout .

  CLEAR gs_layout.
  "设置行颜色变化
  gs_layout-zebra      = 'X'.
  "列宽自适应
  gs_layout-cwidth_opt = 'X'.
  "设置选择按钮
  gs_layout-sel_mode   = 'D'.

ENDFORM.                    " FRM_ALV_LAYOUT


*&---------------------------------------------------------------------*
*&      Form  FIELDCAT_BUILD
*&---------------------------------------------------------------------*
*       设定Fieldcat
*----------------------------------------------------------------------*
FORM frm_fieldcat_build TABLES t_table TYPE STANDARD TABLE.

  "FIELDCAT 字段填充
  zcl_common=>get_fieldcat( EXPORTING i_tabname = t_table[] CHANGING t_fieldcat = gt_fieldcat ).

ENDFORM.                    " FIELDCAT_BUILD

*&---------------------------------------------------------------------*
*&      Form  REPORT_DISPLAY
*&---------------------------------------------------------------------*
*       ALV显示输出
*----------------------------------------------------------------------*
FORM frm_report_display TABLES t_table TYPE STANDARD TABLE
                          USING alv_grid       TYPE REF TO cl_gui_alv_grid
                                alv_container  TYPE REF TO cl_gui_custom_container
                                container_name TYPE c
                                handle         TYPE slis_handl.

  DATA:
    lt_exclude TYPE ui_functions,
    ls_variant TYPE disvariant.

  "创建container对象
  CREATE OBJECT alv_container
    EXPORTING
      container_name = container_name.

  "创建alv对象
  CREATE OBJECT alv_grid
    EXPORTING
      i_parent = alv_container.

*  "隐藏按钮
*  PERFORM frm_exclude_code CHANGING lt_exclude.

  "变式布局
  ls_variant-report = sy-repid.
  ls_variant-handle = handle.

  "调用Alv显示方法
  CALL METHOD alv_grid->set_table_for_first_display
    EXPORTING
      is_layout                     = gs_layout
      is_variant                    = ls_variant
      it_toolbar_excluding          = lt_exclude "去掉后不隐藏功能键
      i_save                        = 'X'
      i_default                     = 'X'
    CHANGING
      it_outtab                     = t_table[]
      it_fieldcatalog               = gt_fieldcat
    EXCEPTIONS
      invalid_parameter_combination = 1
      program_error                 = 2
      too_many_lines                = 3
      OTHERS                        = 4.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDFORM.                    " REPORT_DISPLAY

*&---------------------------------------------------------------------*
*& Form frm_exclude_code
*&---------------------------------------------------------------------*
*&  排除不需要的标准Alv按钮
*&---------------------------------------------------------------------*
*&      <-- Lt_exclude
*&---------------------------------------------------------------------*
FORM frm_exclude_code  CHANGING lt_exclude TYPE ui_functions.



ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_ALV_TOOLBAR
*&---------------------------------------------------------------------*
*       给ALV TOOLBar添加自定义按钮
*----------------------------------------------------------------------*
*      -->E_OBJECT        Toolbar Object
*      -->E_INTERACTIVE   Interactive Call
*----------------------------------------------------------------------*
FORM frm_alv_toolbar USING e_object      TYPE REF TO cl_alv_event_toolbar_set
                           e_interactive  TYPE char01.



ENDFORM.                    " FRM_IT_TOOLBAR

*&---------------------------------------------------------------------*
*&      Form  FRM_ADD_SEPERATOR
*&---------------------------------------------------------------------*
*       添加分隔符
*----------------------------------------------------------------------*
*      <--ET_TOOLBAR  text
*----------------------------------------------------------------------*
FORM frm_add_seperator  CHANGING et_toolbar TYPE ttb_button.

  DATA: ls_toolbar TYPE stb_button.
  ls_toolbar-function  = 'DUMMY'.
  ls_toolbar-butn_type = '3'.
  APPEND ls_toolbar TO et_toolbar.

ENDFORM.                    " FRM_ADD_SEPERATOR

*&---------------------------------------------------------------------*
*&      Form  FRM_ADD_BUTTON
*&---------------------------------------------------------------------*
*       添加按钮(正常)
*----------------------------------------------------------------------*
*      -->I_FUNCTION    Function Code
*      -->I_ICON        图标名称
*      -->I_QUICKINFO   简要信息
*      -->I_TEXT        图标文本
*      <--ET_TOOLBAR    工具栏按钮
*----------------------------------------------------------------------*
FORM frm_add_button  USING    i_function  TYPE stb_button-function
                              i_icon      "TYPE STB_BUTTON-ICON
                              i_quickinfo "TYPE STB_BUTTON-TEXT
                              i_text      TYPE flag
                     CHANGING et_toolbar  TYPE ttb_button.

  DATA: ls_toolbar TYPE stb_button.
  "功能代码
  ls_toolbar-function  = i_function.
  "图标名称
  ls_toolbar-icon      = i_icon.
  "工具栏按钮类型
  ls_toolbar-butn_type = '0'.
  "不能使用
  ls_toolbar-disabled  = space.
  "文本
  ls_toolbar-quickinfo = i_quickinfo.
  IF i_text = 'X'.
    ls_toolbar-text = i_quickinfo.
  ENDIF.
  ls_toolbar-checked   = space.
  APPEND ls_toolbar TO et_toolbar.

ENDFORM.                    " FRM_ADD_BUTTON

*&---------------------------------------------------------------------*
*&      Form  FRM_ALV_USER_COMMAND
*&---------------------------------------------------------------------*
*       ALV 用户命令处理
*----------------------------------------------------------------------*
*      -->I_UCOMM
*----------------------------------------------------------------------*
FORM frm_alv_user_command USING i_ucomm TYPE sy-ucomm.




ENDFORM.                    " FRM_IT_USER_COMMAND

程序界面PBO部分:

*&---------------------------------------------------------------------*
*& Include ZMZHDEMO03PBO
*&---------------------------------------------------------------------*

"由程序自动生成,用于定义tabstrip标签页

*&SPWIZARD: OUTPUT MODULE FOR TS 'TAB9000'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: SETS ACTIVE TAB
MODULE tab9000_active_tab_set OUTPUT.

  "将当前选中的标签页赋值给tab9000-activetab
  tab9000-activetab = g_tab9000-pressed_tab.

  CASE g_tab9000-pressed_tab.

      "当当前标签页为c_tab9000-tab1时,设置g_tab9000-subscreen为'9001'
    WHEN c_tab9000-tab1.
      g_tab9000-subscreen = '9001'.

      "当当前标签页为c_tab9000-tab2时,设置g_tab9000-subscreen为'9002'
    WHEN c_tab9000-tab2.
      g_tab9000-subscreen = '9002'.

      "当当前标签页为c_tab9000-tab3时,设置g_tab9000-subscreen为'9003'
    WHEN c_tab9000-tab3.
      g_tab9000-subscreen = '9003'.

      "当当前标签页为c_tab9000-tab4时,设置g_tab9000-subscreen为'9004'
    WHEN c_tab9000-tab4.
      g_tab9000-subscreen = '9004'.

      "当前标签页为其他页时,不做处理
    WHEN OTHERS.

  ENDCASE.
ENDMODULE.

*&---------------------------------------------------------------------*
*& Module INTI_DATA OUTPUT
*&---------------------------------------------------------------------*
*&数据处理做界面展示
*&---------------------------------------------------------------------*
MODULE inti_data OUTPUT.


  "根据当前选中的标签页进行判断
  CASE g_tab9000-pressed_tab.

    WHEN c_tab9000-tab1.

      "普通库存
      PERFORM frm_data_display TABLES gt_tab1
                                USING g_alv_grid1 g_alv_container1 g_container_name1 '1'.

    WHEN c_tab9000-tab2.

      "供应商库存
      PERFORM frm_data_display TABLES gt_tab2
                                USING g_alv_grid2 g_alv_container2 g_container_name2 '2'.

    WHEN c_tab9000-tab3.

      "销售订单库存
      PERFORM frm_data_display TABLES gt_tab3
                                USING g_alv_grid3 g_alv_container3 g_container_name3 '3'.

    WHEN c_tab9000-tab4.

      "客户库存
      PERFORM frm_data_display TABLES gt_tab4
                                USING g_alv_grid4 g_alv_container4 g_container_name4 '4'.

    WHEN OTHERS.

  ENDCASE.

ENDMODULE.

*&---------------------------------------------------------------------*
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_9000 OUTPUT.

  "设置屏幕的PF状态为'PF9000'
  SET PF-STATUS 'PF9000'.

  "设置屏幕的标题栏为'T9000'
  SET TITLEBAR 'T9000'.

ENDMODULE.

程序界面PAI部分

*&---------------------------------------------------------------------*
*& Include ZMZHDEMO03PAI
*&---------------------------------------------------------------------*

*&SPWIZARD: INPUT MODULE FOR TS 'TAB9000'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: GETS ACTIVE TAB
MODULE tab9000_active_tab_get INPUT.

  "将ok_code的值赋给变量save_ok
  save_ok = ok_code.

  "清空 ok_code
  CLEAR ok_code.

  "判断用户点击页签切换按钮操作
  CASE save_ok.

    WHEN c_tab9000-tab1.
      g_tab9000-pressed_tab = c_tab9000-tab1.

    WHEN c_tab9000-tab2.
      g_tab9000-pressed_tab = c_tab9000-tab2.

    WHEN c_tab9000-tab3.
      g_tab9000-pressed_tab = c_tab9000-tab3.

    WHEN c_tab9000-tab4.
      g_tab9000-pressed_tab = c_tab9000-tab4.

    WHEN OTHERS.
  ENDCASE.

ENDMODULE.

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9000  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_9000 INPUT.

  "将sy-ucomm.的值赋给变量save_ok
  save_ok = sy-ucomm.

  "清空 ok_code
  CLEAR ok_code.

  "判断用户操作
  CASE save_ok.

      "返回初始屏幕
    WHEN 'BACK'.

      "返回初始屏幕
      LEAVE TO SCREEN 0.

      "数据查询
    WHEN 'SEARCH'.

      "数据读取
      PERFORM frm_get_data.

    WHEN OTHERS.

  ENDCASE.

ENDMODULE.

文本元素:



屏幕:


 状态栏 :

五、实现效果图


 

 

### ABAP Dialog 编程概念与面试准备 #### 什么是对话 (Dialog) 程序? 对话程序是种交互式的应用程序,在 SAP 中用于处理用户输入并响应用户的操作。这类程序通常涉及屏幕设计、模块池编程以及事件驱动的逻辑控制。 #### 对话程序的关键组件 - **事务代码 SE38**:这是进入 ABAP Workbench 的入口点之,允许开发者创建新的报告或对话程序[^1]。 - **REPORT 程序对比**:虽然报表程序也是种类型的屏幕程序,但它主要侧重于展示数据而非收集用户输入;相比之下,对话程序则更注重用户体验的设计和互动性。 #### 用户界面元素 为了构建个完整的对话应用,需要定义多个 UI 组件: - **选项卡/标签页**:用来分隔不同类别的信息区域,比如学生管理系统的各个功能区(查询、新增、删除、修改)。 - **表格控件**:用于呈现列表形式的数据集,如学生的个人信息记录表单。 #### 数据流机制 描述了如何在内存之间传递数据: - 执行 `MODULE` A → 执行 `MODULE` B → 将数据从 ABAP 工作区传输至 Screen 工作区 → 显示界面 → 用户按下 Enter 键 → 把数据带回 ABAP 工作区 → 运行后续模块 C 和 D[^2] #### 功能键处理 对于状态栏上的按钮行为实现方式如下: - PBO(Process Before Output)阶段编写初始化逻辑; - PAI(Process After Input)阶段捕捉用户动作并通过特定的功能码识别具体按下的按键[^4]。 #### 实现返回与退出功能 当涉及到关闭窗口或者导航回前页面时,则需特别注意设置相应的事件处理器来监听这些特殊命令,并确保它们能正确触发预期的动作[^3]。 ```abap * Example of handling a button press event using function codes. PROCESS BEFORE OUTPUT. MODULE status_0100. PROCESS AFTER INPUT. FIELD user_command TYPE SY-UCOMM. CASE user_command. WHEN 'BACK'. LEAVE TO SCREEN 0. WHEN 'EXIT'. SET SCREEN 0. ENDCASE. ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小胖子写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值