27
ABAP 程程程程程程程 程程程程程程 指指指指: 指指指 指指 指 指指指指 指指指 B 498710782 指指指 指指指 B 498710203 指 指 指指指 B 498711144 2013/1/7

ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

ABAP 程式設計期末報告

國片查詢系統

指導老師: 楊子青 老師學  生:    黃掀芸 資管四 B 498710782    林依惠 資管四 B 498710203   張 開 資管四 B 498711144

2013/1/7

Page 2: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

目錄一、 前言 ---------- P.3

二、 系統功能 -------- P.3

三、 系統特色 -------- P.4

四、 使用對象 -------- P.4

五、 使用環境 -------- P.4

六、 開發工具 -------- P.5

七、 系統畫面 -------- P.5

八、 結論及未來發展 ----- P.12

九、 附錄 ---------- P.13 國片資料庫系統 --------- P.13 國片查詢系統 ---------- P.17 ABAP Dictionary --------- P.26

十、 工作分配 -------- P.27

2

Page 3: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

一、 前言  目前國片(台灣電影)逐漸興盛起來,我們想要藉此系統瞭解國片市場的現況及未來方向與挑戰。  從海角七號之後,國片市場蓬勃發展,加入這個市場的電影工作者、作品不斷地增加,但我們卻對國片市場如此陌生。藉著電影查詢系統可以瞭解到目前有哪些電影工作者以及他們的作品,並針對導演的作品擁有多少票房做統計,以便讓關心國片市場的人們知道,未來改善的目標與方向。

二、 系統功能(一)國片查詢系統:  給一般的使用者查詢國片及票房資料,透過票房統計可以知曉某一位導演所拍攝的電影共擁有多少票房,此系統也提供讓使用者輸入電影類型或演員可以找到相關的電影。1.查詢國片資料:  輸入電影片名,按下「查詢」後,畫面上會顯示片長、上映年份、導演、製作成本、主要演員和電影類型,片長以分鐘為單位;成本以千為單位。2.查詢票房資料:  輸入電影片名,按下「查詢」後,畫面上會顯示電影上映的檔期和擁有多少票房,以千為單位。3.票房統計:  輸入導演姓名,按下「統計」,畫面上會顯示導演所拍的電影以及票房的加總,以千為單位。此功能可以瞭解導演的作品受歡迎的程度為何,由此推得哪些導演可能未來潛力無窮。4.類型、演員查詢:  在此畫面使用者可以選擇輸入喜愛或想了解的電影類型或是演員名稱,輸入其中一項後,按下「查詢」,會顯示與輸入值相關的電影。(二)國片資料庫系統:  此系統提供給系統管理者或電影公司維護國片及票房資料。

1.新增導演:3

Page 4: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

  這個功能可以讓管理者來新增新進的導演,讓資料的存取更方便。2.新增、修改、刪除國片資料:  為了讓使用者在有新的電影產生或電影更新時,可以得到最新的資料,就必須建立良好的資料庫功能,提供資料的維護。3.新增、修改、刪除票房資料: 同樣是為了讓電影查詢系統執行得更順暢,此功能提供針對票房資料的新增、修改和刪除。

三、 系統特色提供使用者簡單的介面,就能夠瞭解簡易的國片資訊。減少使用者在查詢國片資訊上時間的消耗。透過票房計算能了解大眾喜歡哪一位導演的電影。提供使用者用簡單的方式蒐尋到自己喜好的電影類型或演員。

四、 使用對象愛好國片者 系統管理者和電影公司

1. 查詢國片及票房資料。2. 瞭解某一位導演製作的電影的吸引力。

3. 查詢特定類型或演員的電影。

管 理 者 或 電 影 公 司 維 護 國 片 相 關 資料,讓使用者獲得最新資訊以及系統正常運作。

五、 使用環境軟體 硬體

SAP ECC Front End 具備 Internet 連線能力的 PC 或NOTEBOOK

4

Page 5: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

六、 開發工具SAP ECC-ABAP Development Workbench Object Navigator(SE80):

(1) ABAP Dictionary 為集中管理 SAP ECC6.0被使用到的所有資料定義,可以處理資料庫定義,檢索全局類型。

(2) 提供使用者撰寫程式碼、編譯、執行的平台。(3) Screen Painter 為設計和使用者互動介面的動態程序。

