Sunteți pe pagina 1din 5

//**------ PS -> PS-----**//

IDENTIFICATION DIVISION.
PROGRAM-ID.
FLPGM01.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT CUST-FILE

ASSIGN
ORGANIZATION
ACCESS MODE
FILE STATUS

DATA DIVISION.
FILE SECTION.
FD CUST-FILE.
01 CUST-FILE-REC.
05 CUST-ID
05 FILLER
05 CUST-NAME
05 FILLER
05 CUST-CONTACT
05 FILLER
05 CUST-LOCATION
05 FILLER

PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC

WORKING-STORAGE SECTION.
01 W01-STAT01

PIC 9(02).

TO
IS
IS
IS

CUSTFILE
SEQUENTIAL
SEQUENTIAL
W01-STAT01.

X(12).
X(01).
X(15).
X(01).
9(10).
X(01).
X(10).
X(30).

PROCEDURE DIVISION.
MAIN-PARA.
PERFORM INITIALIZE-PARA
PERFORM OPEN-PARA
PERFORM READ-PARA
UNTIL ( W01-STAT01 NOT = 00 )
PERFORM CLOSE-PARA
PERFORM TERMINATE-PARA.
INITIALIZE-PARA.
INITIALIZE W01-STAT01.
OPEN-PARA.
OPEN INPUT CUST-FILE.
IF ( W01-STAT01 NOT = 00 ) THEN
DISPLAY 'OPEN INPUT FILE FAILED' W01-STAT01
END-IF.
READ-PARA.
READ CUST-FILE
*
AT END DISPLAY 'HELLO THERE YOU REACHED THE END'
*
NOT AT END DISPLAY 'YOU CAN NOW GO TO DISPLAY PARA'
END-READ
*

FILE STATUS HANDLING FOR READ


EVALUATE TRUE
WHEN ( W01-STAT01 = 00 )
PERFORM DISPLAY-PARA

WHEN ( W01-STAT01 = 10 )
DISPLAY 'END OF FILE REACHED'
WHEN OTHER
WHEN OTHER
DISPLAY 'ERROR IN READ '
END-EVALUATE.
DISPLAY-PARA.
DISPLAY '
'
'
'

|
|
|
|

'
'
'
'

CUST-ID
CUST-NAME
CUST-CONTACT
CUST-LOCATION.

CLOSE-PARA.
CLOSE CUST-FILE
IF ( W01-STAT01 NOT = 00 ) THEN
DISPLAY 'CLOSE INPUT FILE FAILED'
END-IF.
TERMINATE-PARA.
STOP RUN.

//**---- READ KSDS ----**//


IDENTIFICATION DIVISION.
PROGRAM-ID.
FLPGM04.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMP-FILE

ASSIGN
ORGANIZATION
ACCESS MODE
RECORD KEY
FILE STATUS

DATA DIVISION.
FILE SECTION.
*

INPUT FILE VARIABLE DECLARATION

FD EMP-FILE.
01 EMP-FILE-REC.
05 EMP-ID
05 FILLER
05 EMP-NAME
05 FILLER
05 EMP-CONTACT
05 FILLER
05 EMP-SALARY
05 FILLER
WORKING-STORAGE SECTION.

PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC

9(04).
X(01).
X(08).
X(01).
9(10).
X(01).
9(06)V9(02).
X(47).

TO
IS
IS
IS
IS

EMPFILE
INDEXED
RANDOM
EMP-ID
W01-STAT01.

01 W01-STAT01

PIC 9(02).

PROCEDURE DIVISION.
MAIN-PARA.
PERFORM INITIALIZE-PARA
PERFORM OPEN-PARA
ACCEPT EMP-ID
PERFORM READ-PARA
PERFORM CLOSE-PARA
PERFORM TERMINATE-PARA.
INITIALIZE-PARA.
INITIALIZE W01-STAT01.
OPEN-PARA.
OPEN INPUT EMP-FILE
IF ( W01-STAT01 NOT = 00 ) THEN
DISPLAY 'OPEN INPUT FILE FAILED'
END-IF.
READ-PARA.
READ EMP-FILE
INVALID KEY DISPLAY '<<<---'
NOT INVALID KEY DISPLAY '--->>'
END-READ
*

FILE STATUS HANDLING FOR READ


