Вы находитесь на странице: 1из 60

TABLE OF CONTENTS

Introduction to Easytrieve Capabilities Structure of Easytrieve program Environment Definition Data Definition Processing Activities Decision and Branching Logic Input & Output Specification Report Processing Table Processing Synchronized File Processing

INTRODUCTION
Easytrieve is an information retrieval and data management tool designed to simplify computer programming and to perform complex programming tasks.

CAPABILITIES
Easytrieve has all the capabilities of a standard retrieval system as well as the comprehensiveness and flexibility required for complex reports, data extraction and file maintenance requirements.

CAPABILITIES
File Access
Accepts any number of input files Processes QSAM, ISAM, VSAM , IMS/DLI files, IDMS & SQL Synchronizes file processing Processes data in alphabetic, numeric, packed, packed-unsigned or binary format Provides flexible edit masks Provides default report headings Allows multiple use of field definitions with COPY keyword

CAPABILITIES
Logic Process
Provides standard programming constructions Provides powerful calculation capabilities Performs special tests useful in editing Supports Move for corresponding fields Includes special start & finish procedures Sorts on any number of keys

CAPABILITIES
Report Output
Automatic formatting of reports & customizing options Provides Control breaks on any number of keys Automatically creates summary file for subtotals Processes only fields that are required for REPORT Allows explicit positioning of print layout for pre-printed forms

MODES OF OPERATION
Easytrieve provides five modes of operation that facilitate production as well as ad-hoc programming. Syntax check source statements Syntax check and compile source statements Syntax check, compile and execute source statements (Default) Syntax check and compile source statements and produce an object module Execute previously link edited programs

STRUCTURE OF PROGRAM
Environment section (Optional)
Library section (Optional if no files) Activity section (s)

PARM (parameters)

FILE (parameters) DEFINE fields PROGRAM (statements) JOB (Statements) (Job procedures) SORT (Sort procedures) SCREEN (statements)

SAMPLE PROGRAM
FILE PERSNL FB(150 1800) EMP# 9 5 NAME 17 8 GROSS 94 4 DEPT 98 3 N A P N

JOB INPUT PERSNL NAME FIRST-PROGRAM PRINT PAY-RPT


REPORT PAY-RPT LINESIZE 80 TITLE 01 PERSONNEL REPORT EXAMPLE-1 LINE 01 DEPT NAME EMP# GROSS

SAMPLE REPORT
30/06/02 DEPT 903 943 915 935 911 914 917 918 911 932 921 911 943 PERSONNEL REPORT EXAMPLE-1 NAME WIMN BERG CORNING NAGLE ARNOLD MANHART TALL BRANDOW LARSON BYER HUSS POWELL MCMAHON EMP# 12267 11473 02688 00370 01963 11602 11931 02200 11357 11467 11376 11710 04234 GROSS 373.60 759.20 146.16 554.40 445.50 344.80 492.26 804.64 283.92 396.68 360.80 243.20 386.40 PAGE 1

PARM Statement:

ENVIRONMENT DEFINITION

SYNTAX - Terminates Easytrieve processing after completion of the syntax check operation. Allows early checkout of program before data files necessary for execution are available. COMPILE - Terminates Easytrieve processing after completion of the syntax check and compile operations. If PARM statement is not used, the default is syntax check, compile and execute. An eg. PARM LINK (pgmname R) + ABEXIT (SNAP) + DEBUG (DMAP) + XREF (LONG) + LIST (PARM)

ENVIRONMENT DEFINITION
PARM statement customizes the operating environment for the duration of a programs compilation & execution PARM establishes program level parameters in the following areas : SYNTAX, COMPILE, LINK determine the mode of execution BIND, PLAN, PREPNAME, SQLID, SSID and USERID establish parameters for SQL execution

DATA / LIBRARY DEFINITION


FILE Statement
All files and databases that the program references must be defined using the FILE statement. FILE filename File Type

