170 likes | 280 Views
คำสั่ง PERFORM รูปแบบ ที่ 1 PERFORM procedure-name-1 THROUGH procedure-name-2 THRU ตัวอย่าง PERFORM PROCESS-01. PERFORM PARA-1 THRU PARA-2. ]. [. {. }. คำสั่ง PERFORM รูปแบบ ที่ 2 PERFORM procedure-name-1 THROUGH procedure-name-2 THRU
E N D
คำสั่ง PERFORM รูปแบบที่ 1 PERFORM procedure-name-1 THROUGH procedure-name-2 THRU ตัวอย่าง PERFORM PROCESS-01. PERFORM PARA-1 THRU PARA-2. ] [ { }
คำสั่ง PERFORM รูปแบบที่ 2 PERFORM procedure-name-1 THROUGH procedure-name-2 THRU identifier-1 TIMES integer ตัวอย่าง PERFORM READ-ROUTINE 2 TIMES. PERFORM P-1 THRU P-2 N TIMES. ] [ { } { }
คำสั่ง PERFORM รูปแบบที่ 3 PERFORM procedure-name-1 THROUGH procedure-name-2 THRU UNTIL condition-1 ตัวอย่าง PERFORM READ-PRO UNTIL EOF. PERFORM BEGIN-PRO THRU END-JOB UNTIL END-FLAG = “YES”. ] [ { }
คำสั่ง PERFORM รูปแบบที่ 4 PERFORM procedure-name-1 THROUGH procedure-name-2 THRU VARYING identifier-1 FROM identifier-2 index-name-1 index-name-2 literal-1 BY identifier-3 UNTIL condition-1 literal-2 ] } [ { } { { } { }
คำสั่ง PERFORM รูปแบบที่ 4 (ต่อ) AFTER identifier-4 FROM identifier-5 index-name-3 index-name-4 literal-3 BY identifier-6 UNTIL condition-2 literal-4 } { [ { } { } { } [ { } AFTER identifier-7 FROM identifier-8 index-name-5 index-name-6 literal-5 BY identifier-9 UNTIL condition-3 literal-6 } ] ] {
ตัวอย่างที่ถูกต้องของการใช้ PERFORM A PERFORM B THRU I. B C D PERFORM F THRU H. E F G H I
ตัวอย่างที่ผิดของการใช้ PERFORM A PERFORM B THRU F. B C D E F G Overlap H I PERFORM D THRU H.
ตัวอย่าง MAIN-ROUTINE. … … PERFORM SET-VAR. … … SET-VAR. MOVE 0 TO A B C. ADD 1 TO X. MOVE SPACES TO PRINT-LINE.
ตัวอย่าง BEGIN-ROUTINE. … PERFORM PROCESS-CAL UNTIL EOF = “YES”. … จริง … PROCESS-CAL. … … …
Table Handling การสร้างตารางด้วย OCCURS clause รูปแบบ … … OCCURS integer TIMES ตาราง 1 มิติ 01 TABLE-1. 02 ABC PIC 999 OCCURS 5 TIMES. จะได้ตารางดังนี้ TABLE-1 ABC (1) ABC (2) ABC (3) ABC (4) ABC (5)
ถ้าเขียนคำสั่ง MOVE 150 TO ABC (2). MOVE 52 TO ABC (5). จะได้ค่าข้อมูลในตาราง TABLE-1 ABC (1) ABC (2) ABC (3) ABC (4) ABC (5) 150 052 01 SCORE-TABLE. 02 SCORE PIC 999 OCCURS 100 TIMES.
01 TABLE-2. 02 ELEMENT OCCURS 20 TIMES. 03 NAME PIC X(30). 03 SCORE PIC 999. TABLE-2 ELEMENT (1) ELEMENT (2) ... ELEMENT (20) NAME (1) SCORE (1) NAME (2) SCORE (2) ... NAME (20) SCORE (20) X(30) 999 X(30) 999 X(30) 999
ตาราง 2 มิติ 01 TABLE-3. 02 ST-NO OCCURS 100 TIMES. 03 SCORE OCCURS 2 TIMES PIC 99. จะได้ตารางดังนี้ TABLE-3 ST-NO (1) ….. ST-NO (100) SCORE (1, 1) SCORE (1, 2) SCORE (100, 1) SCORE (100, 2)
01 TABLE-4. 02 ELEMENT OCCURS 20 TIMES. 03 F-NAME PIC X(15). 03 L-NAME PIC X(15). 03 SCORE PIC 999 OCCURS 2. ตาราง 3 มิติ 01 TABLE_5. 02 A OCCURS 10 TIMES. 03 B OCCURS 3 TIMES. 04 C PIC 999 OCCURS 2 TIMES.
ข้อกำหนดการใช้ OCCURS 1. จะใช้ OCCURS ใน level 01, 77 ไม่ได้ 2. สร้างตารางสูงสุดได้ 3 มิติ 3. PIC จะใช้ใน level สุดท้ายของข้อมูล ตัวอย่าง 01 INVENTORY. 05 CATEGORY-TAB OCCURS 4. 10 CATEGORY-NAME PIC X(10). 10 SUPPLIER-TABLE OCCURS 10. 15 SUP-NAME PIC X(6). 15 ITEM-TABLE OCCURS 20. 20 ITEN-NAME PIC X(6). 20 ITEM-COUNT PIC 999.
การกำหนดค่าในตารางโดยใช้ REDEFINES clause รูปแบบ level-no data-name-1 REDEFINES data-name-2 ตัวอย่าง 01 MONTH-TABLE. 02 FILLER PIC X(10) VALUE “JANUARY”. 02 … . . 02 FILLER PIC X(10) VALUE“DECEMBER”. 01 MONTH-NAME REDEFINES MONTH-TABLE. 02 MONTH PIC X(10) OCCURS 12.
ตัวอย่าง 01 PRICE-VALUE. 02 FILLER PIC X(16) VALUE “A225A820B415C210”. 02 FILLER PIC X(16) VALUE “A630B735C132C415”. 02 FILLER PIC X(16) VALUE “C535C916D418C620”. 02 FILLER PIC X(16) VALUE “D240E340F245F450”. 01 PRICE-TABLE REDEFINES PRICE-VALUE. 02 PRODUCT-NUM OCCURS 4. 03 PRODUCT-DATA OCCURS 4. 04 PRODUCT-CODE PIC XX. 04 PRODUCT-PRICE PIC 99.