matinal:SAP ABAP SCREEN参数大全:修改屏幕等参数控制讲解

Loop at screen会loop处理屏幕上的每一个组件,并对其做相应的处理。

选择r1 的时候只显示B1;r2时候只显示B2

程序代码:

    SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME.
    PARAMETERS S_DATE TYPE DATUM   DEFAULT SY-DATUM MODIF ID OO.
    SELECTION-SCREEN: END OF BLOCK B1.

    SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME.
    SELECT-OPTIONS: S_DATE2 FOR SY-DATUM  MODIF ID PP.
    SELECTION-SCREEN: END OF BLOCK B2.

    SELECTION-SCREEN: BEGIN OF BLOCK B3 WITH FRAME.
    PARAMETERS : R1 RADIOBUTTON GROUP D1 DEFAULT 'X' USER-COMMAND SINGLECLICK,

                 R2 RADIOBUTTON GROUP D1 .
    SELECTION-SCREEN: END OF BLOCK B3.

    AT SELECTION-SCREEN OUTPUT.
      IF R1 = 'X'.
        LOOP AT SCREEN.
          IF SCREEN-GROUP1 = 'PP'.
            SCREEN-ACTIVE = '0'.
          ENDIF.
          MODIFY SCREEN.
        ENDLOOP.
      ELSEIF R2 = 'X'.
        LOOP AT SCREEN.
          IF SCREEN-GROUP1 = 'OO'.
            SCREEN-ACTIVE = '0'.
          ENDIF.
          MODIFY SCREEN.
        ENDLOOP.
      ENDIF.

 Modiy屏幕的时候,如果屏幕有必输字段则不能修改,只有把必输项输入值后才能修改屏幕,需要有所取舍;

注意:PARAMETERS : R1 RADIOBUTTON GROUP D1 DEFAULT 'X' USER-COMMAND SINGLECLICK,  红色这一段话必须有,否则不能动态修改屏幕;选择一次单选框就会触发一次atselection-screen output,实现动态修改屏幕.

SCREEN结构解释:在SAP屏幕中,一个字段就像.NET中的一个控件,这个 字段对应一个SCREEN结构,就像控件的多个属性。

SE11可以查看SCREEN结构中的字段,只是没有备注。

上述长度为1的字段,=1表示有效,=0则相反。  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP的Selection事件是在SAP系统中的ABAP程序中使用的一种事件类型。它用于处理用户在屏幕上进行的选择操作。 当用户在屏幕上选择某个选项时,Selection事件会被触发,并且可以执行相应的逻辑处理。通常,Selection事件与交互式报表和屏幕输入/输出(例如选择屏幕)一起使用。 在ABAP程序中,可以通过在代码中定义SELECTION-SCREEN BEGIN OF BLOCK和SELECTION-SCREEN END OF BLOCK语句来定义一个选择块。选择块包含用户可选择的选项,并且可以通过SELECTION-SCREEN COMMENT语句添加注释。 下面是一个简单的ABAP程序示例,演示了如何使用Selection事件: ``` REPORT Z_MY_REPORT. SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. PARAMETERS: p_option1 RADIOBUTTON GROUP g1 DEFAULT 'X', p_option2 RADIOBUTTON GROUP g1. SELECTION-SCREEN END OF BLOCK b1. AT SELECTION-SCREEN OUTPUT. LOOP AT SCREEN. IF screen-group1 = 'G1'. screen-active = '1'. MODIFY SCREEN. ENDIF. ENDLOOP. AT SELECTION-SCREEN. IF sy-ucomm = 'ONLI'. IF p_option1 = 'X'. " 处理选项1的逻辑 ELSEIF p_option2 = 'X'. " 处理选项2的逻辑 ENDIF. ENDIF. START-OF-SELECTION. " 在此处理其他逻辑 ``` 在上述示例中,选择块b1包含两个单选按钮选项,用户可以选择其中之一。在AT SELECTION-SCREEN OUTPUT事件中,将所有属于组g1的屏幕元素设置为激活状态。在AT SELECTION-SCREEN事件中,根据用户选择的选项执行相应的逻辑处理。 请注意,上述示例只是一个简单的示例,实际使用时可能需要更复杂的逻辑和处理。ABAP的Selection事件提供了一种灵活且强大的方式来处理用户的选择操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值