//FILEA DD * ←INPUTその1
001001001 AREC NO.1
001001002 AREC NO.2
001001004 AREC NO.3
001001005 AREC NO.4
//FILEB DD * ←INPUTその2
001001001 BREC NO.1
001001002 BREC NO.2
001001002 BREC NO.3
001001003 BREC NO.4
001001007 BREC NO.5
999999999 BREC NO.6
//FILEC DD * ←INPUTその3
001001001 CREC NO.1
001001005 CREC NO.2
001001005 CREC NO.3
001001006 CREC NO.4
001001007 CREC NO.5
999999999 CREC NO.6
//OUTFL DD DUMMY,DCB=(RECFM=FB,LRECL=100,BLKSIZE=27000) ←出力ファイル
//SYSIN DD *
LIST OFF
FILE FILEA ←INPUTその1の定義
AKEY 1 10 A
AREC 1 30 A
FILE FILEB ←INPUTその2の定義
BKEY 1 10 A
BREC 1 30 A
FILE FILEC ←INPUTその3の定義
CKEY 1 10 A
CREC 1 30 A
FILE OUTFL ←出力ファイルの定義
C1 1 30 A
C2 * 30 A
C3 * 30 A
C4 * 10 A
OUTREC 1 100 A
*
JOB INPUT (FILEA KEY(AKEY) FILEB KEY(BKEY) FILEC KEY(CKEY))
****IF MATCHED (FILEA FILEB) ←INPUT1とINPUT2がマッチした時
IF MATCHED ←全ファイルがマッチした時
DISPLAY 'MATCH!! ' AKEY
IF DUPLICATE FILEA ←INPUT1がn件ある場合
DISPLAY 'DUP AREC=' AREC
END-IF
IF DUPLICATE FILEB ←INPUT2がn件ある場合
DISPLAY 'DUP BREC=' BREC
END-IF
IF DUPLICATE FILEC ←INPUT3がn件ある場合
DISPLAY 'DUP CREC=' CREC
END-IF
MOVE AKEY TO C1 FILL '*' ←AKEYをC1に移送して余った部分に*を充填
MOVE BKEY TO C2 FILL '#' ←BKEYをC2に移送して余った部分に#を充填
MOVE CKEY TO C3 FILL '@' ←CKEYをC3に移送して余った部分に@を充填
C4 = C4 XOR C4 ←C4をNULLクリアー
PUT OUTFL
DISPLAY HEX OUTREC
ELSE ←どれかがマッチした時
IF FILEA AND FILEB ←INPUT1とINPUT2がマッチした時
DISPLAY 'FILEA AND FILEB=' AREC
IF DUPLICATE FILEA
DISPLAY 'DUP AREC=' AREC
END-IF
IF DUPLICATE FILEB
DISPLAY 'DUP BREC=' BREC
END-IF
ELSE
IF FILEA AND FILEC ←INPUT1とINPUT3がマッチした時
DISPLAY 'FILEA AND FILEC=' AREC
IF DUPLICATE FILEA
DISPLAY 'DUP AREC=' AREC
END-IF
IF DUPLICATE FILEC
DISPLAY 'DUP CREC=' CREC
END-IF
ELSE
IF FILEB AND FILEC ←INPUT2とINPUT3がマッチした時
DISPLAY 'FILEB AND FILEC=' BREC
IF DUPLICATE FILEB
DISPLAY 'DUP BREC=' BREC
END-IF
IF DUPLICATE FILEC
DISPLAY 'DUP CREC=' CREC
END-IF
ELSE ←どれもマッチしなかった場合
IF FILEA ←INPUT1だけにレコードがある場合
DISPLAY 'FILEA=' AREC
ELSE
IF FILEB ←INPUT2だけにレコードがある場合
DISPLAY 'FILEB=' BREC
ELSE
IF FILEC ←INPUT3だけにレコードがある場合
DISPLAY 'FILEC=' CREC
END-IF
END-IF
END-IF
END-IF
END-IF
END-IF
END-IF
DISPLAY '***********************************************'
/*
|