* DATE 04/24/85 22:00 * wsfile.ref REST from rdata.mem additive ERAS STOR 'T' TO select STOR 'N' TO under STOR 'N' TO under1 STOR 'Y' TO ans @ 02,10 SAY 'This Module will make a special MailMerge file for WordStar' @ 04,10 SAY 'Some people prefer to underline the title or subtitle (or both).' @ 05,10 SAY 'Do you want to underline the main title (Y/N) ? ' @ 05,60 GET under PICTURE '!' READ @ 06,10 SAY 'Do you want to underline the subtitle (Y/N) ? ' @ 06,60 GET under1 PICTURE '!' READ @ 08,10 SAY 'Do you want the list alphabetically by uthor or itle ? ' @ 08,74 GET select PICTURE '!' READ DO WHIL @(select,'AT')=0 @ 08,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 CLEA GETS GO TOP @ 10,10 SAY 'Do you want to prepare a WordStar file using the entire database ?' @ 10,75 GET ans PICTURE '!' READ DO WHIL @(ans,'YN')=0 @ 10,75 GET ans PICTURE '!' READ ENDD IF ans = 'Y' STOR 1 TO counter ACCE 'Enter Name of the WordStar-MailMerge file ' TO file:dat DO WHIL file:dat = ' ' ACCE 'Enter Name of the WordStar-MailMerge file ' TO file:dat ENDD STOR !(file:dat) TO file:dat STOR $(file:dat,1,8) TO file:dat STOR file:dat+'.DOC' TO file:doc STOR file:dat+'.DAT' TO file:dat ERAS @ 03,10 SAY 'Creating WordStar-MailMerge Document file: '+file:doc SET CONSOLE OFF SET ALTERNATE TO &file:doc SET ALTERNATE ON ? '.OP' ? '.DF '+file:dat ? '.RV author,title1,title2,jrnlcite,edition,pageno,edtrans,publdata,librdata,chron,type,worksdis,comments' ? '.. select only items you need in your report labeling them, for example, as' ? '.. &author&,&title1&. Where you will sometimes have blank data fields, use' ? '.. the mailmerge option &title2/O&, &author/O&' SET ALTERNATE OFF SET CONSOLE ON @ 05,10 SAY ' Creating WordStar-MailMerge Data file: '+file:dat ? ? ?? 'Writing record # ' SET CONSOLE OFF SET ALTERNATE TO &file:dat DO WHIL .NOT. EOF SET CONSOLE OFF SET ALTERNATE ON STOR $(title1,1,60) TO tit1 STOR $(title1,61,60) TO tit2 IF tit2 = ' ' STOR TRIM(tit1) TO title ELSE STOR TRIM(tit1)+' '+TRIM(tit2) TO title ENDIF STOR $(worksdis,1,60) TO work1 STOR $(worksdis,61,60) TO work2 IF work2 = ' ' STOR TRIM(work1) TO work ELSE STOR TRIM(work1)+' '+TRIM(work2) TO work ENDI STOR $(comments,1,60) TO com1 STOR $(comments,61,60) TO com2 STOR $(comments,121,40) TO com3 IF com3 = ' ' STOR com2 TO comm ELSE STOR TRIM(com2) + ' ' + TRIM(com3) TO comm ENDI IF comm = ' ' STOR TRIM(com1) TO com ELSE STOR TRIM(com1)+' '+TRIM(comm) TO com ENDIF ? IF author = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(author)+CHR(34)+',' ENDI IF title = ' ' ?? ',' ELSE IF under = 'Y' ?? CHR(34)+CHR(19)+TRIM(title)+CHR(19)+CHR(34)+',' ELSE ?? CHR(34)+TRIM(title)+CHR(34)+',' ENDI ENDI IF title2 = ' ' ?? ',' ELSE IF under1 = 'Y' ?? CHR(34)+CHR(19)+TRIM(title2)+CHR(19)+CHR(34)+',' ELSE ?? CHR(34)+TRIM(title2)+CHR(34)+',' ENDI ENDI IF journal = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(journal)+CHR(34)+',' ENDI IF edition = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(edition)+CHR(34)+',' ENDI IF pageno = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(pageno)+CHR(34)+',' ENDI IF edtrans = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(edtrans)+CHR(34)+',' ENDI IF publdat = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(publdat)+CHR(34)+',' ENDI IF librdat = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(librdat)+CHR(34)+',' ENDI IF chron = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(chron)+CHR(34)+',' ENDI IF type = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(type)+CHR(34)+',' ENDI IF work = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(work)+CHR(34)+',' ENDI IF com = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(com)+CHR(34)+',' ENDI SET ALTERNATE OFF SKIP SET CONSOLE ON ?? CHR(8) + CHR(8)+CHR(8)+CHR(8)+CHR(8)+CHR(8)+STR(COUNTER,5) STOR COUNTER + 1 TO COUNTER ENDD while not EOF ELSE ERAS SET COLON OFF STOR 'Selective WordStar MailMerge Module' TO mode @ 0,26 SAY mode @ 1, 0 SAY "+---------------------------------------" @ 1,39 SAY "---------------------------------------+" @ 2,10 SAY "To perform selective file preparation input only information" @ 3,10 SAY "which is required for the search. Where more than one selection" @ 4,10 SAY "in a field, you must perform multiple searches." @ 7, 6 SAY "Author:" @ 8, 5 SAY "Title 1:" @ 9, 5 SAY "Title 2:" @ 10, 3 SAY "Jrnl Cite:" @ 11, 5 SAY "Edition:" @ 11,47 SAY "Page No:" @ 12, 4 SAY "Ed/Trans:" @ 13, 0 SAY "Publish data:" @ 14, 0 SAY "Library data:" @ 15, 7 SAY "Chron:" @ 16, 8 SAY "Type:" @ 17, 2 SAY "Works disc:" @ 18, 4 SAY "Comments:" @ 19,47 SAY "Updated:" @ 20, 0 SAY " -------------------------------------------------" @ 20,50 SAY "-----------------------------" STOR ' ' TO extra STOR 0 TO count STOR '.NOT.*' TO finder STOR f TO first STOR ' ' TO blnks STOR blnks+$(blnks,1,20) TO mauthor STOR blnks+$(blnks,1,20) TO mtitle1 STOR $(blnks,1,20) TO mtitle2 STOR $(blnks,1,20) TO mjournal STOR $(blnks,1,18) TO medition STOR $(blnks,1,18) TO mpageno STOR $(blnks,1,20) TO medtran STOR $(blnks,1,20) TO mpubldat STOR $(blnks,1,20) TO mlibrdat STOR $(blnks,1,20) TO mchron STOR $(blnks,1,18) TO mtype STOR $(blnks,1,20) TO mworks STOR $(blnks,1,20) TO mcomment STOR $(blnks,1,8) TO mdayu @ 7,14 GET mauthor @ 8,14 GET mtitle1 @ 9,14 GET mtitle2 @ 10,14 GET mjournal @ 11,14 GET medition @ 11,56 GET mpageno @ 12,14 GET medtran @ 13,14 GET mpubldat @ 14,14 GET mlibrdat @ 15,14 GET mchron @ 16,14 GET mtype @ 17,14 GET mworks @ 18,14 GET mcomment @ 19,56 GET mdayu READ CLEA GETS STOR t TO continue STOR f TO toolong IF mauthor <> ' ' STOR TRIM(finder) +".AND.'"+TRIM(!(mauthor))+"'"+'$!(author)' TO finder ENDI RELE mauthor IF LEN(finder) > 140 STOR t TO toolong ENDI IF mtitle1 <> ' ' .AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mtitle1))+"'" TO mtitle11 STOR TRIM(finder) + mtitle11+'$!(title1)' TO finder ENDI RELE mtitle1, mtitle11 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mtitle2 <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mtitle2))+"'" TO mtitle21 STOR TRIM(finder) +mtitle21+'$!(title2)' TO finder ENDI RELE mtitle2, mtitle21 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mjournal <> ' ' .AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mjournal))+"'" TO mjourna1 STOR TRIM(finder) + mjourna1+'$!(journal)' TO finder ENDI IF LEN(finder) > 140 STOR t TO toolong ENDI RELE mjournal, mjourna1 IF medition <> ' '.AND. (.NOT. toolong) STOR ".AND.'"+TRIM(!(medition))+"'" TO medit1 STOR TRIM(finder) +medit1+'$!(edition)' TO finder ENDI RELE medition, medit1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mpubldat <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mpubldat))+"'" TO mpubl1 STOR TRIM(finder) + mpubl1+'$!(publdat)' TO finder ENDI RELE mpubldat, mpubl1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mlibrdat <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mlibrdat))+"'" TO mlibrd1 STOR TRIM(finder) + mlibrd1+'$!(librdat)' TO finder ENDI RELE mlibrdat, mlibrd1 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 IF LEN(finder) > 140 STOR t TO toolong ENDI RELE mchron, mchron1 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 mworks <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mworks))+"'" TO mworkd1 STOR TRIM(finder) +mworkd1+'$!(worksdis)' TO finder ENDI RELE mworks, mworkd1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mcomment <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mcomment))+"'" TO mcomm1 STOR TRIM(finder) +mcomm1+'$!(comments)' TO finder ENDI RELE mcomment, mcomm1 IF LEN(finder) > 200 STOR t TO toolong ENDI IF mdayu <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mdayu))+"'" TO mdayu1 STOR TRIM(finder) +mdayu1+'$!(dayu)' TO finder ENDI RELE mdayu, mayu1 IF LEN(finder) > 200 STOR t TO toolong ENDI SET COLON ON IF LEN(finder) < 12 STOR "*" TO finder STOR ' STANDARD = deleted files ' TO extra ENDI IF toolong ERAS @ 10,10 SAY 'The search string is too long - you can have no more than' @ 11,10 SAY '200 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 continue SET CONSOL OFF WAIT SET CONSOL ON ENDI RELE toolong ERAS IF continue STOR 1 TO counter ACCE 'Enter Name of the WordStar-MailMerge file ' TO file:dat DO WHIL file:dat = ' ' ACCE 'Enter Name of the WordStar-MailMerge file ' TO file:dat ENDD STOR !(file:dat) TO file:dat STOR $(file:dat,1,8) TO file:dat STOR file:dat+'.DOC' TO file:doc STOR file:dat+'.DAT' TO file:dat ERAS @ 03,10 SAY 'Creating WordStar-MailMerge Document file: '+file:doc SET CONSOLE OFF SET ALTERNATE TO &file:doc SET ALTERNATE ON ? '.OP' ? '.DF '+file:dat ? '.RV author,title1,title2,jrnlcite,edition,pageno,edtrans,publdata,librdata,chron,type,worksdis,comments' ? '.. select only items you need in your report labeling them, for example, as' ? '.. &author&,&title1&. Where you will sometimes have blank data fields, use' ? '.. the mailmerge option &title2/O&, &author/O&' SET ALTERNATE OFF SET CONSOLE ON @ 05,10 SAY ' Creating WordStar-MailMerge Data file: '+file:dat ? ? ?? 'Writing record # ' SET CONSOLE OFF SET ALTERNATE TO &file:dat LOCA for &finder DO WHIL .NOT. EOF SET CONSOLE OFF SET ALTERNATE ON STOR $(title1,1,60) TO tit1 STOR $(title1,61,60) TO tit2 IF tit2 = ' ' STOR TRIM(tit1) TO title ELSE STOR TRIM(tit1)+' '+TRIM(tit2) TO title ENDIF STOR $(worksdis,1,60) TO work1 STOR $(worksdis,61,60) TO work2 IF work2 = ' ' STOR TRIM(work1) TO work ELSE STOR TRIM(work1)+' '+TRIM(work2) TO work ENDI STOR $(comments,1,60) TO com1 STOR $(comments,61,60) TO com2 STOR $(comments,121,40) TO com3 IF com3 = ' ' STOR com2 TO comm ELSE STOR TRIM(com2) + ' ' + TRIM(com3) TO comm ENDI IF comm = ' ' STOR TRIM(com1) TO com ELSE STOR TRIM(com1)+' '+TRIM(comm) TO com ENDIF ? IF author = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(author)+CHR(34)+',' ENDI IF title = ' ' ?? ',' ELSE IF under = 'Y' ?? CHR(34)+CHR(19)+TRIM(title)+CHR(19)+CHR(34)+',' ELSE ?? CHR(34)+TRIM(title)+CHR(34)+',' ENDI ENDI IF title2 = ' ' ?? ',' ELSE IF under1 = 'Y' ?? CHR(34)+CHR(19)+TRIM(title2)+CHR(19)+CHR(34)+',' ELSE ?? CHR(34)+TRIM(title2)+CHR(34)+',' ENDI ENDI IF journal = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(journal)+CHR(34)+',' ENDI IF edition = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(edition)+CHR(34)+',' ENDI IF pageno = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(pageno)+CHR(34)+',' ENDI IF edtrans = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(edtrans)+CHR(34)+',' ENDI IF publdat = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(publdat)+CHR(34)+',' ENDI IF librdat = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(librdat)+CHR(34)+',' ENDI IF chron = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(chron)+CHR(34)+',' ENDI IF type = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(type)+CHR(34)+',' ENDI IF work = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(work)+CHR(34)+',' ENDI IF com = ' ' ?? ',' ELSE ?? CHR(34)+TRIM(com)+CHR(34)+',' ENDI SET ALTERNATE OFF CONT SET CONSOLE ON ?? CHR(8) + CHR(8)+CHR(8)+CHR(8)+CHR(8)+CHR(8)+STR(COUNTER,5) STOR COUNTER + 1 TO COUNTER ENDD while not EOF ENDI ENDI SET INDEX TO &dr.:&tindex