EVALUATE TRUE
WHEN ( W01-STAT01 = 00 )
PERFORM DISPLAY-PARA
WHEN ( W01-STAT01 = 23 )
DISPLAY 'KEY IS NOT FOUND KINDLY CHECK' W01-STAT01
WHEN OTHER
DISPLAY 'ERROR IN READ '
END-EVALUATE.
DISPLAY-PARA.
DISPLAY '
'
'
'

|
|
|
|

'
'
'
'

EMP-ID
EMP-NAME
EMP-CONTACT
EMP-SALARY.

CLOSE-PARA.
CLOSE EMP-FILE
IF ( W01-STAT01 NOT = 00 )
DISPLAY 'CLOSE INPUT/OUTPUT FILE FAILED'
END-IF.
TERMINATE-PARA.
STOP RUN.
//** --- compare PS with KSDS --- ***//
IDENTIFICATION DIVISION.

PROGRAM-ID.

FLPGM05.

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT TRANS-FILE

SELECT MASTR-FILE

ASSIGN
ORGANIZATION
ACCESS MODE
FILE STATUS

TO
IS
IS
IS

TRNSFL
SEQUENTIAL
SEQUENTIAL
W01-STAT01.

ASSIGN
ORGANIZATION
ACCESS MODE
RECORD KEY
FILE STATUS

TO
IS
IS
IS
IS

MSTRFL
INDEXED
RANDOM
EMP-ID1
W01-STAT02.

DATA DIVISION.
FILE SECTION.
*

INPUT FILE VARIABLE DECLARATION


FD TRANS-FILE.
01 TRANS-FILE-REC.
05 EMP-ID
05 FILLER

PIC 9(04).
PIC X(06).

FD MASTR-FILE.
01 MASTR-FILE-REC.
05 EMP-ID1
05 FILLER
05 EMP-NAME1
05 FILLER
05 EMP-CONTACT1
05 FILLER
05 EMP-SALARY1
05 FILLER

PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC

9(04).
X(01).
X(08).
X(01).
9(10).
X(01).
9(06)V9(02).
X(47).

WORKING-STORAGE SECTION.
01 W01-STAT01
PIC 9(02).
01 W01-STAT02
PIC 9(02).
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM INITIALIZE-PARA
PERFORM OPEN-PARA
PERFORM READ-PARA
UNTIL ( W01-STAT01 NOT = 00 )
PERFORM CLOSE-PARA
PERFORM TERMINATE-PARA.
INITIALIZE-PARA.
INITIALIZE W01-STAT01
W01-STAT02.
OPEN-PARA.
OPEN INPUT TRANS-FILE
MASTR-FILE
IF ( W01-STAT01 NOT = 00 )
OR ( W01-STAT02 NOT = 00 )
DISPLAY 'OPEN INPUT KSDS/PS FILE FAILED'
MOVE 10
TO W01-STAT01
END-IF.

READ-PARA.
READ TRANS-FILE
END-READ
*

FILE STATUS HANDLING FOR READ


EVALUATE TRUE
WHEN ( W01-STAT01 = 00 )
PERFORM RAND-READ-PARA
WHEN ( W01-STAT01 = 10 )
CONTINUE
WHEN OTHER
DISPLAY 'ERROR IN READ '
END-EVALUATE.

RAND-READ-PARA.
MOVE EMP-ID
TO EMP-ID1
READ MASTR-FILE
END-READ
EVALUATE TRUE
WHEN ( W01-STAT02 = 00 )
PERFORM DISPLAY-PARA
WHEN ( W01-STAT02 = 23 )
DISPLAY 'KEY ' EMP-ID1 'NOT FOUND'
WHEN OTHER
DISPLAY 'ERROR IN RAND READ '
END-EVALUATE.
DISPLAY-PARA.
DISPLAY '
'
'
'

|
|
|
|

'
'
'
'

EMP-ID1
EMP-NAME1
EMP-CONTACT1
EMP-SALARY1.

CLOSE-PARA.
CLOSE TRANS-FILE
MASTR-FILE
IF ( W01-STAT01 NOT = 00 )
OR ( W01-STAT02 NOT = 00 )
DISPLAY 'CLOSE INPUT KSDS/PS FILE FAILED'
END-IF.
TERMINATE-PARA.
STOP RUN.

S-ar putea să vă placă și