七、 系統畫面    使 用 者 可 於 SAP 系 統 主 畫 面 打 入 Transaction-code ( ZPU101_30_MOVIE 、 ZPU101_30_MDB ) 或 進 入 ABAP Development Workbench(SE80)畫面選擇 ZPU101_30 之 Package觀看程式,程式分別為 ZPU101_30_MOVIE、ZPU101_30_MDB。T-code 與程式對照表:

T-code 程式 名稱ZPU101_30_M

OVIE ZPU101_30_MOVIE 國片查詢系統ZPU101_30_M

DB ZPU101_30_MDB 國片資料庫系統

(一)國片查詢系統1.主選單  進入主選單後,可點選中央的選項按鈕:

(1) 若要進行國片資料查詢,請點選「查詢國片資料」按鈕。(2) 若要進行票房資料查詢,請點選「查詢票房資料」按鈕。(3) 若要進行票房統計查詢,請點選「票房統計」按鈕。(4) 若要進行類型、演員查詢,請點選「類型、演員查詢」按鈕。(5) 若要離開程式請點選「Good Bye」按鈕或上方「EXIT」按鈕。

5

Page 6: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

2.查詢國片資料:  從主選單點選「查詢國片資料」按鈕即可進入此畫面。  (1)若要查詢國片基本資料,首先要從片名的跳出式選單中挑選電影名稱,再點選「查詢」按鈕。

  (2)若要返回主選單,請點選「離開」按鈕或上方「EXIT」按鈕。6

Page 7: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

3.查詢票房資料  從主選單點選「查詢票房資料」按鈕即可進入此畫面。  (1)若要查詢國片票房資料,首先要從片名的跳出式選單中挑選電影名稱,再點選「查詢」按鈕。

  (2)若要返回主選單,請點選「離開」按鈕或上方「EXIT」按鈕。4.票房統計  從主選單點選「票房統計」按鈕即可進入此畫面。  (1)若要統計出導演各電影的總票房,首先要從導演的下拉式選單中挑選導演名稱,再點選「統計」按鈕。

  (2)若要返回主選單,請點選「離開」按鈕或上方「EXIT」按鈕。7

Page 8: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

5.類型、演員查詢  從主選單點選「類型、演員查詢」按鈕即可進入此畫面。  (1)若要由電影類型尋找所有的電影,首先點選「類型」選項,再輸入電影類型名稱,最後點選「查詢」按鈕。

  (2)如果沒有輸入電影類型就按了「查詢」,會出現「請輸入電影類型」的訊息視窗。

  (3)如果沒有點選類型就按了「查詢」,會出現「請點選類型」的訊息視窗。

8

Page 9: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

  (4)若要由演員查找所有演員有演出的電影,首先點選「演員」選項,再輸入演員名稱,最後點選「查詢」按鈕。

  (5)若要返回主選單,請點選「離開」按鈕或上方「EXIT」按鈕。(二)國片資料庫系統1.主選單  進入主選單後,可點選中央的選項按鈕。  (1) 若要新增導演,請點選「新增導演」按鈕。  (2) 若要變更國片資料,請點選「新增、修改、刪除國片資料」按鈕。  (3) 若要變更票房資料,請點選「新增、修改、刪除票房資料」按鈕。  (4) 若要離開程式請點選「離開系統」按鈕或上方「EXIT」按鈕。

2.新增導演  從主選單點選「新增導演」按鈕即可進入此畫面。

9

Page 10: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

  (1)若要新增,輸入導演名稱,按下[新增]按鈕,即可新增,成功會跳出「新增成功」視窗。

   (2)若要刪除,按 F4,彈出視窗,選擇要刪除的導演,成功會跳出「刪除成功」視窗。

  (3)若要返回主選單,請點選「離開」按鈕或上方「EXIT」按鈕。3.新增修改刪除國片資料  (1)若要新增,至少必須輸入片名、   上映年份和導演才能新增資料,   如果只輸入片名會跳出「請輸入   上映年份和導演」的訊息視窗。

10

Page 11: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

  (2)若要修改,直接更改欄位,按下「修改」才能修改資料。  (3)若要刪除,輸入要刪除的片名,按下「刪除」即可刪除資料。  (4)新增或修改或刪除可以按「查詢」,檢查是否有成功執行動作。

  (5) 若要返回主選單,請點選「離開」按鈕或上方「EXIT」按鈕。4.新增修改刪除票房資料  (1)若要新增,一定要輸入片名、票房、檔期,才能新增資料,如果只輸入片名會出現「請輸入檔期和票房」的訊息視窗。

  (2)若要修改,直接更改欄位,按下「修改」才能修改資料。  (3)若要刪除,輸入要刪除的片名,按下「刪除」即可刪除資料。

