home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / techs.zip / TECH18.ARC / MEMORPT.PRG < prev    next >
Text File  |  1985-11-02  |  2KB  |  83 lines

  1. * Program ...: Memorpt.PRG
  2. * Author ....: Christopher White
  3. * Date ......: November 1, 1985
  4. * Version ...: dBASE III, The Developer's Release
  5. * Note(s) ...: Program to print formatted memo fields with
  6. *              page headers, footers, and margin control.
  7. *
  8. SET TALK OFF
  9. SET SAFETY OFF
  10. SET PRINT ON
  11. *
  12. * ---User-definition area.
  13. yourfile   = "Yourfile"
  14. memofield  = "F2"
  15. linelength = 80
  16. memomargin = 5
  17. *
  18. * ---Initialize global variables.
  19. linecnt = 99
  20. page = 1
  21. toprint = 1
  22. memowidth  = STR( linelength  - memomargin )
  23. * ---Open work areas.
  24. SELECT 2
  25. USE Memotemp
  26. SELECT 1
  27. USE &yourfile
  28. * ---Print report.
  29. DO WHILE .NOT. EOF()
  30.    SET PRINT OFF
  31.    DO Getmemo WITH memowidth, toprint, yourfile, memofield
  32.    SET PRINT ON
  33.    printed = 1
  34.    DO WHILE printed <= toprint .AND. ( .NOT. EOF() )
  35.    * ---Check for new page.
  36.    IF linecnt > 58
  37.       DO Pagetop
  38.    ENDIF
  39.    *
  40.    * ---Print memo header from Yourfile record.  
  41.    * ---Define your format here.
  42.    ?  "Field One Title" , Fld1
  43.    ?? " Field Two Title", Fld2
  44.    ?
  45.    linecnt = linecnt + 2
  46.    * ---Print memo field for master record.
  47.    SELECT Memotemp
  48.    newrec = .T.
  49.    rec = VAL( Recnum ) + 1
  50.    DO WHILE VAL( Recnum ) <> rec .AND. ( .NOT. EOF() )
  51.       * ---Check for new page.
  52.       IF linecnt > 58
  53.          IF .NOT. newrec
  54.             ?
  55.             ? SPACE( 40 ),"(Continued)"
  56.             DO Pagetop
  57.             ? SPACE( memomargin ),"(Continued)"
  58.             ?
  59.             linecnt = linecnt + 2
  60.          ELSE
  61.             DO Pagetop
  62.          ENDIF
  63.       ENDIF
  64.       ? SPACE( memomargin ), TRIM( line )
  65.       linecnt = linecnt + 1
  66.       newrec = .F.
  67.       SKIP
  68.    ENDDO
  69.    SELECT &yourfile
  70.    * ---Print footer line for Yourfile record.
  71.    ?
  72.    linecnt= linecnt + 1
  73.    printed = printed + 1
  74.    SKIP
  75.    ENDDO
  76. ENDDO
  77. * ---Clean up.
  78. CLEAR ALL
  79. SET PRINT OFF
  80. SET SAFETY ON
  81. SET TALK ON
  82. RETURN
  83. * EOP Memorpt.PRG