此博客为原创博客,都是个人工作经历所得,转载请注明出处

ABAP MODIFY SCREEN

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.

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

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结构中的字段,只是没有备注。

名称                  长度       说明

NAME               30          屏幕字段的名称

GROUP1            3            属于字段组1的字段

GROUP2            3            属于字段组2的字段

GROUP3            3            属于字段组3的字段

GROUP4            3            属于字段组4的字段

ACTIVE             1            可见并准备输入的字段

REQUIRED          1            字段输入是强制的,即该值为X是表示该字段必须输入

INPUT               1            字段准备输入

OUTPUT            1            字段仅用于显示

INTENSIFIED      1           高亮显示字段

INVISIBLE          1           禁用字段

LENGTH             1           减少字段输出长度

DISPLAY_3D       1           以三维框架显示字段

VALUE_HELP       1           显示有值帮助的字段  

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

 

posted @ 2021-07-09 18:34  Rainystuday  阅读(221)  评论(0编辑  收藏  举报