11

Page 12: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

  (4)新增或修改或刪除可以按「查詢」,檢查是否有成功執行動作。

  (5) 若要返回主選單,請點選「離開」按鈕或上方「EXIT」按鈕。八、 結論及未來發展

  由於國片日漸興盛,有越來越多人更加關注國片未來發展的趨勢,想要藉由此系統使大眾更加掌握到台灣的導演拍攝電影的方向,作為一個統計數據,客觀的展示,提供給各位參考。此系統給予對台灣電影業未來發展關心的人,一個瞭解的機會。  未來系統也許可以朝著更精緻的方向發展,分析哪一種類型的電影,最受台灣大眾喜愛,與其他國家又有哪些差異,藉由分析創造出屬於國片的特色,也希望能藉此把台灣更推向國際。

12

Page 13: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

九、附錄Package:ZPU101_30(一)、國片查詢系統Transaction code:ZPU101_30_MOVIEProgram:ZPU101_30_MOVIE程式碼:*&------------------------------------------------------------------*

*& Report  ZPU101_30_MOVIES

*&

*&------------------------------------------------------------------*

REPORT  ZPU101_30_MOVIES.

TABLES ZPU101_30_BOX.   "票房 table

TABLES ZPU101_30_TFILM. "國片 table

TABLES ZPU101_30_BVIEW. "國片和票房結合的 view

DATA OK_CODE TYPE SY-UCOMM.

DATA MSG(100) TYPE C.

DATA WA TYPE ZPU101_30_TFILM.

DATA ITAB TYPE STANDARD TABLE OF ZPU101_30_BVIEW WITH HEADER LINE.

DATA ITAB2 TYPE STANDARD TABLE OF ZPU101_30_TFILM WITH HEADER LINE.

DATA: A(100) TYPE C , B TYPE I, C(100) TYPE C.

DATA: RA1,RA2.  "radio box

      RA2 = 'X'. "有點選CALL SCREEN 9100. "主畫面*&----------主畫面---------------------------------------------------*

*&      Module  USER_COMMAND_9100  INPUT

*&------------------------------------------------------------------*

*       text

*-------------------------------------------------------------------*

MODULE USER_COMMAND_9100 INPUT.

CASE OK_CODE.

13

Page 14: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

  WHEN 'SM'.

    CALL SCREEN 9000.  "國片資料查詢  WHEN 'SB'.

    CALL SCREEN 9400.  "國片票房查詢  WHEN 'BOX'.

    CALL SCREEN 9200.  "票房統計  WHEN 'TAS'.

    CALL SCREEN 9300.  "類型、演員查詢  WHEN 'EXIT'.

    LEAVE PROGRAM.     "離開程式ENDCASE.

ENDMODULE.                 " USER_COMMAND_9100  INPUT

*&------------------------------------------------------------------*

*&      Module  STATUS_9100  OUTPUT

*&------------------------------------------------------------------*

*       text

*-------------------------------------------------------------------*

MODULE STATUS_9100 OUTPUT.

  SET PF-STATUS 'STATUS2'.

  SET TITLEBAR '9100'.

ENDMODULE.                 " STATUS_9100  OUTPUT

*&------國片資料查詢--------------------------------------------------*

*&      Module  USER_COMMAND_9000  INPUT

*&------------------------------------------------------------------*

*       TEXT

*-------------------------------------------------------------------*

MODULE USER_COMMAND_9000 INPUT.

CASE OK_CODE.

  WHEN 'SEARCH'.  "查詢    IF ( ZPU101_30_TFILM-MOVIE <> '').

      SELECT SINGLE * FROM ZPU101_30_TFILM

        WHERE MOVIE = ZPU101_30_TFILM-MOVIE.

    ENDIF.

    CALL SCREEN 9000.

  WHEN 'EXIT'.  "離開    FREE ZPU101_30_TFILM-MOVIE.  "在 screen中使用到的變數都清空

14

