home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / lambda / soundpot / a / dbbooks.lbr / WSFILE.BZ / WSFILE.BK
Encoding:
Text File  |  1993-10-26  |  11.9 KB  |  422 lines

  1. * DATE 04/09/85  19:14
  2. * wsfile.bk
  3. REST from bdata.mem additive
  4. ERAS
  5. STOR 'T' TO select
  6. STOR 'N' TO under
  7. STOR 'N' TO under1
  8. STOR 'Y' TO ans
  9. @ 02,10 SAY 'This Module will make a special MailMerge file for WordStar'
  10. @ 04,10 SAY 'Some people prefer to underline the title or subtitle (or both).'
  11. @ 05,10 SAY 'Do you want to underline the main title (Y/N) ? '
  12. @ 05,60 GET under PICTURE '!'
  13. READ
  14. @ 06,10 SAY 'Do you want to underline the subtitle (Y/N) ? '
  15. @ 06,60 GET under1 PICTURE '!'
  16. READ
  17. @ 08,10 SAY 'Do you want the list alphabetically by <A>uthor or <T>itle ? '
  18. @ 08,74 GET select PICTURE '!'
  19. READ
  20. DO WHIL @(select,'AT')=0
  21.  @ 16,74 GET select PICTURE '!'
  22.  READ
  23. ENDD
  24. CLEA GETS
  25. IF select = 'A'
  26.  SET index TO &dr.:&aindex
  27. ELSE
  28.  SET INDEX TO &dr.:&tindex
  29. ENDI
  30. RELE select
  31. CLEA GETS
  32. GO TOP
  33. @ 10,10 SAY 'Do you want to prepare a WordStar file using the entire database ?'
  34. @ 10,75 GET ans PICTURE '!'
  35. READ
  36. DO WHIL @(ans,'YN')=0
  37.  @ 10,65 GET ans PICTURE '!'
  38.  READ
  39. ENDD
  40. IF ans = 'Y'
  41.  STOR 1 TO counter
  42.  ACCE 'Enter Name of the WordStar-MailMerge file  ' TO file:dat
  43.  DO WHIL file:dat = ' '
  44.   ACCE 'Enter Name of the WordStar-MailMerge file  ' TO file:dat
  45.  ENDD
  46.  STOR !(file:dat) TO file:dat
  47.  STOR $(file:dat,1,8) TO file:dat
  48.  STOR file:dat+'.DOC'  TO file:doc
  49.  STOR file:dat+'.DAT'  TO file:dat
  50.  ERAS
  51.  @ 03,10 SAY  'Creating WordStar-MailMerge Document file:  '+file:doc
  52.  SET CONSOLE OFF
  53.  SET ALTERNATE TO &file:doc
  54.  SET ALTERNATE ON
  55.  ? '.OP'
  56.  ? '.DF '+file:dat
  57.  ? '.RV '+' title,subtitle,author1,author2,author3,year,price,publisher,street,city,state,zip,subject1,subject2,subject3,subject4,subject5,comment'
  58.  ? '.. select only items you need in your report labeling them, for example, as'
  59.  ? '.. &title&,&author1&. Where you will sometimes have blank data fields, use'
  60.  ? '.. the mailmerge option &title/O&, &author1/O&'
  61.  SET ALTERNATE OFF
  62.  SET CONSOLE ON
  63.  @ 05,10 SAY  ' Creating WordStar-MailMerge Data file:  '+file:dat
  64.  ?
  65.  ?
  66.  ?? 'Writing record #     '
  67.  SET CONSOLE OFF
  68.  SET ALTERNATE TO &file:dat
  69.  DO WHIL .NOT. EOF
  70.   SET CONSOLE OFF
  71.   SET ALTERNATE ON
  72.   ?
  73.   IF under = 'Y'
  74.    ?? CHR(34)+CHR(19)+TRIM(title)+CHR(19)+CHR(34)+','
  75.   ELSE
  76.    ?? CHR(34)+TRIM(title)+CHR(34)+','
  77.   ENDI
  78.   IF under1 = 'Y'
  79.    ?? CHR(34)+CHR(19)+TRIM(subtit)+CHR(19)+CHR(34)+','
  80.   ELSE
  81.    ?? CHR(34)+TRIM(subtit)+CHR(34)+','
  82.   ENDI
  83.   ?? CHR(34)+TRIM(auth1)+CHR(34)+','
  84.   ?? CHR(34)+TRIM(auth2)+CHR(34)+','
  85.   ?? CHR(34)+TRIM(auth3)+CHR(34)+','
  86.   ?? year+','
  87.   ?? price +','
  88.   ?? CHR(34)+TRIM(publish)+CHR(34)+','
  89.   ?? CHR(34)+TRIM(street)+CHR(34)+','
  90.   ?? CHR(34)+TRIM(city)+CHR(34)+','
  91.   ?? state+','
  92.   ?? zip+','
  93.   ?? CHR(34)+TRIM(subj1)+CHR(34)+','
  94.   ?? CHR(34)+TRIM(subj2)+CHR(34)+','
  95.   ?? CHR(34)+TRIM(subj3)+CHR(34)+','
  96.   ?? CHR(34)+TRIM(subj4)+CHR(34)+','
  97.   ?? CHR(34)+TRIM(subj5)+CHR(34)+','
  98.   ?? CHR(34)+TRIM(comment)+CHR(34)+','
  99.   SET ALTERNATE OFF
  100.   SKIP
  101.   SET CONSOLE ON
  102.   ?? CHR(8) + CHR(8)+CHR(8)+CHR(8)+CHR(8)+CHR(8)+STR(COUNTER,5)
  103.   STOR COUNTER + 1 TO COUNTER
  104.  ENDD while not EOF
  105. ELSE
  106.  ERAS
  107.  SET COLON OFF
  108.  STOR 'Selective WordStar MailMerge Module' TO mode
  109.  @ 0,26 SAY mode
  110.  @ 1, 0 SAY "+---------------------------------------"
  111.  @ 1,39 SAY "---------------------------------------+"
  112.  @ 2,10 SAY "To perform selective file preparation input only information"
  113.  @ 3,10 SAY "which is required for the search.  Where more than one selection"
  114.  @ 4,10 SAY "in a field, you must perform multiple searches."
  115.  @ 6, 4 SAY "Title:"
  116.  @ 7, 1 SAY "Subtitle:"
  117.  @ 08, 0 SAY "Authors 1:"
  118.  @ 08,44 SAY "2:"
  119.  @ 09, 8 SAY "3:"
  120.  @ 09,41 SAY "Year:"
  121.  @ 09,64 SAY "Price:"
  122.  @ 10, 0 SAY "Publisher:"
  123.  @ 11, 3 SAY "Street:"
  124.  @ 12, 5 SAY "City:"
  125.  @ 12,40 SAY "State:"
  126.  @ 12,66 SAY "Zip:"
  127.  @ 13, 0 SAY "Subject 1:"
  128.  @ 13,44 SAY "2:"
  129.  @ 14, 8 SAY "3:"
  130.  @ 14,44 SAY "4:"
  131.  @ 15, 8 SAY "5:"
  132.  @ 16, 1 SAY "Comments:"
  133.  @ 17,62 SAY "Updated:"
  134.  @ 18, 0 SAY " -------------------------------------------------"
  135.  @ 18,50 SAY "-----------------------------"
  136.  STOR '   ' TO extra
  137.  STOR 0 TO count
  138.  STOR '.NOT.*' TO finder
  139.  STOR f TO first
  140.  STOR '                                        ' TO blnks
  141.  STOR blnks+$(blnks,1,20) TO mtitle
  142.  STOR blnks+$(blnks,1,20) TO msubtit
  143.  STOR $(blnks,1,20) TO mauth1
  144.  STOR $(blnks,1,20) TO mauth2
  145.  STOR $(blnks,1,20) TO mauth3
  146.  STOR $(blnks,1,4) TO myear
  147.  STOR $(blnks,1,6) to mprice
  148.  STOR $(blnks,1,30) TO mpublish
  149.  STOR $(blnks,1,17) TO mstreet
  150.  STOR $(blnks,1,15) TO mcity
  151.  STOR $(blnks,1,2) TO mstate
  152.  STOR $(blnks,1,10) TO mzip
  153.  STOR $(blnks,1,22) TO msubj1
  154.  STOR $(blnks,1,22) TO msubj1
  155.  STOR $(blnks,1,22) TO msubj2
  156.  STOR $(blnks,1,22) TO msubj3
  157.  STOR $(blnks,1,22) TO msubj4
  158.  STOR $(blnks,1,21) TO msubj5
  159.  STOR blnks+$(blnks,1,20) TO mcomm
  160.  STOR $(blnks,1,8) TO mdayu
  161.  @ 6,12 GET mtitle
  162.  @ 7,12 GET msubtit
  163.  @ 8,12 GET mauth1
  164.  @ 8,47 GET mauth2
  165.  @ 9,12 GET mauth3
  166.  @ 9,47 GET myear PICTURE '9999'
  167.  @ 9,70 GET mprice PICTURE '999999'
  168.  @ 10,12 GET mpublish
  169.  @ 11,12 GET mstreet
  170.  @ 12,12 GET mcity
  171.  @ 12,47 GET mstate PICTURE '!!'
  172.  @ 12,70 GET mzip PICTURE '99999-9999'
  173.  @ 13,12 GET msubj1
  174.  @ 13,47 GET msubj2
  175.  @ 14,12 GET msubj3
  176.  @ 14,47 GET msubj4
  177.  @ 15,12 GET msubj5
  178.  @ 16,12 GET mcomm
  179.  @ 17,71 GET mdayu
  180.  READ
  181.  CLEA GETS
  182.  STOR t TO continue
  183.  STOR f TO toolong
  184.  IF mtitle <> ' '
  185.   STOR TRIM(finder) +".AND.'"+TRIM(!(mtitle))+"'"+'$!(title)'  TO finder
  186.  ENDI
  187.  RELE mtitle
  188.  IF LEN(finder) > 140
  189.   STOR t TO toolong
  190.  ENDI
  191.  IF msubtit <> ' ' .AND.(.NOT.toolong)
  192.   STOR ".AND.'"+TRIM(!(msubtit))+"'" TO msubtit1
  193.   STOR TRIM(finder) + msubtit1+'$!(subtit)'  TO finder
  194.  ENDI
  195.  RELE msubtit, msubtit1
  196.  IF LEN(finder) > 140
  197.   STOR t TO toolong
  198.  ENDI
  199.  IF mauth1 <> ' '.AND.(.NOT.toolong)
  200.   STOR ".AND.'"+TRIM(!(mauth1))+"'" TO mauth11
  201.   STOR TRIM(finder) +mauth11+'$!(auth1)'  TO finder
  202.  ENDI
  203.  RELE mauth1, mauth11
  204.  IF LEN(finder) > 140
  205.   STOR t TO toolong
  206.  ENDI
  207.  IF mauth2 <> ' ' .AND.(.NOT.toolong)
  208.   STOR ".AND.'"+TRIM(!(mauth2))+"'" TO mauth21
  209.   STOR TRIM(finder) + mauth21+'$!(auth2)'  TO finder
  210.  ENDI
  211.  IF LEN(finder) > 140
  212.   STOR t TO toolong
  213.  ENDI
  214.  RELE mauth2, mauth21
  215.  IF mauth3 <> ' '.AND. (.NOT. toolong)
  216.   STOR ".AND.'"+TRIM(!(mauth3))+"'" TO mauth31
  217.   STOR TRIM(finder) +mauth31+'$!(auth3)'  TO finder
  218.  ENDI
  219.  RELE mauth3, mauth31
  220.  IF LEN(finder) > 140
  221.   STOR t TO toolong
  222.  ENDI
  223.  IF myear <> ' '.AND.(.NOT.toolong)
  224.   STOR ".AND.'"+TRIM(!(myear))+"'" TO myear1
  225.   STOR TRIM(finder) + myear1+'$!(year)'  TO finder
  226.  ENDI
  227.  RELE myear, myear1
  228.  IF LEN(finder) > 140
  229.   STOR t TO toolong
  230.  ENDI
  231.  IF mprice <> ' '.AND.(.NOT.toolong)
  232.   STOR ".AND.'"+TRIM(!(mprice))+"'" TO mprice1
  233.   STOR TRIM(finder) + mprice1+'$!(price)'  TO finder
  234.  ENDI
  235.  RELE mprice, mprice1
  236.  IF LEN(finder) >140
  237.   STOR t TO toolong
  238.  ENDI
  239.  IF mpublish <> ' ' .AND.(.NOT.toolong)
  240.   STOR ".AND.'"+TRIM(!(mpublish))+"'" TO mpubl2
  241.   STOR TRIM(finder) +mpubl2+'$!(publish)'  TO finder
  242.  ENDI
  243.  IF LEN(finder) > 140
  244.   STOR t TO toolong
  245.  ENDI
  246.  RELE mpublish, mpublish2
  247.  IF mstreet <> ' '.AND.(.NOT.toolong)
  248.   STOR ".AND.'"+TRIM(!(mstreet))+"'" TO mstreet1
  249.   STOR TRIM(finder) +mstreet1+'$!(street)'  TO finder
  250.  ENDI
  251.  RELE mstreet, mstreet1
  252.  IF LEN(finder) > 140
  253.   STOR t TO toolong
  254.  ENDI
  255.  IF mcity <> ' '.AND.(.NOT.toolong)
  256.   STOR ".AND.'"+TRIM(!(mcity))+"'" TO mcity1
  257.   STOR TRIM(finder) +mcity1+'$!(city)'  TO finder
  258.  ENDI
  259.  RELE mcity, mcity1
  260.  IF LEN(finder) > 140
  261.   STOR t TO toolong
  262.  ENDI
  263.  IF mstate <> ' '.AND.(.NOT.toolong)
  264.   STOR ".AND.'"+TRIM(!(mstate))+"'" TO mstate1
  265.   STOR TRIM(finder) +mstate1+'$!(state)'  TO finder
  266.  ENDI
  267.  RELE mstate, mstate1
  268.  IF LEN(finder) > 140
  269.   STOR t TO toolong
  270.  ENDI
  271.  IF mzip <> ' '.AND.(.NOT.toolong)
  272.   STOR ".AND.'"+TRIM(!(mzip))+"'" TO mzip1
  273.   STOR TRIM(finder) +mzip1+'$!(zip)'  TO finder
  274.  ENDI
  275.  RELE mzip, mzip1
  276.  IF LEN(finder) > 140
  277.   STOR t TO toolong
  278.  ENDI
  279.  IF msubj1 <> ' '.AND.(.NOT.toolong)
  280.   STOR ".AND.'"+TRIM(!(msubj1))+"'" TO msubj11
  281.   STOR TRIM(finder) +msubj11+'$!(subj1)'  TO finder
  282.  ENDI
  283.  RELE msubj1, msubj11
  284.  IF LEN(finder) > 140
  285.   STOR t TO toolong
  286.  ENDI
  287.  IF msubj2 <> ' '.AND.(.NOT.toolong)
  288.   STOR ".AND.'"+TRIM(!(msubj2))+"'" TO msubj21
  289.   STOR TRIM(finder) +msubj21+'$!(subj2)'  TO finder
  290.  ENDI
  291.  RELE msubj2, msubj21
  292.  IF LEN(finder) > 140
  293.   STOR t TO toolong
  294.  ENDI
  295.  IF msubj3 <> ' '.AND.(.NOT.toolong)
  296.   STOR ".AND.'"+TRIM(!(msubj3))+"'" TO msubj31
  297.   STOR TRIM(finder) +msubj31+'$!(subj3)'  TO finder
  298.  ENDI
  299.  RELE msubj3, msubj31
  300.  IF LEN(finder) > 140
  301.   STOR t TO toolong
  302.  ENDI
  303.  IF msubj4 <> ' '.AND.(.NOT.toolong)
  304.   STOR ".AND.'"+TRIM(!(msubj4))+"'" TO msubj41
  305.   STOR TRIM(finder) +msubj41+'$!(subj4)'  TO finder
  306.  ENDI
  307.  RELE msubj4, msubj41
  308.  IF LEN(finder) > 140
  309.   STOR t TO toolong
  310.  ENDI
  311.  IF msubj5 <> ' '.AND.(.NOT.toolong)
  312.   STOR ".AND.'"+TRIM(!(msubj5))+"'" TO msubj51
  313.   STOR TRIM(finder) +msubj51+'$!(subj5)'  TO finder
  314.  ENDI
  315.  RELE msubj5, msubj51
  316.  IF LEN(finder) > 140
  317.   STOR t TO toolong
  318.  ENDI
  319.  IF mcomm <> ' '.AND.(.NOT.toolong)
  320.   STOR ".AND.'"+TRIM(!(mcomm))+"'" TO mcomm1
  321.   STOR TRIM(finder) +mcomm1+'$!(comment)'  TO finder
  322.  ENDI
  323.  RELE mcomm, mcomm1
  324.  IF LEN(finder) > 140
  325.   STOR t TO toolong
  326.  ENDI
  327.  IF mdayu <> ' '.AND.(.NOT.toolong)
  328.   STOR ".AND.'"+TRIM(!(mdayu))+"'" TO mdayu1
  329.   STOR TRIM(finder) +mdayu1+'$!(dayu)'  TO finder
  330.  ENDI
  331.  IF LEN(finder) > 140
  332.   STOR t TO toolong
  333.  ENDI
  334.  RELE mdayu, mdayu1
  335.  SET COLON ON
  336.  IF LEN(finder) < 12
  337.   STOR "*" TO finder
  338.   STOR '              STANDARD = deleted files ' TO extra
  339.  ENDI
  340.  IF toolong
  341.   ERAS
  342.   @ 10,10 SAY 'The search string is too long - you can have no more than'
  343.   @ 11,10 SAY '140 characters in the string and the field names. Please'
  344.   @ 12,10 SAY 'try again'
  345.   @ 13,30 SAY 'Hit any key to continue'
  346.   STOR f TO continue
  347.   SET CONSOL OFF
  348.   WAIT
  349.   SET CONSOL ON
  350.  ENDI
  351.  RELE toolong
  352.  ERAS
  353.  IF continue
  354.   STOR 1 TO counter
  355.   ACCE 'Enter Name of the WordStar-MailMerge file  ' TO file:dat
  356.   DO WHIL file:dat = ' '
  357.    ACCE 'Enter Name of the WordStar-MailMerge file  ' TO file:dat
  358.   ENDD
  359.   STOR !(file:dat) TO file:dat
  360.   STOR $(file:dat,1,8) TO file:dat
  361.   STOR file:dat+'.DOC'  TO file:doc
  362.   STOR file:dat+'.DAT'  TO file:dat
  363.   ERAS
  364.   @ 03,10 SAY  'Creating WordStar-MailMerge Document file:  '+file:doc
  365.   SET CONSOLE OFF
  366.   SET ALTERNATE TO &file:doc
  367.   SET ALTERNATE ON
  368.   ? '.OP'
  369.   ? '.DF '+file:dat
  370.   ? '.RV '+' title,subtitle,author1,author2,author3,year,price,publisher,street,city,state,zip,subject1,subject2,subject3,subject4,subject5,comment'
  371.   ? '.. select only items you need in your report labeling them, for example, as'
  372.   ? '.. &title&,&author1&. Where you will sometimes have blank data fields, use'
  373.   ? '.. the mailmerge option &title/O&, &author1/O&'
  374.   SET ALTERNATE OFF
  375.   SET CONSOLE ON
  376.   @ 05,10 SAY  ' Creating WordStar-MailMerge Data file:  '+file:dat
  377.   ?
  378.   ?
  379.   ?? 'Writing record #     '
  380.   SET CONSOLE OFF
  381.   SET ALTERNATE TO &file:dat
  382.     LOCA for &finder
  383.   DO WHIL .NOT. EOF
  384.    SET CONSOLE OFF
  385.    SET ALTERNATE ON
  386.    ?
  387.    IF under = 'Y'
  388.     ?? CHR(34)+CHR(19)+TRIM(title)+CHR(19)+CHR(34)+','
  389.    ELSE
  390.     ?? CHR(34)+TRIM(title)+CHR(34)+','
  391.    ENDI
  392.    IF under1 = 'Y'
  393.     ?? CHR(34)+CHR(19)+TRIM(subtit)+CHR(19)+CHR(34)+','
  394.    ELSE
  395.     ?? CHR(34)+TRIM(subtit)+CHR(34)+','
  396.    ENDI
  397.    ?? CHR(34)+TRIM(auth1)+CHR(34)+','
  398.    ?? CHR(34)+TRIM(auth2)+CHR(34)+','
  399.    ?? CHR(34)+TRIM(auth3)+CHR(34)+','
  400.    ?? year+','
  401.    ?? price +','
  402.    ?? CHR(34)+TRIM(publish)+CHR(34)+','
  403.    ?? CHR(34)+TRIM(street)+CHR(34)+','
  404.    ?? CHR(34)+TRIM(city)+CHR(34)+','
  405.    ?? state+','
  406.    ?? zip+','
  407.    ?? CHR(34)+TRIM(subj1)+CHR(34)+','
  408.    ?? CHR(34)+TRIM(subj2)+CHR(34)+','
  409.    ?? CHR(34)+TRIM(subj3)+CHR(34)+','
  410.    ?? CHR(34)+TRIM(subj4)+CHR(34)+','
  411.    ?? CHR(34)+TRIM(subj5)+CHR(34)+','
  412.    ?? CHR(34)+TRIM(comment)+CHR(34)+','
  413.    SET ALTERNATE OFF
  414.    CONT
  415.    SET CONSOLE ON
  416.    ?? CHR(8) + CHR(8)+CHR(8)+CHR(8)+CHR(8)+CHR(8)+STR(COUNTER,5)
  417.    STOR COUNTER + 1 TO COUNTER
  418.   ENDD while not EOF
  419.  ENDI
  420. ENDI
  421. SET INDEX TO &dr.:&tindex
  422.