SAP 管理信息系统


*************************************************************************
* プログラムID: Z_GRADUATION_PROJECT_SY
* 機能名      : GRADUATION_PROJECT
* 機能概要    : 电影票售卖管理系统
* 作成者      : 孫烨
* 作成日付    : 2021/09/17
* 移送番号    : HP1K906022
************************************************************************
REPORT Z_GRADUATION_PROJECT_SY.
DATA TAB_TAB2.
*&---------------------------------------------------------------------*
*& 定义
*&---------------------------------------------------------------------*
INCLUDE:
  ZPROJECTD01,                                       "TYPE定义
  ZPROJECTS01,                                       "选择屏幕
  ZPROJECTS02,                                       "9000屏幕
  ZPROJECTF01.                                       "代码处理


AT SELECTION-SCREEN OUTPUT.

*&---------------------------------------------------------------------*
*&  START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.

* 主処理
  PERFORM F_MAIN_SYORI.

*&---------------------------------------------------------------------*
*& Include          ZPROJECTD01
*&---------------------------------------------------------------------*
TYPES:
  BEGIN OF TYP_9100,
    TAB1 TYPE CHAR1,
    TAB2 TYPE CHAR1,
  END OF TYP_9100.


DATA :GW_9001 TYPE ZTB001_SY,
      GW_9100 TYPE TYP_9100.

CONSTANTSBEGIN OF C_TAB,
             TAB1 LIKE SY-UCOMM VALUE 'TAB_FC1',
             TAB2 LIKE SY-UCOMM VALUE 'TAB_FC2',
             TAB3 LIKE SY-UCOMM VALUE 'TAB3FC3',
             TAB4 LIKE SY-UCOMM VALUE 'TAB3FC4',
             TAB5 LIKE SY-UCOMM VALUE 'TAB3FC5',
             TAB6 LIKE SY-UCOMM VALUE 'TAB3FC6',
           END OF C_TAB.
*&SPWIZARD: DATA FOR TABSTRIP 'TAB3'
CONTROLS:  TAB TYPE TABSTRIP.
DATABEGIN OF G_TAB,
        SUBSCREEN   LIKE SY-DYNNR,
        PROG        LIKE SY-REPID "VALUE 'ZMME001',
        PRESSED_TAB LIKE SY-UCOMM VALUE C_TAB-TAB1,
      END OF G_TAB.

DATA:
  GV_USER  TYPE CHAR1,
  GV_MANG  TYPE CHAR1.

TYPES:
 BEGIN OF TYP_CINEMA,
   NAME    TYPE ZTB002_CINEMA-NAME,
   ADDRESS TYPE ZTB002_CINEMA-ADDRESS,
 END OF TYP_CINEMA,                                "影院信息
 TYP_T_CINEMA TYPE STANDARD TABLE OF TYP_CINEMA.   "影院信息

SELECTION-SCREEN BEGIN OF SCREEN 9101 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK BK1 WITH FRAME TITLE TEXT-001.
PARAMETERS:
  P_1 RADIOBUTTON GROUP G1 USER-COMMAND MM MODIF ID MB DEFAULT 'X',
  P_2 RADIOBUTTON GROUP G1 MODIF ID MB,
  P_3 RADIOBUTTON GROUP G1 MODIF ID MB.
SELECTION-SCREEN END OF BLOCK BK1.
SELECTION-SCREEN END OF SCREEN 9101.

*&---------------------------------------------------------------------*
*& Include          ZPROJECTS02
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE STATUS_9000 OUTPUT.
  SET PF-STATUS 'ZSTATUS_9000'.
* SET TITLEBAR 'xxx'.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9000  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9000 INPUT.

  DATA OK_CODE TYPE SYST_UCOMM.

  OK_CODE = SY-UCOMM.

  CALL SCREEN 9000.

  CASE OK_CODE.
    WHEN 'SIGN'.
      CALL SCREEN 9001 STARTING AT 20 5.
    WHEN 'REG'.
      CALL SCREEN 9002 STARTING AT 20 5.
    WHEN 'BACK'.
      LEAVE PROGRAM.
    WHEN 'EESC'.
      LEAVE PROGRAM.
      CLEAR: OK_CODE.
  ENDCASE.

