* DATE 04/09/85 19:14 * wsfile.bk REST from bdata.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 @ 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 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,65 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 '+' title,subtitle,author1,author2,author3,year,price,publisher,street,city,state,zip,subject1,subject2,subject3,subject4,subject5,comment' ? '.. select only items you need in your report labeling them, for example, as' ? '.. &title&,&author1&. Where you will sometimes have blank data fields, use' ? '.. the mailmerge option &title/O&, &author1/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 ? IF under = 'Y' ?? CHR(34)+CHR(19)+TRIM(title)+CHR(19)+CHR(34)+',' ELSE ?? CHR(34)+TRIM(title)+CHR(34)+',' ENDI IF under1 = 'Y' ?? CHR(34)+CHR(19)+TRIM(subtit)+CHR(19)+CHR(34)+',' ELSE ?? CHR(34)+TRIM(subtit)+CHR(34)+',' ENDI ?? CHR(34)+TRIM(auth1)+CHR(34)+',' ?? CHR(34)+TRIM(auth2)+CHR(34)+',' ?? CHR(34)+TRIM(auth3)+CHR(34)+',' ?? year+',' ?? price +',' ?? CHR(34)+TRIM(publish)+CHR(34)+',' ?? CHR(34)+TRIM(street)+CHR(34)+',' ?? CHR(34)+TRIM(city)+CHR(34)+',' ?? state+',' ?? zip+',' ?? CHR(34)+TRIM(subj1)+CHR(34)+',' ?? CHR(34)+TRIM(subj2)+CHR(34)+',' ?? CHR(34)+TRIM(subj3)+CHR(34)+',' ?? CHR(34)+TRIM(subj4)+CHR(34)+',' ?? CHR(34)+TRIM(subj5)+CHR(34)+',' ?? CHR(34)+TRIM(comment)+CHR(34)+',' 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." @ 6, 4 SAY "Title:" @ 7, 1 SAY "Subtitle:" @ 08, 0 SAY "Authors 1:" @ 08,44 SAY "2:" @ 09, 8 SAY "3:" @ 09,41 SAY "Year:" @ 09,64 SAY "Price:" @ 10, 0 SAY "Publisher:" @ 11, 3 SAY "Street:" @ 12, 5 SAY "City:" @ 12,40 SAY "State:" @ 12,66 SAY "Zip:" @ 13, 0 SAY "Subject 1:" @ 13,44 SAY "2:" @ 14, 8 SAY "3:" @ 14,44 SAY "4:" @ 15, 8 SAY "5:" @ 16, 1 SAY "Comments:" @ 17,62 SAY "Updated:" @ 18, 0 SAY " -------------------------------------------------" @ 18,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 mtitle STOR blnks+$(blnks,1,20) TO msubtit STOR $(blnks,1,20) TO mauth1 STOR $(blnks,1,20) TO mauth2 STOR $(blnks,1,20) TO mauth3 STOR $(blnks,1,4) TO myear STOR $(blnks,1,6) to mprice STOR $(blnks,1,30) TO mpublish STOR $(blnks,1,17) TO mstreet STOR $(blnks,1,15) TO mcity STOR $(blnks,1,2) TO mstate STOR $(blnks,1,10) TO mzip STOR $(blnks,1,22) TO msubj1 STOR $(blnks,1,22) TO msubj1 STOR $(blnks,1,22) TO msubj2 STOR $(blnks,1,22) TO msubj3 STOR $(blnks,1,22) TO msubj4 STOR $(blnks,1,21) TO msubj5 STOR blnks+$(blnks,1,20) TO mcomm STOR $(blnks,1,8) TO mdayu @ 6,12 GET mtitle @ 7,12 GET msubtit @ 8,12 GET mauth1 @ 8,47 GET mauth2 @ 9,12 GET mauth3 @ 9,47 GET myear PICTURE '9999' @ 9,70 GET mprice PICTURE '999999' @ 10,12 GET mpublish @ 11,12 GET mstreet @ 12,12 GET mcity @ 12,47 GET mstate PICTURE '!!' @ 12,70 GET mzip PICTURE '99999-9999' @ 13,12 GET msubj1 @ 13,47 GET msubj2 @ 14,12 GET msubj3 @ 14,47 GET msubj4 @ 15,12 GET msubj5 @ 16,12 GET mcomm @ 17,71 GET mdayu READ CLEA GETS STOR t TO continue STOR f TO toolong IF mtitle <> ' ' STOR TRIM(finder) +".AND.'"+TRIM(!(mtitle))+"'"+'$!(title)' TO finder ENDI RELE mtitle IF LEN(finder) > 140 STOR t TO toolong ENDI IF msubtit <> ' ' .AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(msubtit))+"'" TO msubtit1 STOR TRIM(finder) + msubtit1+'$!(subtit)' TO finder ENDI RELE msubtit, msubtit1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mauth1 <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mauth1))+"'" TO mauth11 STOR TRIM(finder) +mauth11+'$!(auth1)' TO finder ENDI RELE mauth1, mauth11 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mauth2 <> ' ' .AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mauth2))+"'" TO mauth21 STOR TRIM(finder) + mauth21+'$!(auth2)' TO finder ENDI IF LEN(finder) > 140 STOR t TO toolong ENDI RELE mauth2, mauth21 IF mauth3 <> ' '.AND. (.NOT. toolong) STOR ".AND.'"+TRIM(!(mauth3))+"'" TO mauth31 STOR TRIM(finder) +mauth31+'$!(auth3)' TO finder ENDI RELE mauth3, mauth31 IF LEN(finder) > 140 STOR t TO toolong ENDI IF myear <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(myear))+"'" TO myear1 STOR TRIM(finder) + myear1+'$!(year)' TO finder ENDI RELE myear, myear1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mprice <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mprice))+"'" TO mprice1 STOR TRIM(finder) + mprice1+'$!(price)' TO finder ENDI RELE mprice, mprice1 IF LEN(finder) >140 STOR t TO toolong ENDI IF mpublish <> ' ' .AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mpublish))+"'" TO mpubl2 STOR TRIM(finder) +mpubl2+'$!(publish)' TO finder ENDI IF LEN(finder) > 140 STOR t TO toolong ENDI RELE mpublish, mpublish2 IF mstreet <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mstreet))+"'" TO mstreet1 STOR TRIM(finder) +mstreet1+'$!(street)' TO finder ENDI RELE mstreet, mstreet1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mcity <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mcity))+"'" TO mcity1 STOR TRIM(finder) +mcity1+'$!(city)' TO finder ENDI RELE mcity, mcity1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mstate <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mstate))+"'" TO mstate1 STOR TRIM(finder) +mstate1+'$!(state)' TO finder ENDI RELE mstate, mstate1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mzip <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mzip))+"'" TO mzip1 STOR TRIM(finder) +mzip1+'$!(zip)' TO finder ENDI RELE mzip, mzip1 IF LEN(finder) > 140 STOR t TO toolong ENDI IF msubj1 <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(msubj1))+"'" TO msubj11 STOR TRIM(finder) +msubj11+'$!(subj1)' TO finder ENDI RELE msubj1, msubj11 IF LEN(finder) > 140 STOR t TO toolong ENDI IF msubj2 <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(msubj2))+"'" TO msubj21 STOR TRIM(finder) +msubj21+'$!(subj2)' TO finder ENDI RELE msubj2, msubj21 IF LEN(finder) > 140 STOR t TO toolong ENDI IF msubj3 <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(msubj3))+"'" TO msubj31 STOR TRIM(finder) +msubj31+'$!(subj3)' TO finder ENDI RELE msubj3, msubj31 IF LEN(finder) > 140 STOR t TO toolong ENDI IF msubj4 <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(msubj4))+"'" TO msubj41 STOR TRIM(finder) +msubj41+'$!(subj4)' TO finder ENDI RELE msubj4, msubj41 IF LEN(finder) > 140 STOR t TO toolong ENDI IF msubj5 <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(msubj5))+"'" TO msubj51 STOR TRIM(finder) +msubj51+'$!(subj5)' TO finder ENDI RELE msubj5, msubj51 IF LEN(finder) > 140 STOR t TO toolong ENDI IF mcomm <> ' '.AND.(.NOT.toolong) STOR ".AND.'"+TRIM(!(mcomm))+"'" TO mcomm1 STOR TRIM(finder) +mcomm1+'$!(comment)' TO finder ENDI RELE mcomm, mcomm1 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 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 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 '+' title,subtitle,author1,author2,author3,year,price,publisher,street,city,state,zip,subject1,subject2,subject3,subject4,subject5,comment' ? '.. select only items you need in your report labeling them, for example, as' ? '.. &title&,&author1&. Where you will sometimes have blank data fields, use' ? '.. the mailmerge option &title/O&, &author1/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 ? IF under = 'Y' ?? CHR(34)+CHR(19)+TRIM(title)+CHR(19)+CHR(34)+',' ELSE ?? CHR(34)+TRIM(title)+CHR(34)+',' ENDI IF under1 = 'Y' ?? CHR(34)+CHR(19)+TRIM(subtit)+CHR(19)+CHR(34)+',' ELSE ?? CHR(34)+TRIM(subtit)+CHR(34)+',' ENDI ?? CHR(34)+TRIM(auth1)+CHR(34)+',' ?? CHR(34)+TRIM(auth2)+CHR(34)+',' ?? CHR(34)+TRIM(auth3)+CHR(34)+',' ?? year+',' ?? price +',' ?? CHR(34)+TRIM(publish)+CHR(34)+',' ?? CHR(34)+TRIM(street)+CHR(34)+',' ?? CHR(34)+TRIM(city)+CHR(34)+',' ?? state+',' ?? zip+',' ?? CHR(34)+TRIM(subj1)+CHR(34)+',' ?? CHR(34)+TRIM(subj2)+CHR(34)+',' ?? CHR(34)+TRIM(subj3)+CHR(34)+',' ?? CHR(34)+TRIM(subj4)+CHR(34)+',' ?? CHR(34)+TRIM(subj5)+CHR(34)+',' ?? CHR(34)+TRIM(comment)+CHR(34)+',' 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