home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
utils
/
miscutil.zip
/
DBRELATE.ZIP
/
RELATION.PRG
< prev
next >
Wrap
Text File
|
1987-07-22
|
3KB
|
104 lines
* NON-LINEAR RELATION CHAIN DEMONSTRATION.
* July 22, 1987 GREGORY J. SCOTT 409-833-6226 (w) 838-2195 (h)
PUBLIC CLIPPER
SET TALK OFF
SET SAFETY OFF
SET HEADINGS ON
CLOSE databases
SELECT A
USE ATIME && fields: DATE, JOB_NUM, ID, HOURS, PAY
INDEX ON JOB_NUM+ID+DTOC(DATE) TO ATIME
SELECT B
USE BROSTER && fields: ID, CLASS
INDEX ON ID TO BROSTER
SELECT C
USE CJOBS && fields: JOB_NUM, RATECODE
INDEX ON JOB_NUM TO CJOBS
SELECT D
USE DJOBRATE && fields: JOBRATE, CLASS, PAYRATE
INDEX ON JOBRATE+CLASS TO DJOBRATE
IF CLIPPER
SELECT ATIME
SET RELATION TO ID INTO BROSTER,;
TO JOB_NUM INTO CJOBS
SELECT C
SET RELATION TO CJOBS->RATECODE+BROSTER->CLASS INTO DJOBRATE
ELSE
SELECT A
SET RELATION TO ID INTO BROSTER
LIST STRU TO PRINTER
LIST TO PRINTER
SELECT B
SET RELATION TO ATIME->JOB_NUM INTO CJOBS
LIST STRU TO PRINTER
LIST TO PRINTER
SELECT C
SET RELATION TO CJOBS->RATECODE+BROSTER->CLASS INTO DJOBRATE
LIST STRU TO PRINTER
LIST TO PRINTER
SELECT D
LIST STRU TO PRINTER
LIST TO PRINTER
ENDIF
SET ALTERNATE TO RELATION.TXT
SET ALTERNATE ON
SELE A
REPLACE ALL PAY WITH 0 && UNDO CALCULATIONS IF PROGRAM IS RERUN.
GOTO TOP
? "LIST DATABASE CONTENTS TO DEMONSTRATE RELATION IS WORKING."
? "date job id hours pay c r payrate"
DO WHILE .NOT. EOF()
? DATE, JOB_NUM, ID, HOURS, PAY, B->CLASS, C->RATECODE, D->PAYRATE
SKIP 1
ENDDO
REPLACE ALL PAY WITH HOURS*DJOBRATE->PAYRATE
GOTO TOP
? "LIST DATABASE CONTENTS TO DEMONSTRATE CROSS-FILE REPLACE"
? "date job id hours pay c r payrate"
DO WHILE .NOT. EOF()
? DATE, JOB_NUM, ID, HOURS, PAY, B->CLASS, C->RATECODE, D->PAYRATE
SKIP 1
ENDDO
GOTO TOP
INDEX ON BROSTER->CLASS TO ATIMECLS
GOTO TOP
? "LIST DATABASE TO DEMONSTRATE CROSS-FILE INDEX ORDER"
? "date job id hours pay c r payrate"
DO WHILE .NOT. EOF()
? DATE, JOB_NUM, ID, HOURS, PAY, B->CLASS, C->RATECODE, D->PAYRATE
SKIP 1
ENDDO
GOTO TOP
IF CLIPPER
TOTAL TO ECLASSUM ON BROSTER->CLASS FIELDS HOURS
ELSE
TOTAL TO ECLASSUM ON BROSTER->CLASS
ENDIF
SELE E
USE ECLASSUM
? "LIST TOTAL ON FILE TO DEMONSTRATE CROSS-FILE TOTAL ON"
LIST
SELE D && A POSSIBLY MORE DIFFICULT CROSS-FILE REPLACE
GOTO TOP
REPLACE ALL PAYRATE WITH 0
LIST
SELE A
REPLACE ALL D->PAYRATE WITH PAY/HOURS
SELE D
LIST && IT IS DUBIOUS IF THIS WORKS AT ALL IN CLIPPER.
* IT DOES WORK WELL IN DBASE!
SET ALTERNATE TO
TYPE RELATION.TXT TO PRINT