次の例では、入力データと一致する品目を見つけるために在庫テーブルを検索します。 キーは ITEM-NUMBER です。
.. 1 ... ... 2 ... ... 3 ... ... 4 ... ... 5 ... ... 6 ... ... 7 DATA DIVISION. FILE SECTION. FD SALES-DATA BLOCK CONTAINS 1 RECORDS RECORD CONTAINS 80 CHARACTERS LABEL RECORDS STANDARD DATA RECORD IS SALES-REPORTS. 01 SALES-REPORTS PIC X(80). FD PRINTED-REPORT BLOCK CONTAINS 1 RECORDS RECORD CONTAINS 132 CHARACTERS LABEL RECORDS OMITTED DATA RECORD IS PRINTER-OUTPUT. 01 PRINTER-OUTPUT PIC X(132). FD INVENTORY-DATA BLOCK CONTAINS 1 RECORDS RECORD CONTAINS 40 CHARACTERS LABEL RECORDS STANDARD DATA RECORD IS INVENTORY-RECORD. 01 INVENTORY-RECORD. 03 I-NUMBER PIC 9(4). 03 INV-ID PIC X(26). 03 I-COST PIC 9(8)V99. WORKING-STORAGE SECTION. 01 EOF-SW PIC X VALUE "N". 01 EOF-SW2 PIC X VALUE "N". 01 SUB1 PIC 99. 01 RECORDS-NOT-FOUND PIC 9(5) VALUE ZEROS. 01 TOTAL-COSTS PIC 9(10) VALUE ZEROS. 01 HOLD-INPUT-DATA. 03 INVENTORY-NUMBER PIC 9999. 03 PURCHASE-COST PIC 9(4)V99. 03 PURCHASE-DATE PIC 9(6). 03 FILLER PIC X(64). 01 PRINTER-SPECS. 03 PRINT-LINE. 05 OUTPUT-ITEM-NUMBER PIC ZZZ9. 05 FILLER PIC X(48) VALUE SPACES. 05 TOTAL-COSTS-0 PIC $(8).99. 01 PRODUCT-TABLE. 05 INVENTORY-NUMBERS OCCURS 50 TIMES ASCENDING KEY ITEM-NUMBER INDEXED BY INDEX-1. 07 ITEM-NUMBER PIC 9(4). 07 ITEM-DESCRIPTION PIC X(26). 07 ITEM-COST PIC 9(8)V99.
.. 1 ... ... 2 ... ... 3 ... ... 4 ... ... 5 ... ... 6 ... ...7 PROCEDURE DIVISION. 100-START-IT. OPEN INPUT SALES-DATA INVENTORY-DATA OUTPUT PRINTED-REPORT. MOVE HIGH-VALUES TO PRODUCT-TABLE. PERFORM READ-INVENTORY-DATA. LOAD-TABLE-ROUTINE. PERFORM LOAD-IT VARYING SUB1 FROM 1 BY 1 UNTIL SUB1 > 50 OR EOF-SW2 = "Y". PERFORM 110-READ-IT. 200-MAIN-ROUTINE. PERFORM PROCESS-DATA UNTIL EOF-SW = "Y". MOVE TOTAL-COSTS TO TOTAL-COSTS-0. PERFORM WRITE-REPORT THRU WRITE-REPORT-EXIT. DISPLAY "RECORDS NOT FOUND - " RECORDS-NOT-FOUND UPON MYTUBE. STOP RUN. PROCESS-DATA. SEARCH ALL INVENTORY-NUMBERS AT END PERFORM KEY-NOT-FOUND THRU NOT-FOUND-EXIT WHEN ITEM-NUMBER (INDEX-1) = INVENTORY-NUMBER MOVE ITEM-NUMBER (INDEX-1) TO OUTPUT-ITEM-NUMBER MOVE ITEM-COST (INDEX-1) TO TOTAL-COSTS-0 ADD ITEM-COST (INDEX-1) TO TOTAL-COSTS PERFORM WRITE-REPORT THRU WRITE-REPORT-EXIT. PERFORM 110-READ-IT. KEY-NOT-FOUND. ADD 1 TO RECORDS-NOT-FOUND. NOT-FOUND-EXIT. EXIT. LOAD-IT. MOVE INVENTORY-RECORD TO INVENTORY-NUMBERS (SUB1). PERFORM READ-INVENTORY-DATA. WRITE-REPORT. WRITE PRINTER-OUTPUT FROM PRINTER-SPECS. WRITE-REPORT-EXIT. EXIT. READ-INVENTORY-DATA. READ INVENTORY-DATA AT END MOVE "Y" TO EOF-SW2. 110-READ-IT. READ SALES-DATA INTO HOLD-INPUT-DATA AT END MOVE "Y" TO EOF-SW.