RETURN Statement
The RETURN statement returns records from SORT or MERGE operations to the operating program from within an OUTPUT procedure.
General Format:
RETURN sort-file-1 RECORD [ INTO data-1 ]
AT END statement-1
[NOT AT END statement-2 ]
[END-RETURN ]
Syntax:
sort-file-nis a file described in the File Section with an SD.data-nis a data item.statement-nis an imperative statement.
General Rules:
- The
RETURNstatement can only be used in theOUTPUT PROCEDUREof aSORTorMERGEstatement. - The
INTOphrase causes the data to beMOVE’d todata-1. - If there is no
INTOphrase, the data is returned into the sort-record area in the sort file. - When the end of a sort file is reached, the
AT ENDcondition is triggered, otherwise theNOT AT ENDcondition is triggered. - The
RETURNstatement does not update the File Status variable. An excerpt from the sample program illustrates the use of theRETURNstatement in anOUTPUT PROCEDURE.In the example below, the programRETURN's records from the sort file, writes them out to a new file.
OPEN OUTPUT MEMBER-LIST.
PERFORM UNTIL EOF-SORT-FILE
RETURN MEMBER-SORT
AT END MOVE "Y" TO OUTPUT-SORT-AT-END
NOT AT END
WRITE SORTED-MEMBER-INFO FROM SORT-DATA
END-RETURN
END-PERFORM.
Code Sample:
IDENTIFICATION DIVISION.
PROGRAM-ID. RETURN-1.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
*SORT INPUT FILE
SELECT MEMBER-FILE ASSIGN TO "MEMBERSHIP.TXT"
ORGANIZATION IS LINE SEQUENTIAL
ACCESS IS SEQUENTIAL
FILE STATUS IS MEMBERSHIP-STAT.
*SORT OUTPUT FILE
SELECT MEMBER-LIST ASSIGN TO "MEMBERLIST.TXT"
ORGANIZATION IS LINE SEQUENTIAL
ACCESS IS SEQUENTIAL
FILE STATUS IS MEMBERLIST-STAT.
*SORTFILE (SD)
SELECT MEMBER-SORT ASSIGN TO "SORT-WORK".
DATA DIVISION.
FILE SECTION.
FD MEMBER-FILE.
01 MEMBER-INFOPIC X(40).
FD MEMBER-LIST.
01 SORTED-MEMBER-INFO PIC X(40).
SD MEMBER-SORT.
01 SORT-DATA.
05 MEMBER-FIRST-NAME PIC X(10).
05 MEMBER-LAST-NAME PIC X(20).
05 YEAR-JOINED PIC X(4).
05 MEMBER-RANK PIC X(6).
WORKING-STORAGE SECTION.
77 MEMBERLIST-STAT PIC XX.
88 EOF-MEMBERLIST VALUE "10".
77 MEMBERSHIP-STAT PIC XX.
88 EOF-MEMBERSHIP VALUE "10".
77 OUTPUT-SORT-AT-END PIC X.
88 EOF-SORT-FILEVALUE "Y".
77 DUMMY PIC X.
PROCEDURE DIVISION.
MEMBER-SORT-PROC.
SORT MEMBER-SORT
ON ASCENDING KEY MEMBER-LAST-NAME
ON DESCENDING KEY MEMBER-RANK
WITH DUPLICATES IN ORDER
INPUT PROCEDURE INPUT-PROC
OUTPUT PROCEDURE OUTPUT-PROC.
DISPLAY "SORT-3 FINISHED!" LINE 10 COL 10.
ACCEPT DUMMY LINE 10 COL 30.
STOP RUN.
INPUT-PROC SECTION.
INPUT-PROCESS.
OPEN INPUT MEMBER-FILE.
READ MEMBER-FILE NEXT RECORD.
PERFORM UNTIL EOF-MEMBERLIST
RELEASE SORT-DATA FROM MEMBER-INFO
READ MEMBER-FILE NEXT RECORD
AT END MOVE "10" TO MEMBERLIST-STAT
END-READ
END-PERFORM.
CLOSE MEMBER-FILE.
EXIT SECTION.
OUTPUT-PROC SECTION.
OUTPUT-PROCESS.
OPEN OUTPUT MEMBER-LIST.
PERFORM UNTIL EOF-SORT-FILE
RETURN MEMBER-SORT
AT END MOVE "Y" TO OUTPUT-SORT-AT-END
NOT AT END
WRITE SORTED-MEMBER-INFO FROM SORT-DATA
END-RETURN
END-PERFORM.
CLOSE MEMBER-LIST.
EXIT SECTION.