步骤一:对选择屏幕上面的radio-button或者checkbox赋予user-command,从而让屏幕能够扑捉到屏幕上这些控件的变化。
示例代码如下:
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME. TITLE text-007.
PARAMETERS: r1 RADIOBUTTON GROUP rdg USER-COMMAND uc DEFAULT 'X',
r2 RADIOBUTTON GROUP rdg ,
r3 RADIOBUTTON GROUP rdg .
SELECTION-SCREEN END OF BLOCK b2.
**用户ID统计程序
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME. TITLE text-001.
PARAMETERS: p_ztjbs TYPE zzzzzt0170-ztjbs MODIF ID bs . PARAMETERS: p_zdesc TYPE zzzzzt0170-zdesc MODIF ID ms.
SELECT-OPTIONS: s_bukrs FOR zzzzzt0170-zepbukrs NO-DISPLAY.
步骤二:在at selection-screen output事件里面对屏幕控件的属性进行控制
示例:
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
if r1 = 'X'.
** 如果选择新建统计标示,则显示描述
if SCREEN-GROUP1 = 'BS'.
SCREEN-INPUT = '0'.
SCREEN-REQUIRED = '0'.
MODIFY SCREEN.CLEAR SCREEN.
endif.
if SCREEN-GROUP1 = 'MS'.
* SCREEN-REQUIRED = '1'.
SCREEN-INPUT = '1'.
endif.
ENDIF.
IF R1 <> 'X' .
if SCREEN-GROUP1 = 'BS'.
SCREEN-INPUT = '1'.
* SCREEN-REQUIRED = '1'.
MODIFY SCREEN.CLEAR SCREEN.
endif.
if SCREEN-GROUP1 = 'MS'.
SCREEN-REQUIRED = '0'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.CLEAR SCREEN.
endif.
ENDIF.
ENDLOOP.
注意:采用动态屏幕时,如果选择屏幕上面有必输的字段,则屏幕跳转前字段内容为空,则屏幕修改会失败且会报错。因为屏幕在扑捉到屏幕的user command后先触发pai,后触发pbo
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10350860/viewspace-666015/
,如需转载,请注明出处,否则将追究法律责任。