ENDMODULE.
*&---------------------------------------------------------------------*
*& Module STATUS_9001 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE STATUS_9001 OUTPUT.
  SET PF-STATUS 'ZSTATUS_9001'.
* SET TITLEBAR 'xxx'.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9001  INPUT
*&---------------------------------------------------------------------*
*&       登录界面
*&---------------------------------------------------------------------*
MODULE USER_COMMAND_9001 INPUT.

  CLEAR OK_CODE.
  OK_CODE = SY-UCOMM.

  CASE OK_CODE.
    WHEN 'CONFIRM'.

*      CASE OK_CODE.
*        WHEN 'USER'.
      IF GV_USER IS NOT INITIAL.


        SELECT SINGLE *
          FROM ZTB001_SY
          INTO @DATA(LW_SY001)
         WHERE ACCOUNT = @GW_9001-ACCOUNT.

        IF SY-SUBRC 0.

          IF LW_SY001-PASSWORD = GW_9001-PASSWORD.
            MESSAGE '登录成功' TYPE 'S'.
            CALL SCREEN 9100.
          ELSE.
            MESSAGE '密码错误请重新输入' TYPE 'S'  DISPLAY LIKE 'E'.
          ENDIF.

        ELSE.
          MESSAGE '账号不存在,请先注册' TYPE 'S'  DISPLAY LIKE 'E'.
        ENDIF.

*        WHEN 'MANG'.
      ELSEIF GV_MANG IS NOT INITIAL.

        SELECT SINGLE *
          FROM ZTB001_MANG
          INTO @DATA(LW_MANG001)
         WHERE ACCOUNT = @GW_9001-ACCOUNT.

        IF SY-SUBRC 0.

          IF LW_MANG001-PASSWORD = GW_9001-PASSWORD.
            MESSAGE '登录成功' TYPE 'S'.
            CALL SCREEN 9100.
          ELSE.
            MESSAGE '密码错误请重新输入' TYPE 'S'  DISPLAY LIKE 'E'.
          ENDIF.

        ELSE.
          MESSAGE '账号不存在,请先注册' TYPE 'S'  DISPLAY LIKE 'E'.
        ENDIF.

*        WHEN OTHERS.
*      ENDCASE.
      ENDIF.

    WHEN 'CANCEL'.
      LEAVE TO SCREEN 0.
  ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module STATUS_9002 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE STATUS_9002 OUTPUT.
  SET PF-STATUS 'ZSTATUS_9001'.
* SET TITLEBAR 'xxx'.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9002  INPUT
*&---------------------------------------------------------------------*
*&       注册界面
*&---------------------------------------------------------------------*
MODULE USER_COMMAND_9002 INPUT.

  DATA LW_001 TYPE ZTB001_SY.

  OK_CODE = SY-UCOMM.

  CASE OK_CODE.
    WHEN 'CONFIRM'.

      SELECT SINGLE *
        FROM ZTB001_SY
        INTO @LW_SY001
      WHERE ACCOUNT = @GW_9001-ACCOUNT.
      IF SY-SUBRC 0.


        MESSAGE '账号已存在,请重新输入' TYPE 'S'  DISPLAY LIKE 'E'.


      ELSE.

        IF GW_9001-PASSWORD IS INITIAL.

          MESSAGE '密码不能为空' TYPE 'S'  DISPLAY LIKE 'E'.

        ELSE.
          LW_001-ACCOUNT = GW_9001-ACCOUNT.
          LW_001-PASSWORD = GW_9001-PASSWORD.

          INSERT ZTB001_SY FROM LW_001 .
          IF SY-SUBRC 0.
            MESSAGE '注册成功!' TYPE 'S'.
          ENDIF.

        ENDIF.
      ENDIF.
    WHEN 'CANCEL'.
      LEAVE TO SCREEN 0.
  ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module STATUS_9100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE STATUS_9100 OUTPUT.
  SET PF-STATUS 'ZSTATUS_9000'.
