ABAP 选择屏幕创建按钮,并执行

本文介绍了如何在ABAP开发中创建一个包含声明按钮、定义文本和图标的自定义选择屏幕,以及在INITIALIZATION和ATSELECTION-SCREEN模块中处理用户交互和按钮响应的详细步骤。

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

  • 1.在选择屏幕上声明按钮
  • 2.在 INITIALIZATION 中定义按钮的文本和图标
  • 3.在AT SELECTION-SCREEN 模块中响应按钮

*&---------------------------------------------------------------------*
*& Report  ZTEST_CESHI
*&---------------------------------------------------------------------*
REPORT ztest_ceshi.

TABLES:vbak,vbap.

TYPE-POOLS: icon,slis.

TABLES:sscrfields.  "选择屏幕上的字段

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : p1 RADIOBUTTON GROUP rad1 DEFAULT 'X' USER-COMMAND uc,
             p2 RADIOBUTTON GROUP rad1.
SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
SELECT-OPTIONS : s1_auart FOR vbak-auart   MODIF ID ty1, "销售订单类型
                 s1_vbeln FOR vbak-vbeln   MODIF ID ty1, "销售订单
                 s1_kunnr FOR vbak-kunnr   MODIF ID ty1, "客户
                 s1_matnr FOR vbap-matnr   MODIF ID ty1. "物料
SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
SELECT-OPTIONS : s2_erdat FOR vbak-erdat   MODIF ID ty2, "订单创建日期
                 s2_vdatu FOR vbak-vdatu   MODIF ID ty2. "订单交货日期
SELECTION-SCREEN END OF BLOCK b3.

"自定义按钮
SELECTION-SCREEN: FUNCTION KEY 1,
                  FUNCTION KEY 2,
                  FUNCTION KEY 3.

AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    CASE screen-group1.
      WHEN 'TY1'.
        IF p1 = 'X'.
          screen-active = '0'.
        ELSE.
          screen-active = '1'.
        ENDIF.
      WHEN 'TY2'.
        IF p2 = 'X' .
          screen-active = '0'.
        ELSE.
          screen-active = '1'.
        ENDIF.
    ENDCASE.
    MODIFY SCREEN.
  ENDLOOP.

INITIALIZATION.
  "初始化屏幕
  PERFORM frm_init_sel_screen.

" 按钮执行
AT SELECTION-SCREEN.
  CASE sscrfields-ucomm.
    WHEN 'FC01'.

    WHEN 'FC02'.

    WHEN 'FC03'.

  ENDCASE.


FORM frm_init_sel_screen .
  DATA: lv_functxt TYPE smp_dyntxt.
  DATA: lt_exclude TYPE TABLE OF sy-ucomm.

  lv_functxt-icon_id   = icon_change.
  lv_functxt-icon_text = '手工维护'.
  sscrfields-functxt_01 = lv_functxt.

  lv_functxt-icon_id   = icon_xls.
  lv_functxt-icon_text = '数据导入'.
  sscrfields-functxt_02 = lv_functxt.

  lv_functxt-icon_id   = icon_xxl.
  lv_functxt-icon_text = '导入模板下载'.
  sscrfields-functxt_03 = lv_functxt.

  lt_exclude = VALUE #( ( 'ONLI' ) ).

  CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'
    EXPORTING
      p_status  = sy-pfkey
    TABLES
      p_exclude = lt_exclude.
ENDFORM.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值