Page 15: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

    FREE ZPU101_30_TFILM-M_YEAR.

    FREE ZPU101_30_TFILM-COST_K.

    FREE ZPU101_30_TFILM-DIRECTOR.

    FREE ZPU101_30_TFILM-M_MIN.

    FREE ZPU101_30_TFILM-M_TYPE.

    FREE ZPU101_30_TFILM-PERFORMER.

    FREE A.

ENDCASE.

ENDMODULE.                 " USER_COMMAND_9000  INPUT

*&------國片票房查詢--------------------------------------------------*

*&      Module  USER_COMMAND_9400  INPUT

*&------------------------------------------------------------------*

*       text

*-------------------------------------------------------------------*

MODULE USER_COMMAND_9400 INPUT.

CASE OK_CODE.

  WHEN 'SEARCH'.  "查詢    IF ( ZPU101_30_BOX-MOVIE <> '').

      SELECT SINGLE * FROM ZPU101_30_BOX

        WHERE MOVIE = ZPU101_30_BOX-MOVIE.

    ENDIF.

    CALL SCREEN 9400.

  WHEN 'EXIT'.  "離開    FREE ZPU101_30_BOX-MOVIE.   "在 screen中使用到的變數都清空    FREE ZPU101_30_BOX-PEOPLE.

    FREE ZPU101_30_BOX-TIMELINE.

ENDCASE.

ENDMODULE.                 " USER_COMMAND_9400  INPUT

*&-----------票房統計------------------------------------------------*

*&      Module  USER_COMMAND_9200  INPUT

*&------------------------------------------------------------------*

*       text

*-------------------------------------------------------------------*

MODULE USER_COMMAND_9200 INPUT.

CASE OK_CODE.

  WHEN 'SEARCH'.

15

Page 16: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

     FREE A.

     FREE B.

     SELECT * FROM ZPU101_30_BVIEW

       INTO CORRESPONDING FIELDS OF ITAB

       WHERE DIRECTOR = ZPU101_30_BVIEW-DIRECTOR.

     CONCATENATE A ITAB-MOVIE '__' INTO A. "A為電影集合     B = B + ITAB-PEOPLE.  "B為票房加總     ENDSELECT.

     CALL SCREEN 9200.

  WHEN 'EXIT'.   "在 screen中使用到的變數都清空    FREE A.

    FREE B.

    FREE ZPU101_30_BVIEW-DIRECTOR.

ENDCASE.

ENDMODULE.                 " USER_COMMAND_9200  INPUT

*&------------類型、演員查詢-------------------------------------------

*

*&      Module  USER_COMMAND_9300  INPUT

*&------------------------------------------------------------------*

*       text

*-------------------------------------------------------------------*

MODULE USER_COMMAND_9300 INPUT.

CASE OK_CODE.

  WHEN 'SEARCH'.

    FREE A. "清空電影集合    IF ( RA2 = 'X' AND ZPU101_30_TFILM-M_TYPE <> '').

      CONCATENATE '%' ZPU101_30_TFILM-M_TYPE '%' INTO C.

      SELECT * FROM ZPU101_30_TFILM

        INTO CORRESPONDING FIELDS OF ITAB2

        WHERE M_TYPE LIKE C.    "C為電影類型      CONCATENATE A ITAB2-MOVIE '__' INTO A.

      ENDSELECT.

    ELSEIF ( RA2 = 'X' AND ZPU101_30_TFILM-M_TYPE = '').

      MSG = '請輸入國片類型'.

      MESSAGE I001(00) WITH MSG.

    ELSEIF ( RA2 = '' AND ZPU101_30_TFILM-M_TYPE <> '').

      MSG = '請點選類型'.

16

Page 17: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

      MESSAGE I001(00) WITH MSG.

    ELSEIF ( RA1 = 'X' AND ZPU101_30_TFILM-PERFORMER = '').

      MSG = '請輸入國片演員'.

      MESSAGE I001(00) WITH MSG.

    ELSEIF ( RA1 = '' AND ZPU101_30_TFILM-PERFORMER <> '').

        MSG = '請點選演員'.

        MESSAGE I001(00) WITH MSG.

    ELSEIF ( RA2 = '' AND ZPU101_30_TFILM-PERFORMER <> '').

      CONCATENATE '%' ZPU101_30_TFILM-PERFORMER '%' INTO C.

      SELECT * FROM ZPU101_30_TFILM

        INTO CORRESPONDING FIELDS OF ITAB2

        WHERE PERFORMER LIKE C.

      CONCATENATE A ITAB2-MOVIE '__' INTO A.

      ENDSELECT.

    ENDIF.

    CALL SCREEN 9300.

  WHEN 'EXIT'.

    FREE ZPU101_30_TFILM-M_TYPE.  "在 screen中使用到的變數都清空    FREE ZPU101_30_TFILM-PERFORMER.

    FREE A.

    FREE C.

