选择屏幕的展开与关闭

前段时间,群里有人问过屏幕的展开和关闭。
写了个例子。
大概效果如下:
执行程序,默认如下
选择屏幕的展开与关闭
点打开后,显示如下。当点关闭后,又返回上面的显示结果
选择屏幕的展开与关闭

代码比较简单,如下:
*&---------------------------------------------------------------------*
*& Report  YLM_0001
*& 选择屏幕的展开与关闭
*&---------------------------------------------------------------------*
*& http://blog.sina.com.cn/sapliumeng
*&---------------------------------------------------------------------*

REPORT  YLM_0001 .

INCLUDE  .
TABLES SSCRFIELDS .


"展开--关闭按钮
SELECTION-SCREEN : PUSHBUTTON  /2 ( 10 ) B_OPEN
                                            USER-COMMAND F_OPEN  MODIF  ID M_O ,     "open
                                    PUSHBUTTON  /2 ( 10 )  B_CLS
                                            USER-COMMAND F_CLS    MODIF  ID M_C .     "close

"选择屏幕
SELECTION-SCREEN  BEGIN  OF  BLOCK B01  WITH  FRAME  TITLE  TEXT - 001 .
PARAMETERS : P_ID  TYPE STRING  MODIF  ID M_C .
SELECTION-SCREEN  END  OF  BLOCK B01 .

PARAMETERS : P_FLG  TYPE  NO -DISPLAY .


INITIALIZATION .

    "添加两个图标
    CONCATENATE ICON_EXPAND :  '打开'  ''  INTO B_OPEN ,
                              '打开'  ''  INTO B_OPEN .

    CONCATENATE ICON_COLLAPSE :  '关闭'  ''  INTO B_CLS ,
                                '关闭'  ''  INTO B_CLS .


    "默认是 关闭状态,点打开才能看到选择屏幕
    P_FLG  'X' .

AT  SELECTION-SCREEN .
    CASE SSCRFIELDS -UCOMM .
        WHEN  'F_OPEN' .      "打开
            CLEAR P_FLG .
        WHEN  'F_CLS' .        "关闭
            P_FLG  'X' .
    ENDCASE .


AT  SELECTION-SCREEN  OUTPUT .
    LOOP  AT  SCREEN .
        "修改屏幕显示状态
        PERFORM CLOSE_BLOCK  USING :  P_FLG  'M_O'  'X' ,
                                                            P_FLG  'M_C' SPACE .
    ENDLOOP .


*&---------------------------------------------------------------------*
*&      Form  CLOSE_BLOCK
*&---------------------------------------------------------------------*
      text
*----------------------------------------------------------------------*
     -->VALUE            text
     -->(U_CLOSE_BLOCK)  text
     -->U_MODIFY_ID      text
     -->U_CONVERT        text
*----------------------------------------------------------------------*
FORM CLOSE_BLOCK  USING  VALUE (P_FLAG )  LIKE P_FLG
                                          P_MODIFY_ID  LIKE  SCREEN -GROUP1
                                          P_CONVERT . "显示内容标识

    IF P_CONVERT  IS  NOT  INITIAL .
        IF P_FLAG  IS  INITIAL .
            P_FLAG  'X' .
        ELSE .
            CLEAR P_FLAG .
        ENDIF .
    ENDIF .

    IF  SCREEN -GROUP1  P_MODIFY_ID  )
        AND  P_FLAG  IS  NOT  INITIAL  ) .
        SCREEN -ACTIVE  '0' .
        MODIFY  SCREEN .
    ENDIF .

ENDFORM .                     "close_block



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值