二维码

MODIFY SCREEN:修改屏幕,实现隐藏、禁止输入字段

Twilight发表于 2014-04-28 14:25Twilight 最后回复于 2015-08-27 11:38 [复制链接] 10290 3

Loop at screen会loop处理屏幕上的每一个组件,并对其做相应的处理。
MODIFY SCREEN1.png
MODIFY SCREEN2.png
选择r1 的时候只显示B1;r2时候只显示B2
程序代码:
  1. SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME.
  2. PARAMETERS S_DATE TYPE DATUM   DEFAULT SY-DATUM MODIF ID OO.
  3. SELECTION-SCREEN: END OF BLOCK B1.

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

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

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

  11. AT SELECTION-SCREEN OUTPUT.
  12.   IF R1 = 'X'.
  13.     LOOP AT SCREEN.
  14.       IF SCREEN-GROUP1 = 'PP'.
  15.         SCREEN-ACTIVE = '0'.
  16.       ENDIF.
  17.       MODIFY SCREEN.
  18.     ENDLOOP.
  19.   ELSEIF R2 = 'X'.
  20.     LOOP AT SCREEN.
  21.       IF SCREEN-GROUP1 = 'OO'.
  22.         SCREEN-ACTIVE = '0'.
  23.       ENDIF.
  24.       MODIFY SCREEN.
  25.     ENDLOOP.
  26.   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则相反。  
回复

使用道具 举报

qshiou
LEON大神,USER-COMMAND SINGLECLICK  这个语法我也用过,但我用的不是 SINGLECLICK,只有USER-COMMAND 是关键字,请问下(SINGLECLICK)这个地方写什么有关系吗
回复 支持 反对

使用道具 举报

qshiou
LEON大神,USER-COMMAND SINGLECLICK  这个语法我也用过,但我用的不是 SINGLECLICK,只有USER-COMMAND 是关键字,请问下(SINGLECLICK)这个地方写什么有关系吗
回复 支持 反对

使用道具 举报

Twilight
qshiou 发表于 2015-7-21 20:44
LEON大神,USER-COMMAND SINGLECLICK  这个语法我也用过,但我用的不是 SINGLECLICK,只有USER-COMMAND 是 ...

SINGLECLICK 是随便命名的一个变量
回复 支持 反对

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表