ENDCASE.

ENDMODULE.                 " USER_COMMAND_9300  INPUT

(二)國片資料庫系統Transaction code:ZPU101_30_MDBProgram:ZPU101_30_MDB程式碼:*&------------------------------------------------------------------*

*& Report  ZPU101_30_MDB

*&

*&------------------------------------------------------------------*

REPORT  ZPU101_30_MDB.

TABLES ZPU101_30_BOX.   "票房 table

TABLES ZPU101_30_TFILM. "國片 table

TABLES ZPU101_30_DIRC.  "導演 table

17

Page 18: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

DATA OK_CODE TYPE SY-UCOMM.

DATA MSG(100) TYPE C.

DATA WA TYPE ZPU101_30_TFILM.

DATA WA2 TYPE ZPU101_30_BOX.

DATA WA3 TYPE ZPU101_30_DIRC.

CALL SCREEN 9000.      "主畫面*&-------國片資料庫系統主畫面------------------------------------------*

*&      Module  USER_COMMAND_9000  INPUT

*&-------------------------------------------------------------------

*

*       text

*-------------------------------------------------------------------*

MODULE USER_COMMAND_9000 INPUT.

CASE OK_CODE.

  WHEN 'AUDM'.

    CALL SCREEN 9100.  "新增、修改、刪除國片資料  WHEN 'AUDB'.

    CALL SCREEN 9200.  "新增、修改、刪除票房資料  WHEN 'ADIR'.

    CALL SCREEN 9300.  "新增導演  WHEN 'EXIT'.

    LEAVE PROGRAM.

ENDCASE.

ENDMODULE.                 " USER_COMMAND_9000  INPUT

*&------------------------------------------------------------------*

*&      Module  STATUS_9000  OUTPUT

*&------------------------------------------------------------------*

*       text

*-------------------------------------------------------------------*

MODULE STATUS_9000 OUTPUT.

  SET PF-STATUS 'STATUS1'.

  SET TITLEBAR '9000'.

ENDMODULE.                 " STATUS_9000  OUTPUT

18

Page 19: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

*&--------新增、修改、刪除國片資料-------------------------------------*

*&      Module  USER_COMMAND_9100  INPUT

*&------------------------------------------------------------------*

*       text

*-------------------------------------------------------------------*

MODULE USER_COMMAND_9100 INPUT.

CASE OK_CODE.

  WHEN 'ADD'.   "新增    IF ( ZPU101_30_TFILM-MOVIE <> '' AND ZPU101_30_TFILM-M_YEAR <>'' 

AND ZPU101_30_TFILM-DIRECTOR <> '').

      WA-MOVIE = ZPU101_30_TFILM-MOVIE.

      WA-M_YEAR = ZPU101_30_TFILM-M_YEAR.

      WA-DIRECTOR = ZPU101_30_TFILM-DIRECTOR.

      WA-M_MIN = ZPU101_30_TFILM-M_MIN.

      WA-M_TYPE = ZPU101_30_TFILM-M_TYPE.

      WA-COST_K = ZPU101_30_TFILM-COST_K.

      WA-PERFORMER = ZPU101_30_TFILM-PERFORMER.

      INSERT INTO ZPU101_30_TFILM VALUES WA.

        IF SY-SUBRC = 0.

          MSG = '新增成功'.

          MESSAGE I001(00) WITH MSG.

        ENDIF.

    ELSEIF ( ZPU101_30_TFILM-MOVIE <> '' 

AND ZPU101_30_TFILM-M_YEAR <>'').

      MSG = '請輸入導演'.

      MESSAGE I001(00) WITH MSG.

    ELSEIF ( ZPU101_30_TFILM-MOVIE <> '' 

AND ZPU101_30_TFILM-DIRECTOR <> '').

      MSG = '請輸入上映年份'.

      MESSAGE I001(00) WITH MSG.

    ELSEIF ( ZPU101_30_TFILM-M_YEAR <>'' 

AND ZPU101_30_TFILM-DIRECTOR <> '').

      MSG = '請輸入國片名稱'.

      MESSAGE I001(00) WITH MSG.

    ELSEIF ( ZPU101_30_TFILM-M_YEAR <>'').

      MSG = '請輸入國片名稱和導演'.

