EXAMPLE PROGRAM 3 (Matching-Record Technique)
Dans cet exemple, le fichier TRWEEK est défini en tant que fichier d'entrée secondaire. Les enregistrements EMPREC et RCWEEK sont traités comme des enregistrements correspondants, la zone ENUM des deux enregistrements étant affectée de la valeur de niveau de correspondance M1. Les indicateurs d'identification des enregistrements 01 et 02 sont affectés aux enregistrements pour contrôler le traitement des différents types d'enregistrement.
*****************************************************************
* PROGRAM NAME: YTDRPT5 *
* RELATED FILES: EMPMST (Physical File) *
* TRWEEK (Physical File) *
* PRINT (Printer File) *
* DESCRIPTION: This program shows an example of processing *
* records using the matching record method. *
* This program prints out each employee's *
* information, weekly worked hours and amount *
* of overtime. *
*****************************************************************
FPRINT O F 80 PRINTER
FEMPMST IP E K DISK
FTRWEEK IS E K DISK
IEMPREC 01
I ENUM M1
IRCWEEK 02
I ENUM M1
C 01 Z-ADD 0 TOTHRS 5 1
C 01 Z-ADD 0 TOTOVT 5 1
C 01 SETOFF 12
C*
C MR IF (*IN02='1')
C ADD EHWRK TOTHRS
C EHWRK SUB ENHRS OVTHRS 4 111
C 11 ADD OVTHRS TOTOVT
C SETON 12
C ENDIF
OPRINT H 1P 2 6
O 50 'YTD PAYROLL SUMMARY'
O D 01 1
O 12 'EMPLOYEE: '
O ENAME 32
O D 01 1
O 12 'SERIAL #: '
O ENUM 17
O 27 'DEPT: '
O EDEPT 30
O 40 'TYPE: '
O ETYPE 41
O D 02 MR 1
O 8 'WEEK #'
O WEEKNO 10
O 32 'HOURS WORKED = '
O EHWRK 3 38
* These 2 detail output lines are processed if *IN01 is on
* and no matching records found (that means no RCWEEK records
* for that employee found). Obviously, the total fields
* (TOTHRS and TOTOVT) are equal to zeros in this case.
O D 01NMR 1
O 70 'YTD HOURS WORKED = '
O TOTHRS 3 78
O D 01NMR 1
O 70 'YTD OVERTIME HOURS = '
O TOTHRS 3 78
* These 2 total output lines are processed before performing
* detail calcualations. Therefore, the total fields
* (TOTHRS and TOTOVT) for the employee in the last retrieved
* record will be printed out if the specified indicators are on.
O T 01 12 1
O OR LR 12
O 70 'YTD HOURS WORKED = '
O TOTHRS 3 78
O T 01 12 1
O OR LR 12
O 70 'YTD OVERTIME HOURS = '
O TOTOVT 3 78