|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3328 (0xd00)
Types: TextFile
Names: »CPRINT.PRG«
└─⟦96695c514⟧ Bits:30005859 DBase II og SuperCalc2
└─⟦this⟧ »CPRINT.PRG«
* Program CPRINT.cmd 01 March 1983
* COPYRIGHT (c) 1983 ASHTON-TATE
* Programmed by joe stegman for dBASE II(tm) release 2.4
* Called from CMAIN.cmd
* This program will print tickle cards from the TEXT database file.
* The sequence of the report is based on the index in use when this command
* file is executed. If sequence is by KEYWORD then the user is prompted to
* enter a keyword to FIND, then a range of dates to print for the keyword.
* If the TICKLE.ndx file is set then the user will be prompted for a range
* of dates to print. Then all cards falling within that range will be
* printed.
* clear menu from screen
@ 18,0
@ 19,0
@ 20,0
@ 21,0
@ 22,0
* erase the prompt line
@ 23,0 SAY ' '
* initialize the KEYWORD expression used in the report command
STORE ' ' TO expression,lkup
STORE # TO rec:no
IF .not. tklindex
* Printing report based on a keyword
STORE '.and. !(KEYWORD) = lkupkey' TO expression
STORE ' ' TO lkupkey
STORE F TO ok
DO WHILE .not. ok
STORE T TO ok
STORE ' ' TO lkupkey
@ 19,0 SAY 'Enter keyword to report on, or (/) to exit ';
GET lkupkey PICT '!!!!!!!!!!'
READ
IF lkupkey='/'
rele expression, lkupkey, ok, lkup
return
ENDIF
FIND '&lkupkey'
@ 19,55
IF #=0
@ 19,55 SAY '** Keyword Not Found **'
STORE F TO ok
ENDIF
ENDDO
ENDIF
* read the dates... But only if the user wants to continue
* or if the index is set to the tickle index.
* set the index to tickle to test for a valid date entry
set index to tickle,keyword
STORE ' / / ' TO strtdate,stopdate
STORE F TO ok
DO WHILE .not. ok
STORE T TO ok
@ 21,0 SAY 'Enter Start date for range of cards to print ';
GET strtdate PICT '99/99/99'
READ
IF strtdate=' / / '
* time to return to cmain
RELE startdate,stopdate,lkupdate,lkupkey,ok
RETURN
ENDIF
STORE $(strtdate,7,2) +$(strtdate,1,2) +$(strtdate,4,2) TO lkupdate
FIND &lkupdate
IF #=0
@ 21,55 SAY '** Date Not In Index'
STORE F TO ok
ENDIF
ENDDO
* get the stop date for the range
STORE strtdate TO stopdate
STORE F TO ok
DO WHILE .not. ok
STORE T TO ok
@ 22,0 SAY 'Enter Stop date of range of cards to print ';
GET stopdate PICT '99/99/99'
read
IF stopdate < strtdate
@ 22,55 SAY '** Date Invalid **'
STORE F TO ok
ENDIF
ENDDO
*
STORE ' ' TO DVC
DO WHILE .NOT. DVC$'PS'
@ 23,0 SAY 'Want report to P)rinter or to S)creen. Enter P/S ?';
GET dvc PICT '!'
READ
ENDDO
STORE " " TO dest
IF DVC='P'
STORE 'TO PRINT' TO dest
ENDIF
IF .not. tklindex
* looking in the Keyword index file
SET index TO keyword,tickle
* STORE lkupkey+lkupdate TO lkupkey
FIND &lkupkey
LOCATE next 65535 for tkl:date >= strtdate .and. !(keyword)=lkupkey
ELSE
FIND &lkupdate
ENDIF
REPORT FORM tickle WHILE tkl:date <= stopdate &expression &dest
ENDIF
IF dvc='S'
ACCEPT 'Press RETURN to display the main menu ' TO dvc
ENDIF
RELE expression, lkupkey, ok, lkup, strtdate, stopdate, dest, dvc, lkupdate
RETURN
* eof cprint.cmd
«eof»