19

Page 20: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

      MESSAGE I001(00) WITH MSG.

    ELSEIF ( ZPU101_30_TFILM-MOVIE <>'').

      MSG = '請輸入上映年份和導演'.

      MESSAGE I001(00) WITH MSG.

    ELSEIF ( ZPU101_30_TFILM-DIRECTOR <>'').

      MSG = '請輸入國片名稱和上映年份'.

      MESSAGE I001(00) WITH MSG.

    ELSEIF ( ZPU101_30_TFILM-MOVIE = '' 

AND ZPU101_30_TFILM-M_YEAR ='' 

AND ZPU101_30_TFILM-DIRECTOR ='').

      MSG = '請輸入資料'.

      MESSAGE I001(00) WITH MSG.

    ENDIF.

    CALL SCREEN 9100.

  WHEN 'SEARCH'.  "查詢    IF ( ZPU101_30_TFILM-MOVIE <> '').

      SELECT SINGLE * FROM ZPU101_30_TFILM

        WHERE MOVIE = ZPU101_30_TFILM-MOVIE.

    ENDIF.

    CALL SCREEN 9100.

  WHEN 'MODIFY'.  "修改    IF ( ZPU101_30_TFILM-MOVIE <> '').

      UPDATE ZPU101_30_TFILM

      SET M_MIN = ZPU101_30_TFILM-M_MIN

          M_YEAR =  ZPU101_30_TFILM-M_YEAR

          M_TYPE = ZPU101_30_TFILM-M_TYPE

          COST_K = ZPU101_30_TFILM-COST_K

          PERFORMER = ZPU101_30_TFILM-PERFORMER

          DIRECTOR = ZPU101_30_TFILM-DIRECTOR

      WHERE  MOVIE = ZPU101_30_TFILM-MOVIE.

        IF SY-SUBRC = 0.

          MSG = '修改成功'.

          MESSAGE I001(00) WITH MSG.

        ENDIF.

      CALL SCREEN 9100.

    ENDIF.

  WHEN 'DEL'.  "刪除20

Page 21: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

    IF ( ZPU101_30_TFILM-MOVIE <> '').

      DELETE FROM ZPU101_30_TFILM

        WHERE MOVIE = ZPU101_30_TFILM-MOVIE.

        IF SY-SUBRC = 0.

          MSG = '刪除成功'.

          MESSAGE I001(00) WITH MSG.

        ENDIF.

    ENDIF.

    FREE ZPU101_30_TFILM-MOVIE.  "清空變數    FREE ZPU101_30_TFILM-M_YEAR.

    FREE ZPU101_30_TFILM-DIRECTOR.

    FREE ZPU101_30_TFILM-M_MIN.

    FREE ZPU101_30_TFILM-M_TYPE.

    FREE ZPU101_30_TFILM-COST_K.

    FREE ZPU101_30_TFILM-PERFORMER.

    CALL SCREEN 9100.

  WHEN 'RESET'.

    FREE ZPU101_30_TFILM-MOVIE.

    FREE ZPU101_30_TFILM-M_YEAR.

    FREE ZPU101_30_TFILM-DIRECTOR.

    FREE ZPU101_30_TFILM-M_MIN.

    FREE ZPU101_30_TFILM-M_TYPE.

    FREE ZPU101_30_TFILM-COST_K.

    FREE ZPU101_30_TFILM-PERFORMER.

    CALL SCREEN 9100.

  WHEN 'EXIT'.  "離開    FREE ZPU101_30_TFILM-MOVIE.  "清空 screen中使用的變數    FREE ZPU101_30_TFILM-M_YEAR.

    FREE ZPU101_30_TFILM-DIRECTOR.

    FREE ZPU101_30_TFILM-M_MIN.

    FREE ZPU101_30_TFILM-M_TYPE.

    FREE ZPU101_30_TFILM-COST_K.

    FREE ZPU101_30_TFILM-PERFORMER.

ENDCASE.

ENDMODULE.                 " USER_COMMAND_9100  INPUT

*&------------------------------------------------------------------*

*&      Module  STATUS_9100  OUTPUT

21

Page 22: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

*&------------------------------------------------------------------*

*       text