* SET TITLEBAR 'xxx'.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9100 INPUT.

  OK_CODE = SY-UCOMM.

  CASE OK_CODE.
    WHEN 'SIGN'.
      CALL SCREEN 9001 STARTING AT 20 5.
    WHEN 'REG'.
      CALL SCREEN 9002 STARTING AT 20 5.
    WHEN 'BACK'.
      LEAVE PROGRAM.
    WHEN 'EESC'.
      LEAVE PROGRAM.
      CLEAR: OK_CODE.
  ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module TAB_ACTIVE_TAB_SET OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE TAB_ACTIVE_TAB_SET OUTPUT.
  TAB-ACTIVETAB = G_TAB-PRESSED_TAB.
  CASE G_TAB-PRESSED_TAB.
    WHEN C_TAB-TAB1.
      G_TAB-SUBSCREEN '9101'.
    WHEN C_TAB-TAB2.
      G_TAB-SUBSCREEN '9102'.
    WHEN C_TAB-TAB3.
      G_TAB-SUBSCREEN '9003'.
    WHEN C_TAB-TAB4.
      G_TAB-SUBSCREEN '9004'.
    WHEN C_TAB-TAB5.
      G_TAB-SUBSCREEN '9005'.
    WHEN C_TAB-TAB6.
      G_TAB-SUBSCREEN '9006'.
    WHEN OTHERS.
*&SPWIZARD:      DO NOTHING
  ENDCASE.
ENDMODULE.

*&---------------------------------------------------------------------*
*& Include          ZPROJECTF01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&  変数定義
*&---------------------------------------------------------------------*
DATA:
  ok_code  TYPE sy-ucomm,
  v_cont   TYPE REF TO cl_gui_custom_container,      "カスタムコントロー
  v_grid   TYPE REF TO cl_gui_alv_grid,              "ALVクラス

  t_out    TYPE STANDARD TABLE OF zmara_alvs07_01,   "品目マスタ
  w_out    TYPE zmara_alvs07_01,                     "品目マスタ
  t_exc    TYPE ui_functions,                        "標準機能
  w_exc    TYPE ui_func,                             "標準機能
  t_sort   TYPE lvc_t_sort,                          "排序
  w_sort   TYPE lvc_s_sort,                          "排序
  t_filter TYPE lvc_t_filt,                         "フィルタ基準
  w_filter TYPE lvc_s_filt,                         "フィルタ基準
  s_lay    TYPE lvc_s_layo,                          "レイアウト
  w_var    TYPE disvariant,                          "レイアウト
  t_field  TYPE lvc_t_fcat.                          "項目カタログ
*&---------------------------------------------------------------------*
*&  INITIALIZATION
*&---------------------------------------------------------------------*
INITIALIZATION.

* 初始化処理
  PERFORM f_clear_data.
*&---------------------------------------------------------------------*
*& Form F_MAIN_SYORI
*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM F_MAIN_SYORI .
  CALL SCREEN 9000.
ENDFORM.

*&---------------------------------------------------------------------*
*& Include          ZPROJECTF01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&  変数定義
*&---------------------------------------------------------------------*
DATA:
  ok_code  TYPE sy-ucomm,
  v_cont   TYPE REF TO cl_gui_custom_container,      "カスタムコントロー
  v_grid   TYPE REF TO cl_gui_alv_grid,              "ALVクラス

  t_out    TYPE STANDARD TABLE OF zmara_alvs07_01,   "品目マスタ
  w_out    TYPE zmara_alvs07_01,                     "品目マスタ
  t_exc    TYPE ui_functions,                        "標準機能
  w_exc    TYPE ui_func,                             "標準機能
  t_sort   TYPE lvc_t_sort,                          "排序
  w_sort   TYPE lvc_s_sort,                          "排序
  t_filter TYPE lvc_t_filt,                         "フィルタ基準
  w_filter TYPE lvc_s_filt,                         "フィルタ基準
  s_lay    TYPE lvc_s_layo,                          "レイアウト
  w_var    TYPE disvariant,                          "レイアウト
  t_field  TYPE lvc_t_fcat.                          "項目カタログ
*&---------------------------------------------------------------------*
*&  INITIALIZATION
*&---------------------------------------------------------------------*
INITIALIZATION.

* 初始化処理
  PERFORM f_clear_data.
*&---------------------------------------------------------------------*
*& Form F_MAIN_SYORI
*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM F_MAIN_SYORI .
  CALL SCREEN 9000.
ENDFORM.

相关