คำสั่ง 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 APERFORM B THRU I. B C D PERFORM F THRU H. E F G H I
ตัวอย่างที่ผิดของการใช้ PERFORM APERFORM B THRU F. B C D E F GOverlap H IPERFORM 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 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) SCORE-TABLE. 02 SCORE PIC 999 OCCURS 100 TIMES.
01 TABLE 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 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 ELEMENT OCCURS 20 TIMES. 03 F-NAME PIC X(15). 03 L-NAME PIC X(15). 03 SCOREPIC 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 CATEGORY- NAME PIC X(10). 10 SUPPLIER-TABLE OCCURS SUP-NAME PIC X(6). 15 ITEM-TABLE OCCURS 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 PRODUCT-DATA OCCURS PRODUCT-CODE PIC XX. 04 PRODUCT-PRICE PIC 99.