*-------------------------------------------------------------------*

MODULE STATUS_9100 OUTPUT.

  SET PF-STATUS 'STATUS1'.

  SET TITLEBAR '9100'.

ENDMODULE.                 " STATUS_9100  OUTPUT

*&---------新增、修改、刪除票房資料--------------------------------------

*

*&      Module  USER_COMMAND_9200  INPUT

*&------------------------------------------------------------------*

*       text

*-------------------------------------------------------------------*

MODULE USER_COMMAND_9200 INPUT.

CASE OK_CODE.

  WHEN 'ADD'.   "新增    IF ( ZPU101_30_BOX-MOVIE <> '' AND ZPU101_30_BOX-PEOPLE <> '' 

AND ZPU101_30_BOX-TIMELINE <>'').

      WA2-MOVIE = ZPU101_30_BOX-MOVIE.

      WA2-TIMELINE = ZPU101_30_BOX-TIMELINE.

      WA2-PEOPLE = ZPU101_30_BOX-PEOPLE.

      INSERT INTO ZPU101_30_BOX VALUES WA2.

        IF SY-SUBRC = 0.

          MSG = '新增成功'.

          MESSAGE I001(00) WITH MSG.

        ENDIF.

    ELSEIF ( ZPU101_30_BOX-MOVIE <> '' 

AND ZPU101_30_BOX-TIMELINE <>'').

      MSG = '請輸入票房'.

      MESSAGE I001(00) WITH MSG.

    ELSEIF ( ZPU101_30_BOX-MOVIE <> '' 

AND ZPU101_30_BOX-PEOPLE <> '').

      MSG = '請輸入檔期'.

      MESSAGE I001(00) WITH MSG.

    ELSEIF ( ZPU101_30_BOX-TIMELINE <>'' 

22

Page 23: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

AND ZPU101_30_BOX-PEOPLE <> '').

      MSG = '請輸入國片名稱'.

      MESSAGE I001(00) WITH MSG.

    ELSEIF ( ZPU101_30_BOX-TIMELINE <>'').

      MSG = '請輸入國片名稱和票房'.

      MESSAGE I001(00) WITH MSG.

    ELSEIF ( ZPU101_30_BOX-MOVIE <>'').

      MSG = '請輸入檔期和票房'.

      MESSAGE I001(00) WITH MSG.

    ELSEIF ( ZPU101_30_BOX-PEOPLE <>'').

      MSG = '請輸入國片名稱和檔期'.

      MESSAGE I001(00) WITH MSG.

    ELSEIF ( ZPU101_30_BOX-MOVIE = '' 

AND ZPU101_30_BOX-TIMELINE ='' 

AND ZPU101_30_BOX-PEOPLE ='').

      MSG = '請輸入資料'.

      MESSAGE I001(00) WITH MSG.

    ENDIF.

    CALL SCREEN 9200.

  WHEN 'SEARCH'.  "查詢    IF ( ZPU101_30_BOX-MOVIE <> '').

      SELECT SINGLE * FROM ZPU101_30_BOX

        WHERE MOVIE = ZPU101_30_BOX-MOVIE.

    ENDIF.

    CALL SCREEN 9200.

  WHEN 'MODIFY'.  "修改    IF ( ZPU101_30_BOX-MOVIE <> '').

      UPDATE ZPU101_30_BOX

      SET TIMELINE = ZPU101_30_BOX-TIMELINE

          PEOPLE = ZPU101_30_BOX-PEOPLE

      WHERE MOVIE = ZPU101_30_BOX-MOVIE.

        IF SY-SUBRC = 0.

          MSG = '修改成功'.

          MESSAGE I001(00) WITH MSG.

        ENDIF.

      CALL SCREEN 9200.

    ENDIF.

23

Page 24: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

  WHEN 'DEL'.  "刪除    IF ( ZPU101_30_BOX-MOVIE <> '').

      DELETE FROM ZPU101_30_BOX

        WHERE MOVIE = ZPU101_30_BOX-MOVIE.

          IF SY-SUBRC = 0.

            MSG = '刪除成功'.

            MESSAGE I001(00) WITH MSG.

          ENDIF.

    ENDIF.

    FREE ZPU101_30_BOX-MOVIE.

    FREE ZPU101_30_BOX-TIMELINE.

    FREE ZPU101_30_BOX-PEOPLE.

    CALL SCREEN 9200.

  WHEN 'RESET'.

    FREE ZPU101_30_BOX-MOVIE.

    FREE ZPU101_30_BOX-TIMELINE.

    FREE ZPU101_30_BOX-PEOPLE.

    CALL SCREEN 9200.

  WHEN 'EXIT'.  "離開    FREE ZPU101_30_BOX-MOVIE.     "清空 screen中使用的變數    FREE ZPU101_30_BOX-TIMELINE.

    FREE ZPU101_30_BOX-PEOPLE.

