zoukankan      html  css  js  c++  java
  • [原]选择屏幕的一个例子

      
    REPORT  Z_ABAP05413_LOCALSCREEN.

    *&---------------------------------------------------------------------*
    *&  型定義
    *&---------------------------------------------------------------------*
    TABLES:SSCRFIELDS.                      "BLOCK TABLE
    TYPE-POOLS ICON.                        "ICON TYPE POOL

    *&---------------------------------------------------------------------*
    *&  変数定義
    *&---------------------------------------------------------------------*
    DATA:
      STRICON       TYPE STRING VALUE 'ICON_ENTER_MORE'.

    *&---------------------------------------------------------------------*
    *&  選択画面定義
    *&---------------------------------------------------------------------*

    "SUBSCREEN 100
    SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.

    "RADIOBUTTON BLOCK1
      SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.

    "RADIOBUTTON 定義
        PARAMETERS:
          P_RAD1 RADIOBUTTON GROUP GRP1 USER-COMMAND RADGROUP1,    "P_RAD1
          P_RAD2 RADIOBUTTON GROUP GRP1,    "P_RAD2
          P_RAD3 RADIOBUTTON GROUP GRP1.    "P_RAD3

      SELECTION-SCREEN END OF BLOCK BLK1.

    "RADIOBUTTON BLOCK2
      SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-002.

    "RADIOBUTTON 定義
        PARAMETERS:
          P_RAD4 RADIOBUTTON GROUP GRP2 USER-COMMAND RADGROUP2,    "P_RAD4
          P_RAD5 RADIOBUTTON GROUP GRP2,    "P_RAD5
          P_RAD6 RADIOBUTTON GROUP GRP2.    "P_RAD6

      SELECTION-SCREEN END OF BLOCK BLK2.

    SELECTION-SCREEN END OF SCREEN 100.

    "SUBSCREEN 200
    SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.

    "CHECKBOX 定義
        PARAMETERS:
          P_CHK1 AS CHECKBOX,               "P_CHK1
          P_CHK2 AS CHECKBOX,               "P_CHK2
          P_CHK3 AS CHECKBOX.               "P_CHK3

    SELECTION-SCREEN END OF SCREEN 200.

    "SUBSCREEN 300
    SELECTION-SCREEN:
      BEGIN OF SCREEN 300 AS SUBSCREEN,

    "PUSHBUTTON定義
        PUSHBUTTON 2(25)  BUT1 USER-COMMAND CLIT,

    "ULINE定義
        ULINE,
      END OF SCREEN 300.

    "SUBSCREEN 400
    SELECTION-SCREEN BEGIN OF SCREEN 400 AS SUBSCREEN.

    "LINE 定義
      SELECTION-SCREEN BEGIN OF LINE .

    "COMMENT定義
        SELECTION-SCREEN COMMENT 1(8) COMM1 FOR FIELD P_FROM.

    "PARAMETERS 定義
        PARAMETERS P_FROM(5)  TYPE C.

    "COMMENT定義
        SELECTION-SCREEN COMMENT 20(5) COMM2 FOR FIELD P_TO.

    "PARAMETERS 定義
        PARAMETERS P_TO(5)    TYPE C.

      SELECTION-SCREEN END OF LINE.

    "LINE 定義
      SELECTION-SCREEN BEGIN OF LINE.

    "COMMENT定義
        SELECTION-SCREEN COMMENT 1(35) COMM3 FOR FIELD P_INPUT.

    "PARAMETERS 定義
        PARAMETERS P_INPUT(10)       TYPE C.

    "COMMENT定義
        SELECTION-SCREEN COMMENT 50(10) COMM4.

      SELECTION-SCREEN END OF LINE.

    SELECTION-SCREEN END OF SCREEN 400.

    "4つSUBSCREEN一つBLCOK TABLE
    SELECTION-SCREEN:
      BEGIN OF TABBED BLOCK TAB1 FOR 10 LINES,

    "BLOCK TABLE定義
        TAB (20) BTN1 USER-COMMAND COM1 DEFAULT SCREEN 100"BTN1
        TAB (20) BTN2 USER-COMMAND COM2 DEFAULT SCREEN 200"BTN2
        TAB (20) BTN3 USER-COMMAND COM3 DEFAULT SCREEN 300"BTN3
        TAB (20) BTN4 USER-COMMAND COM4 DEFAULT SCREEN 400"BTN4

      END OF BLOCK TAB1.

    "WINDOWSCREEN定義
    SELECTION-SCREEN BEGIN OF SCREEN 500 AS WINDOW  TITLE TEXT-003.

    "PARAMETERS 定義
      PARAMETERS P_IN  TYPE C LENGTH 10.    "P_IN

    SELECTION-SCREEN END OF SCREEN 500.

    *&---------------------------------------------------------------------*
    *& INITIALIZATION.
    *&---------------------------------------------------------------------*
    INITIALIZATION.
      BTN1    = 'ラジオボタン'.
      BTN2    = 'チェックボックス'.
      BTN3    = 'プッシュボタン'.
      BTN4    = 'PARAMETERS'.
      BUT1    = '画面を開く'.
      COMM1   = 'FROM'.
      COMM2   = 'TO'.
      COMM3   ='入力'.

    "タイル定義
    CONCATENATE '日付:' SY-DATUM+0(4'/' SY-DATUM+4(2'/' SY-DATUM+6(2INTO SY-TITLE.

    "ICON 更新
    PERFORM ICONCREATE USING STRICON.

    *&---------------------------------------------------------------------*
    *&  前処理
    *&---------------------------------------------------------------------*
    AT SELECTION-SCREEN.

    "COMMENT 値をあげる
      COMM4 = P_INPUT.

    "SSCRFIELDS
    CASE SSCRFIELDS.

    "RADIOBUTTON事件
      WHEN 'RADGROUP1' OR 'RADGROUP2'.

    "RADIOBUTTONチェック

        PERFORM RADBUTTONCHECK USING SY-UCOMM.

    "PUSHBUTTON事件
      WHEN 'CLIT'.
        CLEAR SSCRFIELDS.
        CALL SELECTION-SCREEN 500 STARTING AT 10 30.

    "ENTER事件
      WHEN 'CRET'.
        IF P_IN IS NOT INITIAL.

          IF STRICON = 'ICON_DISPLAY_MORE'.
            STRICON = 'ICON_ENTER_MORE'.
          ELSE.
            STRICON = 'ICON_DISPLAY_MORE'.
          ENDIF.

    ""ICON 更新 調用
          PERFORM ICONCREATE USING STRICON.
        ENDIF.

    ENDCASE.

    *&---------------------------------------------------------------------*
    *&  終了処理
    *&---------------------------------------------------------------------*

    *&---------------------------------------------------------------------*
    *&      Form  RADBUTTONCHECK
    *&---------------------------------------------------------------------*
    *       RADIOBUTTON選択して処理
    *----------------------------------------------------------------------*

    FORM RADBUTTONCHECK USING LI_UCOMM TYPE SY-UCOMM.

    "RADIOBUTTON1選択事件
      IF LI_UCOMM = 'RADGROUP1'.
        IF P_RAD1 = 'X'.
          CLEAR: P_RAD2,P_RAD3,P_RAD5,P_RAD6.
          P_RAD4 = P_RAD1.
        ENDIF.

        IF P_RAD2 = 'X'.
          CLEAR: P_RAD1,P_RAD3,P_RAD4,P_RAD6.
          P_RAD5 = P_RAD2.
        ENDIF.

        IF P_RAD3 = 'X'.
          CLEAR: P_RAD1,P_RAD2,P_RAD4,P_RAD5.
          P_RAD6 = P_RAD3.
        ENDIF.
      ELSE.
         IF P_RAD4 = 'X'.
          CLEAR: P_RAD2,P_RAD3,P_RAD5,P_RAD6.
          P_RAD1 = P_RAD4.
        ENDIF.

        IF P_RAD5 = 'X'.
          CLEAR: P_RAD1,P_RAD3,P_RAD4,P_RAD6.
          P_RAD2 = P_RAD5.
        ENDIF.

        IF P_RAD6 = 'X'.
          CLEAR: P_RAD1,P_RAD2,P_RAD4,P_RAD5.
          P_RAD3 = P_RAD6.
        ENDIF.
      ENDIF.

    ENDFORM.                    " RADBUTTONCHECK

    *&---------------------------------------------------------------------*
    *&      Form  ICONCREATE
    *&---------------------------------------------------------------------*
    *       ICON変更
    *----------------------------------------------------------------------*
    *  -->  LI_ICON        ICON名前
    *----------------------------------------------------------------------*
    FORM ICONCREATE
      USING LI_ICON TYPE STRING.                  "ICON名前

      CALL FUNCTION 'ICON_CREATE'
        EXPORTING
          NAME                      = LI_ICON     "ICON名前
          TEXT                      = '画面を開く'  "タイル
        IMPORTING
          RESULT = BUT1                           "対象ボタン
        EXCEPTIONS
          ICON_NOT_FOUND            = 1
          OUTPUTFIELD_TOO_SHORT     = 2
        OTHERS                      = 3.

      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.

    ENDFORM.                    " ICONCREATE
    运行后实现的效果

    开始界面

      

    如果选择了第二个按钮。操作如下:

    第二个子屏幕:

    第三个子屏幕:

    点击pushbutton之后:

    输入值后按f8

    第四个屏幕:

    输入值后回车

     

      

     

  • 相关阅读:
    HBase with MapReduce (MultiTable Read)
    HBase with MapReduce (SummaryToFile)
    HBase with MapReduce (Summary)
    HBase with MapReduce (Read and Write)
    HBase with MapReduce (Only Read)
    Hbase中的BloomFilter(布隆过滤器)
    HBase的快照技术
    How To Use Hbase Bulk Loading
    Cloudera-Manager修改集群的IP
    Java中的HashSet和TreeSet
  • 原文地址:https://www.cnblogs.com/wequst/p/1513988.html
Copyright © 2011-2022 走看看