Technical data
Example 8–3 (Cont.) Accessing and Displaying Database Information
SOLICIT-INPUT.
MOVE ZERO TO END-OF-COLLECTION.
DISPLAY " ".
DISPLAY "Enter PART_ID> " WITH NO ADVANCING.
MOVE SPACES TO INPUT-REC.
ACCEPT PART_ID
AT END GO TO PARTBOM-DONE.
FETCH FIRST PART WITHIN ALL_PARTS USING PART_ID
AT END DISPLAY "*** Part number ",
PART_ID, " not found. ***"
GO TO SOLICIT-INPUT.
DISPLAY " ".
DISPLAY " ".
DISPLAY "+-----------------------------------+".
DISPLAY "| Parts Bill of Materials Explosion |".
DISPLAY "| (COBOL Version) |".
DISPLAY "| Part-id: " PART_ID " |".
DISPLAY "+-----------------------------------+".
DISPLAY " ".
DISPLAY " ".
DISPLAY " ".
DISPLAY PART_ID, " - ", PART_DESC
MOVE ZERO TO INDENT-LEVEL.
FREE ALL FROM KEEP-COMPONENT.
PERFORM PARTBOM-LOOP THRU PARTBOM-LOOP-EXIT
UNTIL END-COLLECTION.
GO TO SOLICIT-INPUT.
PARTBOM-DONE.
COMMIT.
DISPLAY " ".
DISPLAY "END COBOL PARTBOM.".
STOP RUN.
PARTBOM-LOOP.
FIND NEXT COMPONENT WITHIN PART_USES
AT END PERFORM POP-COMPONENT THRU POP-COMPONENT-EXIT
GO TO PARTBOM-LOOP-EXIT.
KEEP CURRENT USING KEEP-COMPONENT.
ADD 1 TO INDENT-LEVEL.
FIND OWNER PART_USED_ON.
GET PART_ID, PART_DESC.
DISPLAY INDENT-TREE, PART_ID, " - ", PART_DESC.
PARTBOM-LOOP-EXIT.
EXIT.
POP-COMPONENT.
FIND LAST WITHIN KEEP-COMPONENT
AT END MOVE 1 TO END-OF-COLLECTION
GO TO POP-COMPONENT-EXIT.
FREE LAST WITHIN KEEP-COMPONENT.
SUBTRACT 1 FROM INDENT-LEVEL.
POP-COMPONENT-EXIT.
EXIT.
8–16 Database Programming Examples