ENDCASE.

ENDMODULE.                 " USER_COMMAND_9200  INPUT

*&------------------------------------------------------------------*

*&      Module  STATUS_9200  OUTPUT

*&------------------------------------------------------------------*

*       text

*-------------------------------------------------------------------*

MODULE STATUS_9200 OUTPUT.

  SET PF-STATUS 'STATUS1'.

  SET TITLEBAR '9200'.

ENDMODULE.                 " STATUS_9200  OUTPUT

*&-------------新增導演----------------------------------------------*

*&      Module  USER_COMMAND_9300  INPUT

*&------------------------------------------------------------------*

24

Page 25: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

*       text

*-------------------------------------------------------------------*

MODULE USER_COMMAND_9300 INPUT.

CASE OK_CODE.

  WHEN 'ADD'.

    IF ( ZPU101_30_DIRC-DIRECTOR <> '').

      WA3-DIRECTOR = ZPU101_30_DIRC-DIRECTOR.

      INSERT INTO ZPU101_30_DIRC VALUES WA3.

        IF SY-SUBRC = 0.

          MSG = '新增成功'.

          MESSAGE I001(00) WITH MSG.

        ENDIF.

    ENDIF.

    CALL SCREEN 9300.

  WHEN 'DEL'.  "刪除    IF ( ZPU101_30_DIRC-DIRECTOR <> '').

      DELETE FROM ZPU101_30_DIRC

        WHERE DIRECTOR = ZPU101_30_DIRC-DIRECTOR.

          IF SY-SUBRC = 0.

            MSG = '刪除成功'.

            MESSAGE I001(00) WITH MSG.

          ENDIF.

    ENDIF.

    CALL SCREEN 9300.

  WHEN 'EXIT'.

ENDCASE.

ENDMODULE.                 " USER_COMMAND_9300  INPUT

*&------------------------------------------------------------------*

*&      Module  STATUS_9300  OUTPUT

*&------------------------------------------------------------------*

*       text

*-------------------------------------------------------------------*

MODULE STATUS_9300 OUTPUT.

  SET PF-STATUS 'STATUS1'.

  SET TITLEBAR '9300'.

ENDMODULE.                 " STATUS_9300  OUTPUT

25

Page 26: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

(三)ABAP Dictionary1.Domain:

zpu101_30_movie CHAR(25)

zpu101_30_people INT4(10)

zpu101_30_dir CHAR(10)

2.Data Element:zpu101_30_movie 使用 zpu101_30_movie 的 domain

zpu101_30_year NUMC(4)

zpu101_30_dir 使用 zpu101_30_dir 的 domain

zpu101_30_people 使用 zpu101_30_people 的 domain

3.Table:(1)zpu101_30_tfilm

movie 使用 zpu101_30_movie 的 data element

m_year 使用 zpu101_30_year 的 data element

cost_k INT4(10)

director 使用 zpu101_30_dir 的 data element

M_MIN INT4(10)

PERFORMER CHAR(30)

M_TYPE CHAR(30)

(2)zpu101_30_box

movie 使用 zpu101_30_movie 的 data element

people 使用 zpu101_30_people 的 data element

timeline CHAR(6)

4.VIEW:ZPU101_30_BVIEWJOIN:zpu101_30_tfilm AND zpu101_30_box WITH MOVIEFieldmoviepeopledirector

26

Page 27: ABAP程式設計期末報告 - Providence Universitytcyang/george/course1021/… · Web viewABAP程式設計期末報告 國片查詢系統 指導老師: 楊子青 老師 學 生:

5.Search help:zpu101_30_bsearchUse:zpu101_30_tfilmSearch help parameter:movie m_year director

十、工作分配黃掀芸

規劃、討論、整合(程式、書面)ABAP 所有程式、資料庫書面資料

林依惠 討論、書面資料張 開 討論、整合(程式、PPT)

ABAP 所有程式、資料庫

27