zoukankan      html  css  js  c++  java
  • Screen返回选择界面的问题

    自己写的Report,用到了自己定义的Screen,如何在任何一个Screen直接返回选择界面(1000)? 可以用:      SET SCREEN 0.
                  LEAVE SCREEN.
    或者  :      LEAVE TO SCREEN 0 . 但是,有时候不是返回选择界面,而是返回了调用这个Screen的地方。这是因为:LEAVE TO SCREEN scr. :Leaves the current screen and processes the screen scr.

    If scr = 0, processing in CALL mode continues after the CALL SCREEN statement. Otherwise, you branch to the transaction selection screen.

    所以,如果100调用200,不要用CALL,用Leave to screen 200 .就可以在200直接返回1000了。  下面是一个例子:REPORT z_scm_ftp_manager NO STANDARD PAGE HEADING .DATA: ok_code LIKE sy-ucomm .SELECT-OPTIONS:
          s_date FOR sy-datum DEFAULT sy-datum .START-OF-SELECTION.
      CALL SCREEN 100.*&———————————————————————*
    *&      Module  USER_COMMAND_0100  INPUT
    *&———————————————————————*
    MODULE user_command_0100 INPUT.
      CASE ok_code.
        WHEN ‘BACK’.
    *      SET SCREEN 0.
    *      LEAVE SCREEN.
          LEAVE TO SCREEN 0 .
        WHEN ‘CALLSCR’.
          CALL SCREEN 200.
        WHEN ‘LEAVESCR’.
          LEAVE TO SCREEN 200.
      ENDCASE.
      CLEAR ok_code .
    ENDMODULE.                 ” USER_COMMAND_0100  INPUT*&———————————————————————*
    *&      Module  STATUS_0100  OUTPUT
    *&———————————————————————*
    MODULE status_0100 OUTPUT.
      SET PF-STATUS ‘MAIN100′.
    ENDMODULE.                 ” STATUS_0100  OUTPUT
    *&———————————————————————*
    *&      Module  USER_COMMAND_0200  INPUT
    *&———————————————————————*
    MODULE user_command_0200 INPUT.
      CASE ok_code.
        WHEN ‘BACKBTN’.
          SET SCREEN 0.
          LEAVE SCREEN.
      ENDCASE.
      CLEAR ok_code .
    ENDMODULE.                 ” USER_COMMAND_0200  INPUT
    *&———————————————————————*
    *&      Module  STATUS_0200  OUTPUT
    *&———————————————————————*
    MODULE status_0200 OUTPUT.
      SET PF-STATUS space.
    ENDMODULE.                 ” STATUS_0200  OUTPUT补充一下,Call screen是转到另一个screen Layer(屏幕层次),所以scr=0会回到这个屏幕层次的开头处,而Leave to screen是跳跃,跳过某个屏幕执行另一个屏幕的意思,这个屏幕序列仍然是在一个层上的,所以scr=0会回到这个层的最开始,也就是选择屏幕1000。
    BC410里是这个意思。


    转自:http://scnblogs.techweb.com.cn/laobai/archives/236.html

  • 相关阅读:
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1159 Common Subsequence
    HDU 1003 Maxsum
    HDU 2604 Queuing
    HDU 2045 不容易系列之(3)—— LELE的RPG难题
    HDU 2501 Tiling_easy version
    HDU 2050 折线分割平面
    HDU 2018 母牛的故事
    HDU 2046 骨牌铺方格
    HDU 2044 一只小蜜蜂...
  • 原文地址:https://www.cnblogs.com/cnlmjer/p/4099838.html
Copyright © 2011-2022 走看看