home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug108.arc / BOOKS.LBR / REPORT.BQ / REPORT.BK
Text File  |  1979-12-31  |  6KB  |  185 lines

  1. * DATE 04/09/85  17:45
  2. * report.bk
  3. STOR t TO more
  4. DO WHIL more
  5.  STOR CHR(PEEK (063)) TO dr
  6.  REST from bdata additive
  7.  ERAS
  8.  STOR 'Y' TO printer
  9.  STOR 'N' TO disk
  10.  STOR '        ' TO filename
  11.  STOR '?' TO command
  12.  @ 2, 0 SAY "----------------------------------------"
  13.  @ 2,39 SAY "----------------------------------------"
  14.  @ 2,22 SAY "> > >  R E P O R T  M E N U  < < <"
  15.  @ 5,25 SAY "A. Prepare report by all books in file"
  16.  @ 07,25 SAY "B. Prepare report based upon variables"
  17.  @ 09,25 SAY "C. Prepare WordStar MailMerge file"
  18.  @ 11,25 SAY "D. Display Records on screen"
  19.  @ 13,25 SAY "E. Return to Main Menu"
  20.  @ 17, 0 SAY "----------------------------------------"
  21.  @ 17,39 SAY "----------------------------------------"
  22.  @ 18,30 SAY "WHAT NEXT"
  23.  @ 18,40 GET command PICTURE '!'
  24.  READ
  25.  IF command  ='A'
  26.   @ 19,22 SAY "Send Report to the Printer (Y/N)"
  27.   @ 19,55 GET printer PICTURE '!'
  28.   READ
  29.   @ 20,22 SAY "Send Report to a Disk File (Y/N)"
  30.   @ 20,55 GET disk PICTURE '!'
  31.   READ
  32.   IF disk ='Y'
  33.    @ 21,22 SAY "Enter Disk File Name"
  34.    @ 21,44 GET filename PICTURE '!!!!!!!!'
  35.    @ 21,54 SAY "(.TXT will be added )"
  36.    READ
  37.    @ 21,00
  38.    @ 21,22 SAY 'Select drive to put Files on (A=left B=right) ' GET dr PICTURE '!'
  39.    READ
  40.    DO WHIL @(dr,'AB') = 0
  41.     @ 21,00
  42.     @ 21,22 SAY 'Select drive to put Files on (A=left B=right) ' GET dr PICTURE '!'
  43.     READ
  44.    ENDD
  45.   ENDI
  46.   STOR '                                                            ' TO caption
  47.   STOR 'Y' TO again
  48.   @ 18,00
  49.   @ 19,00
  50.   @ 20,00
  51.   @ 21,00
  52.   @ 19,12 SAY 'Please State the Caption of the Report (do not center):'
  53.   @ 20,10 GET caption PICTURE '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
  54.   READ
  55.   @ 21,15 SAY 'Is the caption correct ?'
  56.   @ 21,44 GET again PICTURE '!'
  57.   READ
  58.   IF again = 'N'
  59.    @ 20,10 GET caption PICTURE '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
  60.    READ
  61.   ENDI again
  62.   STOR '                                                                   ' TO pad
  63.   STOR TRIM(caption) TO caption
  64.   STOR (122-LEN(caption))/2  TO adjust
  65.   STOR $(pad,1,adjust) + caption TO caption
  66.   RELE pad, adjust, again
  67.   IF printer = 'Y'
  68.    @ 23,00 SAY 'Make Printer Ready and hit any key'
  69.    SET CONSOLE OFF
  70.    WAIT
  71.    SET CONSOLE ON
  72.    SET print ON
  73.   ENDI
  74.   IF disk = 'Y' .AND. filename <> ' '
  75.    STOR @('.',filename) TO length
  76.    IF length = 0 .OR. length > 8
  77.     STOR 9 TO length
  78.    ENDI
  79.    STOR $(filename,1,length-1) TO filename
  80.    STOR '&dr.:'+filename+'.TXT' TO filename
  81.    SET ALTERNATE TO &filename
  82.    SET ALTERNATE ON
  83.   ENDI
  84.  ENDI
  85.  ERAS
  86.  DO CASE
  87.  CASE command = 'A'
  88.   DO title.bk
  89.  CASE command = 'B'
  90.   DO special.bk
  91.  CASE command = 'C'
  92.   DO wsfile.bk
  93.  CASE command = 'D'
  94.   STOR 'T' TO select
  95.   ERAS
  96.   @ 03,12 SAY 'Do you want to display alphabetically by <A>uthor or <T>itle ? '
  97.   @ 03,76 GET select PICTURE '!'
  98.   READ
  99.   DO WHIL @(select,'AT')=0
  100.    @ 03,76 GET select PICTURE '!'
  101.    READ
  102.   ENDD
  103.   CLEA GETS
  104.   IF select = 'A'
  105.    SET index TO &dr.:&aindex
  106.   ELSE
  107.    SET INDEX TO &dr.:&tindex
  108.   ENDI
  109.   RELE select
  110.   @ 05,12 SAY 'You may choose the first letter of'
  111.   @ 06,12 SAY 'the title of a book as the starting point.'
  112.   @ 09,12 SAY 'When WAITING hit space bar to'
  113.   @ 10,12 SAY 'Continue... or ESCape to Quit'
  114.   STOR 'A' TO letter
  115.   @ 17,12 SAY 'Letter of alphabet at which to start display'
  116.   @ 17,57 Get letter PICTURE '!'
  117.   READ
  118.   FIND &letter
  119.   IF #=0
  120.    DO WHIL # = 0
  121.     STOR RANK(letter) + 1 TO nextl
  122.     IF nextl <= 91
  123.      STOR CHR(nextl) TO next
  124.      FIND &next
  125.      STOR next TO letter
  126.     ELSE
  127.      GO top
  128.     ENDI nextl
  129.    ENDD
  130.   ENDI
  131. * display selected list
  132.   ERAS
  133.   SET RAW ON
  134.   SET ESCAPE OFF
  135.   DISP NEXT 65000 $(auth1,1,20), $(title,1,25), $(publish,1,20),year
  136.   IF eof
  137.    WAIT
  138.   ENDI
  139.   SET ESCAPE ON
  140.   SET RAW OFF
  141.   SET INDEX TO &dr.:&tindex
  142.  CASE command = '?'
  143.   ERAS
  144. TEXT
  145.           R E P O R T   M E N U   H E L P   S C R E E N
  146.  
  147.         This program prepares two types of report - a full report on the
  148.    entire file or one based on variables. Either can be printed and/or
  149.    sent to a disk file (for editing further using Wordstar or any other
  150.    word processor). It also produces a file in Wordstar Mailmerge format
  151.    to allow the user to select the presentation format. The report can be
  152.    alphabetically by title or by author.
  153.  
  154.         The variable report lets you add as many requirements as you wish.
  155.    (A requirement would be that a specific string be in a given field). Thus,
  156.    if you want all books dealing with the subject 'cheese' - type 'cheese'
  157.    (or 'che' or 'eese') in all the subject fields. If the requirement you
  158.    impose call for a string (including field names) of more than 200
  159.    characters the program will give you an error message and ask you to
  160.    try again.  This is a limitation of dBASE which we have to live with.
  161.  
  162.         The report menu also allows you to do a screen display by title 
  163.    or author.  Because of screen size, we have limited the information in
  164.    the display.
  165.  
  166.                                 Please hit any key to return to the program
  167. ENDT
  168.   SET CONSOLE OFF
  169.   WAIT
  170.   SET CONSOLE ON
  171.   ERAS
  172.  CASE (command = 'E' .OR. COMMAND = 'Q')
  173.   STOR f TO more
  174.  ENDC
  175.  SET PRINT OFF
  176.  SET ALTERNATE OFF
  177. ENDD
  178. REST from bdata additive
  179. SET INDEX TO &dr.:tindex
  180. GO TOP
  181. RELE ALL
  182. STOR t TO more
  183. STOR '?' TO command
  184. STOR t TO first
  185.