home *** CD-ROM | disk | FTP | other *** search
- DATABASE leads
- GLOBALS "globals.4gl"
-
- MAIN
- {
- The s_medium program computes the value of each sale for each
- salesperson in a specified period and feeds them to the
- r_medium report. The r_medium report prints the total value
- of the sales for each employee as well as the grand total
- for the period. The output is sent to medium.out.
- }
- DEFINE pr_ssum RECORD
- tot MONEY,
- emp SMALLINT,
- sdate DATE,
- edate DATE
- END RECORD
-
- DECLARE c_sales CURSOR FOR
- SELECT sale.quantity * product.price * (1 - sale.discount/100),
- contact.empnum
- INTO pr_ssum.tot,
- pr_ssum.emp
- FROM sale,
- product,
- contact
- WHERE sale.cnum = contact.cnum
- AND sale.pcode = product.pcode
- AND contact.cdate BETWEEN pr_ssum.sdate AND pr_ssum.edate
- ORDER BY contact.empnum
-
- PROMPT "Start Date (mm/dd/yy): " FOR pr_ssum.sdate
- PROMPT "End Date (mm/dd/yy): " FOR pr_ssum.edate
- START REPORT r_medium
- FOREACH c_sales
- OUTPUT TO REPORT r_medium(pr_ssum.*)
- END FOREACH
- FINISH REPORT r_medium
- END MAIN
-
- REPORT r_medium(rr)
- DEFINE rr RECORD
- tot MONEY,
- emp SMALLINT,
- sdate DATE,
- edate DATE
- END RECORD
-
- OUTPUT
- REPORT TO "medium.out"
-
- FORMAT
- PAGE HEADER
- PRINT "Sales Summary by Salesperson"
- PRINT "For the Period ", rr.sdate, " through ", rr.edate
- SKIP 2 LINES
- PRINT "Employee", COLUMN 20, "Total"
- PRINT "Number", COLUMN 20, "Sales"
- SKIP 1 LINE
-
- AFTER GROUP OF rr.emp
- PRINT rr.emp, COLUMN 15, GROUP SUM(rr.tot) USING "###,##&.&&"
-
- ON LAST ROW
- SKIP 1 LINE
- PRINT "Total", COLUMN 13, SUM(rr.tot) USING "#,###,##&.&&"
- END REPORT
-