home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug159.arc / SCRORPRT.PRO < prev    next >
Text File  |  1979-12-31  |  4KB  |  107 lines

  1. * Scrorprt.pro
  2. * A procedure to output to screen or printer
  3. * Get the drive and file name for processing (mdfilename)
  4. * Copy to Tempstor the fields that are required for processing
  5. * (This preserves the data file from possible corruption)
  6. * Ask operator to provide a reference (stored in memvar)
  7. * Process data and keep operator informed
  8. * Complete processing
  9. * Ask operator for screen or printer output
  10. * Set up the appropriate default values for page length etc
  11. * Output the data to the screen or printer
  12. * Exit to calling programme or quit dBase
  13. *
  14. * memvars     :mspaces,mdfilename,memvar,
  15.            mpagehdg,mreply,mreply2
  16. * memvars     :mpagenum,mline,mpagelen,
  17.            mcolhdg,mnumrecs,mamt,
  18. *          :mcheck,mcount,moutput
  19. *
  20.  @ 3,mcolhdg SAY mpagehdg
  21.  @ 5,15 SAY '************************************'
  22.  @ 6,15 SAY '*                                  *'
  23.  @ 7,15 SAY '*    LIST TO THE SCREEN. - - - S   *'
  24.  @ 8,15 SAY '*                                  *'
  25.  @ 9,15 SAY '*    LIST TO THE PRINTER.- - - P   *'
  26.  @10,15 SAY '*                                  *'
  27.  @11,15 SAY '************************************'
  28.  @14,30 SAY ' YOUR SELECTION ? '
  29.  @14,50 GET mreply PICTURE '!'
  30.  READ
  31.  DO CASE
  32.  CASE mreply = 'S'
  33.      ERASE
  34.      STORE 21 TO mpagelen
  35.      STORE 23 TO mline
  36.  CASE mreply = 'P'
  37.      SET FORMAT TO PRINT
  38. * Tell printer that page length is 70 lines
  39. * (11.65 inches) with a 8 line skip
  40. * (assume Epson compatible)
  41.      @ 0,0  SAY CHR(27)+CHR(67)+CHR(70)
  42.      @ 0,40 SAY CHR(27)+CHR(78)+CHR(8)
  43. * zero the page number counter and load the line
  44. * counter with a number larger than the selected
  45. * report page length so that the heading is
  46. *  printed first
  47.      STORE 60 TO mpagelen
  48.      STORE 61 TO mline
  49.  OTHERWISE
  50.      ERASE
  51.      SET BELL ON
  52.      SET TALK ON
  53.      RELEASE ALL
  54.      RETURN
  55.  ENDCASE
  56.  STORE 0 TO moutput
  57.  * continue output to screen or printer
  58.  DO WHILE moutput  1
  59.     IF mline mpagelen
  60.      IF mreply = 'S'
  61.      * printing to the screen
  62.      @ 23,15 SAY 'PRESS RETURN KEY TO CONTINUE'
  63.      WAIT
  64.      ERASE
  65.      * page heading for the screen
  66.      @ 1,66 SAY 'PAGE NO.' + STR(mpagenum,3)
  67.           @ 2,mcolhdg SAY mpagehdg
  68.           * ---Generate column headings          @ 4,5   SAY ' FIRST HEADING    '
  69.           @ 4,30  SAY ' NEXT one   '
  70.           @ 4,64  SAY ' NEXT one   '
  71.           @ 5,5   SAY '=================='
  72.           @ 5,30  SAY '============'
  73.           @ 5,64  SAY '============'
  74.           STORE mpagenum + 1 TO mpagenum
  75.           STORE 5 TO mline
  76.    ENDIF
  77.    IF mreply = 'P'
  78.      * printed page heading
  79.      STORE 0 TO mline
  80.      <%-2>@ mline,60 SAY 'PAGE NO. ' + STR(mpagenum,3)<%0>
  81.      STORE 1 TO mline
  82.      @ mline,mcolhdg SAY mpagehdg
  83.      * ---Generate column headings.
  84.      @ mline + 3,5  SAY ' First heading '
  85.      @ mline + 3,30 SAY ' Next one      '
  86.      @ mline + 3,64 SAY ' Next one      '
  87.      @ mline + 4,5  SAY '==============='
  88.      @ mline + 4,30 SAY '==============='
  89.      @ mline + 4,64 SAY '==============='
  90.      STORE mpagenum + 1 TO mpagenum
  91.           STORE 6 TO mline
  92.          ENDIF
  93.      ENDIF
  94.      *
  95. * Output the information that has been processed
  96. * Increment the line counter
  97.      STORE mline + 1 TO mline
  98.      @ mline,5  SAY  ' Selection criteria 1'
  99.      @ mline,31 SAY memvar1
  100.      @ mline,64 SAY memvar2
  101. *
  102.      * continue processing data
  103.      IF data finished
  104.         STORE 1 TO moutput
  105.      ENDIF
  106. ENDDO * moutput 0
  107.