* DATE 04/26/85 22:00 * special.ref prepares special reports STOR t TO first STOR t TO more1 SET COLON OFF DO WHIL more1 IF first ERAS STOR 'Selective Report Module' TO mode @ 0,26 SAY mode @ 1, 0 SAY "+---------------------------------------" @ 1,39 SAY "---------------------------------------+" @ 2,10 SAY "To perform selective report search input only info" @ 2,60 SAY "rmation" @ 3,10 SAY "which is required for search. Where more than one" @ 3,61 SAY "selection" @ 4,10 SAY "in a field, you must perform multiple searches." @ 6, 2 SAY "Author:" @ 7,54 SAY ">>> ACTION >>>>>" @ 8, 1 SAY "Title 1:" @ 9, 1 SAY "Title 2:" @ 10, 0 SAY "JrnlCite:" @ 11, 0 SAY "Ed-Trans:" @ 11,56 SAY "Edn:" @ 12, 0 SAY "Pub data:" @ 12,55 SAY "Pg #:" @ 13, 0 SAY "Lib data:" @ 14, 3 SAY "Chron:" @ 14,55 SAY "Type:" @ 15, 0 SAY "Wks disc:" @ 16, 0 SAY "Comments:" @ 16,52 SAY "Updated:" @ 17, 0 SAY " -------------------------------------------------" @ 17,50 SAY "-----------------------------" ENDI STOR ' ' TO extra STOR 0 TO count STOR '.NOT.*' TO finder STOR f TO first STOR ' ' TO blnks STOR blnks+$(blnks,1,20) TO mauth STOR ' ' TO maction STOR blnks+$(blnks,1,20) TO mtitl1 STOR $(blnks,1,20) TO mtitl2 STOR $(blnks,1,20) TO mjourn STOR $(blnks,1,20) TO medtran STOR $(blnks,1,18) TO medit STOR $(blnks,1,18) TO mpagen STOR $(blnks,1,20) to medtran STOR $(blnks,1,20) TO mpubl STOR $(blnks,1,20) TO mlibr STOR $(blnks,1,20) TO mchron STOR $(blnks,1,18) TO mtype STOR $(blnks,1,20) TO mwork STOR $(blnks,1,20) TO mcom STOR $(blnks,1,8) TO mdayu @ 6,10 GET mauth @ 7,72 GET maction PICTURE '!' @ 8,10 GET mtitl1 @ 9,10 GET mtitl2 @ 10,10 GET mjourn @ 11,10 GET medtran @ 11,61 GET medit @ 12,10 GET mpubl @ 12,61 GET mpagen @ 13,10 GET mlibr @ 14,10 GET mchron @ 14,61 GET mtype @ 15,10 GET mwork @ 16,10 GET mcom @ 16,61 GET mdayu READ CLEA GETS STOR f TO toolong IF mauth <> ' '.AND.(.NOT.toolong) STOR TRIM(finder) +".AND.'"+TRIM(!(mauth))+"'"+'$!(author)' TO finder ENDI RELE mauth IF LEN(finder) > 140 STOR t TO toolong ENDI IF maction <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(maction))+"'" TO maction1 STOR TRIM(finder) + maction1+'$!(action)' TO finder ENDI RELE maction, maction1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mtitl1 <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mtitl1))+"'" TO mtitl11 STOR TRIM(finder) +mtitl11+'$!(title1)' TO finder ENDI RELE mtitl1, mtitl11 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mtitl2 <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mtitl2))+"'" TO mtitl21 STOR TRIM(finder) + mtitl21+'$!(title2)' TO finder ENDI IF LEN(finder) > 140 STOR t TO toolong ENDI RELE mtitl2, mtitl21 IF mjourn <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mjourn))+"'" TO mjourn1 STOR TRIM(finder) +mjourn1+'$!(journal)' TO finder ENDI RELE mjourn, mjourn1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF medtran <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(medtran))+"'" TO medtran1 STOR TRIM(finder) + medtran1+'$!(edtrans)' TO finder ENDI RELE medtran, medtran1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF medit <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(medit))+"'" TO medit1 STOR TRIM(finder) + medit1+'$!(edition)' TO finder ENDI RELE medit, medit1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mpubl <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mpubl))+"'" TO mpubl2 STOR TRIM(finder) +mpubl2+'$!(publdat)' TO finder ENDI IF LEN(finder) > 140 STOR t TO toolong ENDI RELE mpubl, mpubl2 IF mpagen <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mpagen))+"'" TO mpagen1 STOR TRIM(finder) +mpagen1+'$!(oageno)' TO finder ENDI RELE mpagen, mpagen1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mlibr <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mlibr))+"'" TO mlibr1 STOR TRIM(finder) +mlibr1+'$!(librdat)' TO finder ENDI RELE mlibr, mlibr1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mchron <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mchron))+"'" TO mchron1 STOR TRIM(finder) +mchron1+'$!(chron)' TO finder ENDI RELE mchron, mchron1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mtype <> ' ' .AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mtype))+"'" TO mtype1 STOR TRIM(finder) +mtype1+'$!(type)' TO finder ENDI RELE mtype, mtype1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mwork <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mwork))+"'" TO mwork1 STOR TRIM(finder) +mwork1+'$!(worksdis)' TO finder ENDI RELE mwork, nwork1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mcom <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mcom))+"'" TO mcom1 STOR TRIM(finder) +mcom1+'$!(comments)' TO finder ENDI RELE mcom, mcom1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mdayu <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mdayu))+"'" TO mdayu1 STOR TRIM(finder) +mdayu1+'$!(dayu)' TO finder ENDI IF LEN(finder) > 140 STOR t TO toolong ENDI RELE mdayu, mdayu1 SET COLON ON IF LEN(finder) < 12 STOR "*" TO finder STOR ' STANDARD = deleted files ' TO extra ENDI STOR ' ' TO dowhat @ 19,08 SAY "Do you want a eport, a ount or shall we uit ? " @ 19,65 GET dowhat PICTURE '!' READ DO WHIL @(dowhat,'RCQ')=0 @ 19,65 GET dowhat PICTURE '!' READ ENDD IF dowhat = 'C' STOR 'N' TO shift IF toolong ERAS @ 10,10 SAY 'The search string is too long - you can have no more than ' @ 11,10 SAY '140 characters in the string and the field names. Please ' @ 12,10 SAY 'try again.' @ 13,30 SAY 'Hit any key to continue' SET CONSOL OFF WAIT SET CONSOL ON ELSE ERAS SET talk on COUN for &finder SET TALK OFF ? ' ' ? extra ? ' ' ? ' ** HIT ANY KEY TO CONTINUE **' SET CONSOL OFF WAIT SET CONSOL ON ENDI toolong ENDI dowhat = 'C' IF dowhat = 'R' IF toolong ERAS @ 10,10 SAY 'The search string is too long - you can have no more than ' @ 11,10 SAY '140 characters in the string and the field names. Please ' @ 12,10 SAY 'try again.' @ 13,30 SAY 'Hit any key to continue' STOR f TO more STOR f TO more1 STOR t TO first SET CONSOL OFF WAIT SET CONSOL ON ELSE STOR 'Y' TO printer STOR 'N' TO disk STOR ' ' TO filename STOR '?' TO command @ 19,00 @ 19,22 SAY "Send Report to the Printer (Y/N)" @ 19,55 GET printer PICTURE '!' READ @ 20,22 SAY "Send Report to a Disk File (Y/N)" @ 20,55 GET disk PICTURE '!' READ IF disk ='Y' @ 21,22 SAY "Enter Disk File Name" @ 21,44 GET filename PICTURE '!!!!!!!!' @ 21,54 SAY "(.TXT will be added )" READ @ 21,00 @ 21,22 SAY 'Select drive to put Files on (A=left B=right) ' GET dr PICTURE '!' READ DO WHIL @(dr,'AB') = 0 @ 21,00 @ 21,22 SAY 'Select drive to put Files on (A=left B=right) ' GET dr PICTURE '!' READ ENDD ENDI STOR ' ' TO caption STOR 'Y' TO again @ 19,00 @ 20,00 @ 21,00 @ 19,12 SAY 'Please State the Caption of the Report (do not center):' @ 20,10 GET caption PICTURE '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' READ @ 21,15 SAY 'Is the caption correct ?' @ 21,44 GET again PICTURE '!' READ IF again = 'N' @ 20,10 GET caption PICTURE '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' READ ENDI again STOR ' ' TO pad STOR TRIM(caption) TO caption STOR (122-LEN(caption))/2 TO adjust STOR $(pad,1,adjust) + caption TO caption RELE pad, adjust, again @ 19,00 @ 20,00 @ 21,00 REST from rdata additive STOR 'A' TO select @ 19,10 SAY 'Do you want the report alphabetically by uthor or itle ? ' @ 19,74 GET select PICTURE '!' READ DO WHIL @(select,'AT')=0 @ 16,74 GET select PICTURE '!' READ ENDD CLEA GETS IF select = 'A' SET index TO &dr.:&aindex ELSE SET INDEX TO &dr.:&tindex ENDI RELE select GO TOP IF printer = 'Y' @ 23,00 SAY 'Make Printer Ready and hit any key' SET CONSOLE OFF WAIT SET CONSOLE ON ENDI IF disk = 'Y' .AND. filename <> ' ' STOR @('.',filename) TO length IF length = 0 .OR. length > 8 STOR 9 TO length ENDI STOR $(filename,1,length-1) TO filename STOR '&dr.:'+filename+'.TXT' TO filename SET ALTERNATE TO &filename SET ALTERNATE ON ENDI ERAS SET INDEX TO GO TOP STOR 'Y' TO command ERAS * make an announcement @ 10,12 SAY 'This module print a list of all reference which meet guidelines' @ 11,12 SAY 'you set. The printer should be set for 132 characters if you have' @ 12,12 SAY 'not set the program to handle this automatically. The report is' @ 13,12 SAY 'designed to be printed on 8 x 11 paper loaded normally in the' @ 14,12 SAY 'printer.' @ 16,32 SAY 'Hit any key to continue ' SET CONSOL OFF WAIT SET CONSOL ON REST from printrf.dat additive IF printer = 'Y' .AND. shift = 'Y' SET PRINT ON SET CONSOLE OFF ? CHR(chr121) + CHR(chr122) + CHR(123) SET PRINT OFF SET CONSOLE ON ENDI shift ERAS * initialize variables STOR 0 TO pagen STOR 0 TO counter ERAS @ 10,10 SAY 'I am looking for the first instance of a file which meets your' @ 11,10 SAY 'requirements. Please be patient.' LOCA for &finder IF EOF STOR f TO more ELSE STOR t TO more IF printer = 'Y' SET PRINT ON SET MARGIN TO 5 ENDI DO WHIL more 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 IF .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, go 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 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 BOOKS LISTED WAS ' + STR(counter,3,0) * if it was on turn it off EJEC SET PRINT OFF ? ' ' ? ' *** HIT ANY KEY TO CONTINUE *** ' SET CONSOL OFF WAIT SET CONSOL ON ENDI ENDI toolong ENDI dowhat = 'R' ERAS STOR '?' TO command @ 10,25 SAY "Do another report" @ 10,43 GET command PICTURE '!' READ DO WHIL @(command,'YN')=0 @ 10,43 GET command PICTURE '!' READ ENDD IF command = 'N' STOR f TO more1 ELSE SET COLON OFF STOR t TO more1 STOR t TO first ENDI IF dowhat = 'Q' STOR f TO more1 ENDI ENDD while more1 IF PRINTER = 'Y' .AND. SHIFT = 'Y' SET PRINT ON ? CHR(chrreg1) + CHR(chrreg2) + CHR(chrreg3) SET PRINT OFF ENDI STOR CHR(PEEK(063)) TO dr SET INDEX TO &dr.:&tindex RELE all STOR t TO more STOR t TO first RETU