Easytrieve Code
***************************************************
* EASYTRIEVE SAMPLE PROGRAM 1 *
* *
* THIS PROGRAM DOES THE FOLLOWING: *
* *
* A) CALCULATES BONUS AMOUNT FOR OFFICERS *
* B) PRODUCES A REPORT OF CALCULATED BONUSES *
***************************************************
FILE FILEIN DISK F (80)
COMPANY 1 2 A
BRANCH 3 3 A
OFFICER 6 4 A
WAGE 10 08 N 2
RATE 18 05 N 3 MASK ('ZZ.999')
BONUS W 9 N 2
JOB INPUT FILEIN
IF WAGE NUMERIC AND RATE NUMERIC
BONUS = WAGE * (RATE / 100)
PRINT REPORT1
END-IF
REPORT REPORT1 LINESIZE 70 SUMSPACE 0
CONTROL FINAL COMPANY
SUM WAGE BONUS
TITLE 1 'EXECUTIVE BONUS REPORT'
LINE 1 COMPANY BRANCH OFFICER RATE WAGE BONUS
|
Spectrum Writer Code
***************************************************
* SPECTRUM WRITER SAMPLE PROGRAM 1 *
* *
* THIS PROGRAM DOES THE FOLLOWING: *
* *
* A) CALCULATES BONUS AMOUNT FOR OFFICERS *
* B) PRODUCES A REPORT OF CALCULATED BONUSES *
***************************************************
FILE: FILEIN DDNAME(FILEIN) LRECL(80)
FIELD: COMPANY LEN(2)
FIELD: BRANCH LEN(3)
FIELD: OFFICER LEN(4)
FIELD: WAGE LEN(8) TYPE(NUM) DEC(2)
FIELD: RATE LEN(5) TYPE(NUM) DEC(3)
FORMAT(PIC'ZZ.999')
INPUT: FILEIN
INCLUDEIF: #ISNUM(WAGE) AND #ISNUM(RATE)
COMPUTE: BONUS(2 NOACCUM) = WAGE * (RATE / 100)
SORT: COMPANY(BREAK)
TITLE: 'EXECUTIVE BONUS REPORT'
COLUMNS: COMPANY BRANCH OFFICER RATE WAGE BONUS
|
|
|
Spectrum Writer Code
(With Full Explanatory Comments)
***************************************************
* SPECTRUM WRITER SAMPLE PROGRAM 1 (COMMENTED) *
* *
* THIS PROGRAM DOES THE FOLLOWING: *
* *
* A) CALCULATES BONUS AMOUNT FOR OFFICERS *
* B) PRODUCES A REPORT OF CALCULATED BONUSES *
***************************************************
***************************************************
*** FIRST WE DEFINE THE INPUT FILE AND ITS FIELDS**
*** LIKE EASYTRIEVE'S "FILE" STATEMENT. **
***************************************************
FILE: FILEIN DDNAME(FILEIN) LRECL(80)
FIELD: COMPANY LEN(2)
FIELD: BRANCH LEN(3)
FIELD: OFFICER LEN(4)
FIELD: WAGE LEN(8) TYPE(NUM) DEC(2)
FIELD: RATE LEN(5) TYPE(NUM) DEC(3)
FORMAT(PIC'ZZ.999')
***************************************************
***** REPORT INPUT IS THE FILE WE JUST DEFINED **
***** LIKE EASYTRIEVE'S "INPUT" STATEMENT. **
***************************************************
INPUT: FILEIN
***************************************************
***** ONLY INCLUDE RECORDS WHERE WAGE AND RATE **
***** ARE NUMERIC. **
***************************************************
***** NOTE THAT THIS IS TO MATCH THE EASYTRIEVE **
***** EXAMPLE. BUT SPECTRUM WRITER, UNLIKE **
***** EASYTRIEVE, ALWAYS TESTS FOR NUMERIC DATA **
***** BEFORE PERFORMING OPERATIONS ON IT, IN **
***** ORDER TO AVOID S0C7 CRASHES. **
***************************************************
INCLUDEIF: #ISNUM(WAGE) AND #ISNUM(RATE)
***************************************************
***** DEFINE THE BONUS FIELD (KEEP 2 DECIMAL *****
***** PLACES, AND DO NOT INCLUDE IN TOTALS) *****
***************************************************
COMPUTE: BONUS(2 NOACCUM) = WAGE * (RATE / 100)
***************************************************
***** SPECIFY SORT ORDER AND BREAKS FOR REPORT. **
***** LIKE EASYTRIEVE'S "CONTROL" STATEMENT **
***************************************************
***** (WE DON'T NEED TO SPECIFY "FINAL". **
***** WE GET IT BY DEFAULT. LIKEWISE, THE **
***** WAGE AND BONUS COLS ARE TOTALED BY DEFAULT.**
***************************************************
SORT: COMPANY(BREAK)
***************************************************
***** REPORT TITLES. **
***** LIKE EASYTRIEVE'S "TITLE" STATEMENT **
***************************************************
TITLE: 'EXECUTIVE BONUS REPORT'
***************************************************
***** COLUMNS OF DATA WANTED IN BODY OF REPORT **
***** LIKE EASYTRIEVE'S "LINE" STATEMENT. **
***************************************************
COLUMNS: COMPANY BRANCH OFFICER RATE WAGE BONUS
|