=> [IS/ VIRTUAL/ DLI/ VS ([ES] [CREATE [RESET]/ UPDATE] Device Type => [CARD/PUNCH/PRINTER/DISK/TAPE] Record Format => [F/V/U/FB/VB/VBS]

DATA / LIBRARY DEFINITION


DEFINE Statement
Fields are defined in the library using DEFINE statement. Two categories of data can be defined : 1. File data 2. Working Storage data Field names must be unique within a file or working storage. The keyword DEFINE is optional within Library section

Basic syntax of DEFINE statement is as follows :

DATA / LIBRARY DEFINITION

DEFINE field-name Location Length S/W DataFormat [MASK ( [letter] [BWZ] [lit-4])] [VALUE lit-5] Location - specifies the location of the fields leftmost byte Length - specifies the length of the field S/W - specifies the storage of the field DataFormat - specifies data format(A/N/P/B/U) MASK - Optional parameter specifying pattern edit mask for printing numeric fields on a report. letter-identifier for a mask specified with lit-4 BWZ - Blank When Zero lit-4 - print edit mask (9/Z/*/-/$/X) VALUE - To initialize working storage fields to specific values

PROCESSING ACTIVITIES
The activity definition section of the program contains the statements that perform the tasks of reading in, processing and writing out data. Four processing activities PROGRAM, JOB, SORT and SCREEN. PROGRAM is a simple top-down set of instructions which is used to initiate other activities. JOB activities read data from input files, examine and manipulate this data and write data to output files and initiate reports. SORT activities sequence the files in the order specified by parameters of this statement. SCREEN activities define screen-oriented transactions.

PROGRAM ACTIVITY
Program identifies and initiates a processing activity PROGRAM NAME program-name [ activity ] [USING field-name1 GIVING field-name2] Program-name - names the processing activity Activity - activity which is initiated by the program Field-name1 - field to which parameter is passed from parent program Field-name2 - field containing the parameter you return to the parent program

PROCEDURES
Procs Separate modules of program code used to perform specific tasks Defined at the end of each activity Local to the activity after which they are coded

JOB STATEMENT
JOB statement identifies the files whose records are automatically provided to the program (automatic input) JOB [INPUT {file-name KEY(field-name)}{NULL}] [START start-proc-name] [FINISH finish-proc-name] [NAME job-name] INPUT file-name - Optional parameter identifying automatic input - provides the name of the file used in automatic input KEY field-name - identifies fields used in synchronized file processing NULL - inhibits automatic input. Normally, a job is implicitly stopped when the automatic file is exhausted. With NULL, the program continues until a STOP statement is executed.

JOB STATEMENT
JOB statement identifies the files whose records are automatically provided to the program (automatic input) JOB [INPUT {file-name KEY(field-name)}{NULL}] [START start-proc-name] [FINISH finish-proc-name] [NAME job-name] START - The optional START start-proc-name parameter identifies a procedure to be executed during the initiation of the JOB. FINISH - The optional FINISH finish-proc-name parameter identifies a procedure to be executed during the normal termination of the JOB. NAME job-name - names the JOB activity.Used for documentation only.

JOB CONTROL FLOW


Reset working storage Open I/O files [PERFORM start-proc] JOB retrieve automatic input IF EOF . . . reset working storage closes I/O files [PERFORM finish-proc] wrap-up REPORTS go to the next JOB/SORT activity END-IF IF . ... END-IF

Step 1
Logic generated by JOB

Step 2 Data examination and Manipulation statements

SORT STATEMENT
SORT statement orders any file which can be processed sequentially.

SORT file-name-1 TO file-name-2 USING (field-name [D]) [BEFORE proc-name] [NAME sort-name] file-name-1 - name of the input file to be sorted file-name-2 - name of the sorted output file (can be the same as file-name-1 except in case of VSAM and ISAM) USING field-name [D] - Identifies data fields of file-name-1 used as sort keys. Sub-parameter D - for descending order. BEFORE proc-name - Optional parameter that identifies a procedure that prescreens, modifies and selects input records for the sort. NAME sort-name- names the SORT activity.Used for documentation only

EG. OF SORT PROCEDURE


* FILE PERSNL FB(150 1800) EMP# 9 5 N GROSS 94 4 P 2 * FILE SORTER F 150 VIRTUAL * SORT PERSNL + TO SORTER + USING EMP# + BEFORE INCLUDE-RECS * INCLUDE-RECS. PROC IF GROSS LT 29999 SELECT END-IF END-PROC *

SCREEN PROCESSING
The SCREEN statement defines and initiates a SCREEN activity. A SCREEN activity defines a transaction-oriented processing activity under the control of keys pressed by the terminal operator. Statements can also be inserted in screen procedures to retrieve and maintain files and databases. SCREEN NAME screen-name [UPPERCASE ROWCOUNT rows LINESIZE columns] Screen-name - name of the screen. For documentation. Rows - number of rows to be displayed on the screen Columns - number of columns on a line Structure of SCREEN statement SCREEN statement Screen declaration statements KEYs, TITLEs, ROWs (in any order) Screen procedures (both special-named and user-defined, in any order)

SAMPLE SCREEN
DEFINE WS-REPLY W 1 A SCREEN NAME MAIN-MENU TITLE 'Employee File Main Menu' ROW 6 COL 10 'Type an option, then press Enter.' ROW 8 COL 10 'Option ===>' WS-REPLY VALUE ('V' 'E' 'D' 'X') ERROR 'Please type V, E, D, or X' ROW 10 COL 22 'V View employee' ROW 11 COL 22 'E Edit employee' ROW 12 COL 22 'D Delete employee' ROW 13 COL 22 'X Exit' KEY F1 NAME 'Help' IMMEDIATE KEY F3 NAME 'Exit' EXIT KEY F12 NAME 'Cancel' EXIT IMMEDIATE

|-----------------------------------------------------------------------------------------------------------------------------------------------| | Employee File Main Menu | | Type an option, then press Enter. | | | | Option ===> | | V View employee | | E Edit employee | | D Delete employee | | X Exit | | | | F1=Help F3=Exit F12=Cancel

DECISION & BRANCHING LOGIC


IF condition statements ELSE-IF (optional) statements ELSE (optional) statements END-IF DO WHILE / DO UNTIL condition statements ENDDO

DECISION & BRANCHING LOGIC


CASE field-name WHEN condition statements OTHERWISE condition statements END-CASE

GOTO {label/JOB}
PERFORM proc-name EXECUTE job-name|sort-name|screen-name STOP [EXECUTE]

INPUT / OUTPUT SPECIFICATION


EASYTRIEVE provides three levels of I/O Automatic Controlled Data base

INPUT / OUTPUT SPECIFICATON


Automatic I/O provides sequential reading of a data file and production of one or more reports. Statements supporting this level are JOB - specifies the input file DISPLAY - produces printed o/p not directly supported by reports PRINT - initiates report output Controlled I/O provides the capability to process any sequential or keyed file (ISAM/VSAM). Controlled I/O statements are GET - sequentially reads one record POINT - positions to a particular record for subsequent sequential I/O PUT - sequentially writes one record READ - reads one keyed record WRITE - rewrites, adds or deletes one keyed record Database I/O provides access to IMS, DB2 and IDMS databases.

DISPLAY STATEMENT
DISPLAY [file-name] [{TITLE|NOTITLE} / SKIP lit-1 / CONTROL lit-2] [lit-3 / field-name / +lit-4 / - lit-4/ COL lit-5] file-name The - Optional parameter specifying destination of the DISPLAYED data. named file should be designated as a PRINTER file. The default is SYSPRINT. lit-3/field name - Specify the data to be printed +lit-4 / -lit-4 - Adjustment of horizontal spacing between displayed items COL lit-5 - Specifies precisely where data is placed on the print line

PRINT STATEMENT
PRINT report-name PRINT statement initiates report output by causing the named report to extract the current values of the fields to be output and to format them according to the specifications in the report declaratives. The next statement to be executed after the PRINT statement is the associated REPORT statement.

GET & PUT STATEMENTS


GET statement makes the next or previous sequential record of the named file available for processing.
GET file-name [PRIOR] PUT outputs records to SEQUENTIAL files and also adds consecutive records to an INDEXED or RELATIVE file. PUT file-name-1 [from file-name-2]

POINT STATEMENT
POINT statement initiates a search for a position within an indexed or relative record file, based on a comparison between keys in the file and a search value specified in the statement. POINT file-name {EQ/=/GE/>=} {field-name/literal} POINT statement only locates the specified position of the record in the file. GET statement is necessary to retrieve the data for processing.

POINT STATEMENT EXAMPLE


FILE PAYFILE VS REC-KEY 1 3 N JOB INPUT NULL POINT PAYFILE GE 500 GET PAYFILE DO WHILE (REC-KEY < 600 AND NOT EOF PAYFILE) PRINT PAY-RPT GET PAYFILE ENDDO STOP REPORT PAY-RPT Above statements retrieve those records with keys between 500 and 599 inclusive from file PAY-FILE and output them to report PAY-RPT.

READ STATEMENT
READ statement provides random access to keyed and relative-record VSAM and ISAM files. READ file-name KEY field-name [STATUS] file-name - identifies the file you wish to access KEY field-name - search value to identify the specific record to be retrieved. STATUS - execution of the READ statement sets a return code in the FILE-STATUS field of the input file to indicate the success or failure of the operation.

WRITE STATEMENT
WRITE statement is used in the maintenance of keyed and relative-record VSAM files. WRITE updates or deletes the current record of the named file or adds new records. WRITE file-name-1 [DELETE / UPDATE / ADD] [FROM file-name-2] file-name-1 - Name of the file to be modified DELETE / UPDATE / ADD - Specify the activity to be performed. Required for deleting or adding records and optional for update activity. Default is UPDATE if the parameter is not coded. FROM file-name-2 - WRITE copies the current record of file-name-2 to file-name-1 for either an UPDATE or an ADD operation. This parameter is invalid for DELETE operation.

READ / WRITE EXAMPLE


FILE PAYFILE VS UPDATE EMPL# 1 5 N NAME 6 20 A JOB INPUT NULL EMPL# = 44152 READ PAYFILE KEY EMPL# STATUS IF FILE-STATUS NOT ZERO GOTO ERRTASK END-IF IF NAME EQ OLDNAME NAME EQ NEWNAME WRITE PAYFILE UPDATE END-IF STOP

REPORT PROCESSING
Reports are defined by the following set of statements REPORT SEQUENCE CONTROL TITLE HEADING LINE report procedures BEFORE-BREAK TERMINATION

SAMPLE PROGRAM REPORT DECLARATIVES


REPORT UPD-RPT PAGESIZE 51 LINESIZE 63 NODATE NOPAGE SEQUENCE DEPT LAST-NAME CONTROL DEPT TITLE 1 ANNUAL UPDATE REPORT - SALARIED EMPLOYEES HEADING LAST-NAME NAME HEADING SERVICE SERV LINE DEPT LAST-NAME SERVICE RAISE SALARY
The above report is ordered by department number and within each department, by lastname. The report is segmented by department, the dollar values are subtotalled for each department. There are 5 columns spaced three characters apart across the 63character-wide report.

REPORT TYPES
Standard format - Default format consisting of Title area, Heading area and Report Body.
TITLE AREA HEADING AREA

REPORT BODY

PAGESIZE

Label Format - Includes mailing labels, form-letters and other special-purpose reports.
SIZE DOWN

LINESIZE

LINESIZE

REPORT STATEMENT
REPORT report-name + [SUMMARY] + Format Determination Parameters [SUMFILE sum-file-name] + [LABELS ([ACROSS lit-1] + Label Parameters [DOWN lit-2] + [SIZE lit-3] + [NEWPAGE]] + [PRINTER file-name] + File Directing Parameters [PAGESIZE lit-4] + Spacing control Parameters [LINESIZE lit-5] + [SPREAD] + [NOSPREAD] + [NOADJUST] + [NODATE] + [NOPAGE] + [LIMIT lit-6] + Testing aids Parameters [EVERY lit-7]

REPORT STATEMENT
report-name - Names the report SUMMARY - Inhibits printing of detail data on control reports. Only quantitative fields are totaled (those defined with decimal positions) SUMFILE sum-file-name - SUMFILE is used to generate a summary file that contains the control and summary field values. Summary-file-name identifies the file to contain the summary data. LABELS - ACROSS specifies the number of labels printed side-by-side across the page, DOWN specifies the number of print lines on each label, SIZE specifies the width of each label and NEWPAGE prints first line of each label at the top of a page. PRINTER file-name - Identifies a file-name other than the default print destination

REPORT STATEMENT
PAGESIZE - sets the number of print lines per page LINESIZE - sets the number of print columns on each report line SPREAD/NOSPREAD - Adjusts column spacing on the report.SPREAD maximizes number of spaces between columns. NOSPREAD, the default, puts three spaces between columns and centers the report. NOADJUST - Left justifies the report. Centering is the default. NODATE - Suppresses printing of date in the leftmost 8 columns of the report title NOPAGE - Suppresses printing of characters PAGE and the page number in the rightmost 11 columns of the report title LIMIT - Specifies the number of print statements accepted for this report. Used in Testing EVERY - Specifies the occurrence value for processing every nth Print command directed to the report

SEQUENCE STATEMENT
SEQUENCE field-name-1 [D] [,field-name-2 [D]] ... Specifies the order in which the fields on the report should be ordered. Inclusion of D indicates the field is sequenced in descending order, default is ascending order.

CONTROL STATEMENT
CONTROL [field-name FINAL] [NEWPAGE/RENUM] [NOPRINT] Specifies the field name(s) on which the report should be controlled. FINAL parameter is coded to specify options for the control break which occurs at end-of-report. Following options alter the normal control break processing. NEWPAGE - causes a skip to the top of the next page after control break processing for the specified field is completed. RENUM - causes a skip to the top of the next page and resets the page number to 1 on the page following the control break. NOPRINT - suppresses printing the summary line for the specified control break.

TITLE STATEMENT
TITLE [lit-1] {field-name, lit-2, +lit-3/-lit-3/COL lit-4}

Each title line is centered horizontally within the title area of the report. Current date is printed in leftmost 8 positions unless NODATE option is specified on the REPORT statement. The word PAGE and page number are printed in rightmost 11 positions unless NOPAGE option is specified on the REPORT statement. lit-1 - Specifies the position of the title line within the title area. field-name- Specifies that the contents of the named field will appear on the title line. lit-2 - Specifies a character string (enclosed in quotes) for the title item. +lit-3 / -lit-3 - Specifies the no. of characters to be added/subtracted from the normal 3 character space between items. COL lit-4 - Specifies the column number where the 1st character of the next title item will be printed

HEADING STATEMENT
HEADING field-name (literal...) Optionally defines an alternate column heading to be printed in place of the specified field-name. field-name - Specifies the name of a field coded on the LINE statement. The value of the literal is the content of the new heading. Eg. HEADING LAST-NAME NAME Multiple literals within parentheses are stacked vertically over the column when printed. Eg. HEADING LAST-NAME (EMPLOYEE, NAME) produces EMPLOYEE NAME

LINE STATEMENT
LINE [lit-1] {field-name, lit-2, +lit-3/-lit-3/COL lit-4/POS lit-5} LINE statement defines the contents of the lines of the report. lit-1 - Specifies the position of the line within the line group when there are multiple lines. field-name- Specifies that the contents of the named field will appear on the print line. lit-2 - Specifies a character string (enclosed in quotes) for the line item. +lit-3 / -lit-3 - Specifies the no. of characters to be added/subtracted from the normal 3 character space between items. COL lit-4 - Specifies the column number where the 1st character of the next line item will be printed POS lit-5 - Enables to position items on lines 2 thru 99 so that they line up under specified items on line 1. lit-5 specifies the item number on line 1 under which the item is to be placed.

LINE STATEMENT EXAMPLE.


LINE 1 REGION + SSN + NAME + DOB LINE 2 POS 2 PHONE + POS 3 STREET + POS 4 DATE-OF-HIRE LINE 3 POS 3 CITY -2 STATE -2 ZIP Line 2 lists phone number under Social Security number, street address under name and date-of-hire under Date Of Birth. Line 3 lists the city, state and zip under Name and street address o/p : SOUTHWEST 571-40-8057 Florance Smith 11-26-72 785-4815 3250 Big street 08-03-81 Riverside CA 09265

TABLE PROCESSING
A table is a collection of uniform data records. Tables have two parts : 1. The argument uniquely identifies a table entry. 2. The description is information directly associated with the argument. Tables are defined by FILE statements in the library section. TABLE option must be coded. FILE file-name TABLE [INSTREAM / literal] The only fields defined for TABLE files are ARG (argument) and DESC (description). ARG defines the field used to search the table. DESC defines the field which contains the desired information.

TABLE PROCESSING
There are two types of TABLEs, instream and external. Instream Tables reside within your program, they are established for use when the program is compiled. Instream table data is coded immediately following the FILE statement. The word ENDTABLE indicates end of table data. External Tables are stored on files external to the program, they are established for use during initiation of the JOB activity that contains the SEARCH statement which references them.

INSTREAM TABLE EXAMPLE


FILE WEEKDAY TABLE INSTREAM ARG 1 1 A DESC 3 9 A 1 SUNDAY 2 MONDAY 3 TUESDAY 4 WEDNESDAY 5 THURSDAY 6 FRIDAY 7 SATURDAY ENDTABLE

SEARCH STATEMENT
SEARCH statement is used to access table information. SEARCH file-name WITH field-name-1 GIVING field-name-2 file-name - name of the file which describes the table and its source. WITH field-name-1 - This parameter identifies the field that contains the search argument. Field-name-1 can be defined in Working storage or in any file except a file with TABLE attribute. GIVING field-name-2 - This parameter identifies the receiving field for the results of the table search. This field can be defined in Working storage or in any file except a file with TABLE attribute

TABLE SEARCH OPERATION


FILE CALENDAR DAY-OF-WEEK 12 1 NAME-OF-DAY 14 20
FILE WEEKDAY TABLE INSTREAM ARG 1 1 A DESC 3 9 A 1 SUNDAY 2 MONDAY 3 TUESDAY 4 WEDNESDAY 5 THURSDAY 6 FRIDAY 7 SATURDAY ENDTABLE

A A

JOB INPUT CALENDAR SEARCH WEEKDAY WITH DAY-OF-WEEK GIVING NAME-OF-DAY IF WEEKDAY DISPLAY NAME-OF-DAY, IS DAY, DAY-OF-WEEK ELSE DISPLAY ****INVALID DAY OF WEEK = , DAY-OF-WEEK END-IF

SYNCHRONIZED FILE PROCESSING


Easytrieve simplifies combining data from more than one file. Has the capacity to synchronize any number of files which can be processed sequentially.

SYNCHRONIZED FILE PROCESSING EG.


FILE PERSNL FB(150 1800) OLD-EMP# 9 5 N * FILE PERSUPD EMP# 1 5 N RAISE-PERCENT 7 2 N * FILE SORTPER F 150 VIRTUAL UPD-EMP# 9 5 N NAME 17 8 A PAY-GROSS 94 4 P 2 * NEWSAL W 4 P 2 * FILE NEWPERS FB(150 1800) * FILE ERRPRINT PRINTER *

SORT PERSNL TO SORTPER USING OLD-EMP# JOB INPUT (SORTPER KEY(UPD-EMP#) PERSUPD KEY (EMP#) ) IF MATCHED NEWSAL = PAY-GROSS * (1 + RAISE-PERCENT /100) PRINT NEW-RPT PAY-GROSS = NEW-SAL END-IF IF SORTPER PUT NEWPERS FROM SORTPER ELSE DISPLAY ERRPRINT EMP# RECORD NOT MATCHED END-IF REPORT NEW-RPT LINESIZE 80 NOPAGE NODATE SEQUENCE NAME TITLE SALARY UPDATE REPORT LINE UPD-EMP# NAME PAY-GROSS NEWSAL RAISE-PERCENT END

SYNCHRONIZED FILE PROCESSING EG.

Sanjay x 4157 Kiran x 4155 Deepa x 4153