Loop at screen会loop处理屏幕上的每一个组件,并对其做相应的处理。
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则相反。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/18280.html