* DATE 05/08/85 16:32 * action.ref STOR CHR(peek (063)) TO dr REST from rdata additive * make sure index is in right order STOR 'Y' TO command ERAS STOR 'A' TO select @ 05,10 SAY 'This module print a list of all references in the file which have' @ 06,10 SAY "an 'ACTION' notation. You can select a specific ACTION LETTER" @ 07,10 SAY 'or all files which have an action notation.' STOR 'A' TO selec @ 13,10 SAY 'Do you want the report alphabetically by uthor or itle ? ' @ 13,74 GET selec PICTURE '!' READ DO WHIL @(selec,'AT')=0 @ 13,74 GET selec PICTURE '!' READ ENDD CLEA GETS IF selec = 'A' SET index TO &dr.:&aindex ELSE SET INDEX TO &dr.:&tindex ENDI RELE selec GO TOP STOR 'X' TO act @ 15,10 SAY "What ACTION letter shall we report on ('X' for all) ? " @ 15,74 GET act PICTURE '!' READ IF act <> ' ' REST from printrf.dat additive ERAS STOR 0 TO pagen STOR 0 TO counter IF PRINTER = 'Y' SET PRINT ON SET MARGIN TO 5 IF SHIFT = 'Y' SET CONSOLE OFF ? CHR(chr121) + CHR(chr122) + CHR(chr123) SET CONSOLE ON ENDI shift ENDI printer IF act = 'X' LOCA for action <> ' ' ELSE LOCA for action = '&act' ENDI IF .NOT. EOF STOR t TO more ELSE STOR f TO more ENDI DO WHIL more * do page counter etc IF $(date(),4,1) = '0' STOR $(date(),5,1) TO date2 ELSE STOR $(date(),4,2) TO date2 ENDI DO CASE CASE $(date(),1,2) = '01' STOR 'January ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '02' STOR 'February ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '03' STOR 'March ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '04' STOR 'April ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '05' STOR 'May ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '06' STOR 'June ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '07' STOR 'July ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '08' STOR 'August ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '09' STOR 'September ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '10' STOR 'October ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '11' STOR 'November ' + date2 + ', 19' + $(date(),7,2) TO date1 CASE $(date(),1,2) = '12' STOR 'December ' + date2 + ', 19' + $(date(),7,2) TO date1 ENDC STOR pagen+1 TO pagen STOR 7 TO lineno ERAS IF .NOT. EOF ? caption ? ' ' ? 'Report of ' +date1 + '. ' + 'PAGE ' + STR(pagen,2) ? "--------------------------------------------------------------------------------------------------------------------------" ? ' ' ENDI .NOT. EOF * now fill up rest of page to 55 lines with names etc DO WHIL lineno < 55 * now do a page if not end of file IF .NOT. EOF STOR counter + 1 TO counter STOR ' ' TO blnks IF author <> ' ' STOR TRIM(author)+'. ' TO auth ENDI IF LEN(auth)+LEN(TRIM($(title1,1,60)))+LEN(TRIM($(title1,61,60))) > 125 ? auth + $(title1,1,60) ? $(blnks,1,LEN(auth))+$(title1,61,60) STOR lineno+2 TO lineno ELSE ? auth +TRIM($(title1,1,60))+' '+TRIM($(title1,61,60)) STOR lineno+1 TO lineno ENDI IF title2 <> ' ' ? ' '+title2 STOR lineno+1 TO lineno ENDI title IF publdat <> ' ' ? ' '+TRIM(publdat)+'. '+librdat STOR lineno+1 TO lineno ENDI IF publdat = ' ' .AND. librdat <> ' ' ? ' '+librdat STOR lineno +1 TO lineno ENDI ? ' ' STOR lineno+1 TO lineno CONT * however, skip again if record deleted IF * CONT ENDI ELSE STOR f TO more STOR 60 TO lineno ENDI not EOF ENDD while lineno < 55 IF .NOT. EOF SET PRINT OFF @ 20,00 SAY ' ********************************************************************* ' @ 21,00 @ 22,00 @ 21,10 SAY 'CHANGE PAPER IF NECESSARY AND THEN HIT ANY KEY TO RESTART' SET CONSOLE OFF WAIT SET CONSOLE ON IF printer = 'Y' SET PRINT ON ENDI ENDI ENDD more SET PRINT OFF @ 20,00 SAY ' ********************************************************************* ' @ 21,00 @ 22,00 @ 21,10 SAY 'CHANGE PAPER IF NECESSARY AND THEN HIT ANY KEY TO RESTART' SET CONSOLE OFF WAIT SET CONSOLE ON IF printer = 'Y' SET PRINT ON ENDI ? ' ' ? "--------------------------------------------------------------------------------------------------------------------------" ? ' ' ? ' THE TOTAL NUMBER OF REFERENCES LISTED WAS ' + STR(counter,3,0) * if it was on turn it off EJEC SET PRINT OFF IF PRINTER = 'Y' .AND. SHIFT = 'Y' SET PRINT ON ? CHR(chrreg1) + CHR(chrreg2) + CHR(chrreg3) SET PRINT OFF ENDI printer ENDI command = 'Y' * release local variables RELE pagen, lineno, counter * restore memory varibles SET INDEX TO &dr.:&tindex STOR t TO more STOR t TO first