EASYTRIEVE – Sample Program – Table And Search
The Input file contains the data of all the employees as shown below
=COLS> —-+—-1—-+—-2—-+—-3—-+—-4—-+—-5
****** ***************************** Top of Data ********
000100 RAJESH SURNAME1 23125478 MECH
000200 SIVA SURNAME2 22351875 CHEM
000300 HARI SURNAME3 21357987 MCA
000400 PAVAN SURNAME4 22574821 MTEC
****** **************************** Bottom of Data ******
The output report Looks like below.
********************************* Top of Data **********************************
3/21/12 EMPLOYEES DATA PAGE 1
FIRST SECOND EMPLOYEE BRANCH
NAME NAME NUM NAME
RAJESH SURNAME1 23125478 MECHANICAL
SIVA SURNAME2 22351875 CHEMICAL
HARI SURNAME3 21357987 MASTERCOMP
PAVAN SURNAME4 22574821 MTECHNOLGY
******************************** Bottom of Data ********************************
The Code for this is provided Below:
//STEP01 EXEC PGM=EZTPA00
//INPUT DD DSN=HLQ1.INPUT01,DISP=SHR
//OUTPUT1 DD DSN=HLQ1.OUTPUT01,
// DISP=(,CATLG,DELETE),
// UNIT=SYSALLDA,SPACE=(CYL,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=100,BLKSIZE=0)
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
FILE INPUT
INREC 1 80 A
FIRST-NAME 1 6 A HEADING (‘FIRST’ ‘NAME’)
SECOND-NAME 8 8 A HEADING (‘SECOND’ ‘NAME’)
EMPLOYEE-NUM 17 8 N HEADING (‘EMPLOYEE’ ‘NUM’)
BRANCH 26 4 A HEADING (‘BRANCH’ ‘NAME’)
*
FILE OUTPUT1 PRINTER
*
FILE BRANCHID TABLE INSTREAM . * DEFINE INSTREAM REGION TABLE
ARG 1 4 A. DESC 6 10 A. * DEFINE TABLE SPECIAL FIELD IDS
CHEM CHEMICAL
MCA MASTERCOMP
MECH MECHANICAL
MTEC MTECHNOLGY
ENDTABLE
*
BRANCH-TEXT W 10 A
*
JOB INPUT (INPUT)
*
IF EMPLOYEE-NUM > 20000000
SEARCH BRANCHID WITH BRANCH GIVING BRANCH-TEXT
PRINT
END-IF
REPORT PRINTER OUTPUT1 LINESIZE 80
TITLE 01 ‘EMPLOYEES DATA ‘
HEADING BRANCH-TEXT (‘BRANCH’ ‘NAME’)
LINE 01 FIRST-NAME SECOND-NAME EMPLOYEE-NUM BRANCH-TEXT
/*
Explaining concepts used in this program:
-
TABLE – we can define a table in the FILE section. This is used when we need a collection of uniform data records. In this example, the branch needs to be expanded to branch name. So we have declared the file BRANCHID as TABLE and mentioned 2 columns in it.
- BRANCH is specified as first ARG, which should be in ascending order. This is used as key while searching the table.
- BRACH NAME is the DESC field, that has the desired information
Table can be internal (as provided in the above example) or can be defined as an external file.
-
SEARCH – It searches the file-name with ARG (BRANCH) to give DESC (BRANCH NAME)
SEARCH file-name WITH field-name-1 GIVING field-name-2
SEARCH BRANCHID WITH BRANCH GIVING BRANCH-TEXT
- HEADING – When used, we get the header as mentioned here in the final Report. This is used at the field declaration process. This can also be done in REPORT section. Here we gave the statement as HEADING (‘FIRST’ ‘NAME’) as we have space between FIRST and NAME, we got the HEADER in two rows.
- Here when we provide the option of PRINTER for output file, the default length of output file is taken as 133 and RECFM as FA (printer file). But LINESIZE provided in the REPORT section, defines the length the report to be displayed in the output file.
- If we have only single report for the whole program, it is not necessary to provide the report name at PRINT statement and REPORT statement.
-
HEADING in the report section gives a header name for the BRANCH-TEXT as BRANCH NAME
——————————————————————————————————–
In United States, If you would like to Earn Free Stocks, Credit card Points and Bank account Bonuses, Please visit My Finance Blog
——————————————————————————————————–
You may also like to look at:
Working on Mainframes – Is Change to a different technology necessary |