36
1 AS400 範範範範範範範範 範範 1 範範 Display File 範範範範範範範 範範範 2006.1.4.

AS400 範例程式撰寫過程 步驟 1 :建立 Display File

  • Upload
    cassia

  • View
    228

  • Download
    7

Embed Size (px)

DESCRIPTION

AS400 範例程式撰寫過程 步驟 1 :建立 Display File. 靜宜大學資管系 楊子青 2006.1.4. CRTLIB 指令建立 edu47ex 的 Library. EDTLIBL 指令將 edu47ex 加入 Library List 。按 enter ,再按 F3. CRTSRCPF 指令建立 QDDSSRC 的 原始檔 ( 存放 DDS 相關內容 ). STRPDM 指令,選 3 填入 QDDSSRC 相關資料. 按 F6 ,可新增 Member 及進行編輯 ( 例如 LABDS 這個 display file). LABDS 原始碼. - PowerPoint PPT Presentation

Citation preview

Page 1: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

1

AS400 範例程式撰寫過程

步驟 1 :建立 Display File

靜宜大學資管系 楊子青2006.1.4.

Page 2: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

2

CRTLIB 指令建立 edu47ex 的 Library

Page 3: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

3

EDTLIBL 指令將 edu47ex 加入Library List 。按 enter ,再按 F3

Page 4: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

4

CRTSRCPF 指令建立 QDDSSRC 的原始檔 ( 存放 DDS 相關內容 )

Page 5: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

5

STRPDM 指令,選 3填入 QDDSSRC 相關資料

Page 6: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

6

按 F6 ,可新增 Member 及進行編輯( 例如 LABDS 這個 display file)

Page 7: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

7

LABDS 原始碼/* ******************************************************************/ A DSPSIZ(24 80 *DS3) A PRINT A CA03(03 'EXIT') A************************************************ A* 主要畫面        A************************************************ A R LAB1 A OVERLAY A 3 20' 實驗室編號: ' A 5 20' 實驗室名稱: ' A 7 20' 實驗室分機: ' A LAB1_LABNO 5A B 3 50DSPATR(PC) A DSPATR(RI) A DSPATR(UL) A R LAB2 A CLRL(*NO) A LAB2_LABNM 20A B 5 50DSPATR(PC) A DSPATR(RI) A DSPATR(UL) A LAB2_LABTL 5A B 7 50DSPATR(PC) A DSPATR(RI) A DSPATR(UL) A R LAB3 A CLRL(*NO) A LAB3_LABNM 20A B 5 50 A LAB3_LABTL 5A B 7 50

(LAB1 讓使用者輸入實驗室編號 )(LAB2 讓使用者輸入名稱及分機 )(LAB3 顯示名稱及分機之查詢結果 )

Page 8: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

8

原始碼編輯後,按 F3 ,change/ create member 選 y ,即可存

Page 9: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

9

原始碼前,輸入 14 進行 compile

Page 10: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

10

WRKSPLF 指令,檔案前選 5 可查詢編譯結果 (page down 最後一行顯示是否

成功 )

Page 11: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

11

DSPLIB edu47ex 指令查詢 library ,會出現 LABDS 這個檔案

Page 12: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

12

STRSDA 指令,選 3 ,填入以下資料

可觀看該 Record 所定義之畫面

Page 13: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

13

步驟 2 :建立 Physical File

靜宜大學資管系 楊子青2006.1.4.

Page 14: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

14

STRPDM 指令,選 3 ,填入 QDDSSRC 相關資料。按 F6 ,新增 LABDB 之 physical

file)

Page 15: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

15

LABDB 原始碼 ( 定義了三個欄位 )

A UNIQUE A R LABDATA TEXT(' 實驗室資料欄位 ') A LABNO 5A COLHDG(' 實驗室編號 ') A LABNAME 20A COLHDG(' 實驗室名稱 ') A LABTEL 5A COLHDG(' 實驗室分機 ') A K LABNO

編輯後,按 F3 存檔,再選 14進行 compile

Page 16: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

16

DSPFD 指令,按 F4 ,輸入 File 及 library ,

可查詢該檔案之描述

Page 17: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

17

DSPFFD 指令,按 F4 ,輸入 File 及 library ,

可查詢該檔案之資料庫架構

Page 18: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

18

DSPPFM edu47ex/labdb 指令,可查詢資料庫內容

Page 19: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

19

步驟 3 :建立 RPG program

靜宜大學資管系 楊子青2006.1.4.

Page 20: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

20

CRTSRCPF 指令建立 QRPGLESRC的

原始檔 ( 存放 RPG 相關程式碼 )

Page 21: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

21

STRPDM 指令,選 3填入 QRPGLESRC 相關資料

按 F6 ,可新增 Member 及進行編輯( 例如 Project1~Project5 這些 RPG 程

式 )(SourceType 為 RPGLE)

Page 22: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

22

Project1 原始碼 ( 程式版本 1)

F***************************************************************** Flabds CF E WORKSTN Flabdb UF A E K DISK C DOU LAB1_LABNO='00000' C exfmt lab1 C ENDDO C EVAL *INLR=*ON C return

