ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 动态选择屏幕实现

动态选择屏幕实现

原创 Linux操作系统 作者:gaohangzzu 时间:2010-06-23 21:49:43 0 删除 编辑
步骤一:对选择屏幕上面的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/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 常用表
请登录后发表评论 登录
全部评论

注册时间:2010-05-20

  • 博文量
    43
  • 访问量
    91195