选择屏幕动态显示与隐藏

本文介绍如何使用SAP ABAP编写选择屏幕,通过代码控制不同选项的显示与隐藏。示例中展示了两个选择屏幕块,并在用户选择不同按钮时动态修改屏幕元素的可见性状态。

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

选择屏幕动态显示与隐藏

1.选择屏幕代码

SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE TEXT-s01.
PARAMETERS: r1 RADIOBUTTON GROUP r1 DEFAULT 'X' USER-COMMAND cid, "
            r2 RADIOBUTTON GROUP r1, "
            r3 RADIOBUTTON GROUP r1, "
            r4 RADIOBUTTON GROUP r1. "
SELECTION-SCREEN END OF BLOCK bk1.

SELECTION-SCREEN BEGIN OF BLOCK bk2 WITH FRAME TITLE TEXT-s02.
SELECT-OPTIONS: s_bukrs FOR xxx-bukrs MODIF ID md3, "公司代码
                s_zzffs FOR xxx-zzffs MODIF ID md1, "支付方式
                s_zpdlx FOR xxx-zpdlx MODIF ID md2, "派单类型
                s_pernr FOR xxx-pernr MATCHCODE OBJECT zyksh_append_sp MODIF ID md3, "服务请求人
                s_thry  FOR xxx-pernr MATCHCODE OBJECT zyksh_append_sp MODIF ID md4 NO INTERVALS NO-EXTENSION.

SELECTION-SCREEN END OF BLOCK bk2.

2.动态显示

AT SELECTION-SCREEN OUTPUT.
  "选择屏幕动态显示
  PERFORM frm_set_screen.
FORM frm_set_screen .
  LOOP AT SCREEN.
    CASE abap_true.
      WHEN r1.
        IF screen-group1 = 'MD1'.
          screen-active = '1'.
        ELSEIF screen-group1 = 'MD2'.
          screen-active = '0'.
        ELSEIF screen-group1 = 'MD4'.
          screen-active = '0'.
        ENDIF.
      WHEN r2.
        IF screen-group1 = 'MD1'.
          screen-active = '0'.
        ELSEIF screen-group1 = 'MD2'.
          screen-active = '1'.
        ELSEIF screen-group1 = 'MD4'.
          screen-active = '0'.
        ENDIF.
      WHEN r3.
        IF screen-group1 = 'MD1' OR
           screen-group1 = 'MD2' OR
           screen-group1 = 'MD3'.
          screen-active = '0'.
        ELSEIF screen-group1 = 'MD4'.
          screen-active = '0'.
        ENDIF.
      WHEN r4.
        IF screen-group1 = 'MD1' OR
           screen-group1 = 'MD3' OR
           screen-group1 = 'MD4'.
          screen-active = '1'.
        ELSEIF screen-group1 = 'MD2'.
          screen-active = '0'.
        ENDIF.
      WHEN OTHERS.
    ENDCASE.

    MODIFY SCREEN.
  ENDLOOP.
ENDFORM.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值