( 讓使用者輸入實驗室編號,若輸入 00000 則結束程式 )

Page 23: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

23

Project2 原始碼 ( 程式版本 2)

F***************************************************************** Flabds CF E WORKSTN Flabdb UF A E K DISK C DOU LAB1_LABNO='00000' C EXFMT LAB1 C EVAL LABNO=LAB1_LABNO C WRITE LABDATA C ENDDO C EVAL *INLR=*ON C RETURN

( 讓使用者輸入實驗室編號,並寫入資料庫中 )( 此支程式完全不檢查是否該編號已存在資料庫中,因此若輸入重複的編號如 00001 ,程式會產生 error 而結束 )

Page 24: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

24

Project3 原始碼 ( 程式版本 3) F***************************************************************** Flabds CF E WORKSTN Flabdb UF A E K DISK C DOU LAB1_LABNO='00000' C EXFMT LAB1 C EVAL LABNO=LAB1_LABNO C LABNO CHAIN LABDATA C IF NOT %FOUND(LABDB) C WRITE LABDATA C ENDIF C ENDDO C EVAL *INLR=*ON C RETURN

( 改進版本 2 ,輸入不重複的編號才會寫入資料庫 )( 程式執行前後,請用 dsppfm edu47ex/labdb 指令看有何不同 )

Page 25: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

25

Project4 原始碼 ( 程式版本 4 ,新增資料完整版本 )

F***************************************************************** Flabds CF E WORKSTN Flabdb UF A E K DISK C DOU LAB1_LABNO='00000' C EXFMT LAB1 C EVAL LABNO=LAB1_LABNO C LABNO CHAIN LABDATA C IF NOT %FOUND(LABDB) C EXFMT LAB2 C EVAL LABNAME=LAB2_LABNM C EVAL LABTEL=LAB2_LABTL C WRITE LABDATA C ENDIF C ENDDO C EVAL *INLR=*ON C RETURN

( 改進版本 3 ,輸入不重複的編號後,才可繼續輸入實驗室編號及電話,最後再新增於資料庫中 )

Page 26: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

26

Project5 原始碼 ( 程式版本 5 ,查詢資料完整版本 )

F***************************************************************** Flabds CF E WORKSTN Flabdb UF A E K DISK C DOU LAB1_LABNO='00000' C EXFMT LAB1 C EVAL LABNO=LAB1_LABNO C LABNO CHAIN LABDATA C IF %FOUND(LABDB) C EVAL LAB3_LABNM=LABNAME C EVAL LAB3_LABTL=LABTEL C EXFMT LAB3 C ENDIF C ENDDO C EVAL *INLR=*ON C RETURN

( 輸入編號如 m232, m228, 或 m226a 後,會顯示實驗室編號及電話 )

Page 27: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

27

CRTBNDRPG 指令,按 F4 ,進行程式編譯

Page 28: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

28

CALL edu47ex/project1 指令,可執行程式

Page 29: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

29

步驟 4 :建立 MENU

靜宜大學資管系 楊子青2006.1.4.

Page 30: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

30

STRPDM 指令,選 3填入 QDDSSRC 相關資料

按 F6 ,新增 MENUPJ 之 display file存檔後,按 14 進行 compile

A HOME(01 'HOME MENU') A CA03(03 'EXIT') A CA12(12 'PREVIOUS') A INDARA A R MENU A 2 70'MENU' A COLOR(BLU) A 6 5' 1. 新增實驗室資料 ' A 8 5' 2. 查詢實驗室資料 ' A 20 5'99. SIGN OFF' A 23 2'SELECT :' A OPT 2 I 23 12DSPATR(PC)

Page 31: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

31

CRTSRCPF 指令建立 QCLSRC 的原始檔 ( 存放 Control Language 程式

碼 )

Page 32: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

32

STRPDM 指令,選 3填入 QCLSRC 相關資料

按 F6 ,可新增 Member 及進行編輯( 新增 MENUPJRPG 之 CLLE 程式

作為主選單 )

Page 33: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

33

MENUPJRPG 原始碼pgm parm(&menu &lib &act)

dcl &menu *char len(10)dcl &lib *char len(10)dcl &act *char len(2)dclf file(menupj) rcdfmt(menu)

sndrcvf rcdfmt(menu)

chgvar &act value(X'0000') /* menu display again */if cond(&in01 = '1') then(chgvar &act value(X'FFFC')) /* home */if cond(&in03 = '1') then(chgvar &act value(X'FFFF')) /* exit */if cond(&in12 = '1') then(chgvar &act value(X'FFFE')) /* previous */

if cond(&opt = '1') then(call project4)if cond(&opt = '2') then(call project5)if cond(&opt = '99') then(signoff)

endpgm

Page 34: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

34

CRTBNDCL 指令,按 F4 ,進行 CL 程式編譯 ( 產生 *pgm 檔 )

Page 35: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

35

CRTMNU 指令,按 F4 ,再按 F10 填入資料

(menu type 為 *pgm) ,產生選單 (*menu)

Page 36: AS400 範例程式撰寫過程 步驟 1 :建立 Display File

36

GO MenuPjRPG 指令,可執行該選單