home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / xbase / library / dbase / dict / dict.prn < prev    next >
Encoding:
Text File  |  1986-02-18  |  3.7 KB  |  127 lines

  1. * DICT.PRN
  2. * Paul Ferrara [70075,252]
  3. * Bill Lonborg [70045,1237]
  4. * Last Change: 02-17-86 00:05
  5. *
  6. IF FILE("PARAM.MEM")
  7.    RESTORE FROM param ADDITIVE
  8. ELSE
  9.    STORE CHR(14) TO mprintwide
  10.    STORE 80 TO mpagewdth
  11.    STORE 66 TO mpagelen
  12. ENDIF
  13. SET COLOR TO &mtitl./&mnorb.,&menhf./&menhb.,&mbord
  14. CLEAR
  15. @  1, 0 SAY "PRINT THE DICTIONARY"
  16. @  1,72 SAY date()
  17. @  2, 0 SAY "═══════════════════════════════════════════════════════"
  18. @  2,55 SAY "═════════════════════════"
  19. @ 23, 0 SAY "═══════════════════════════════════════════════════════"
  20. @ 23,55 SAY "═════════════════════════"
  21. * prepare printer
  22. SET COLOR TO &mblnk.*/&mnorb.,&menhf./&menhb.,&mbord
  23. @  4,32 SAY "Prepare printer."
  24. SET COLOR TO &mmess./&mnorb.,&menhf./&menhb.,&mbord
  25. @  5,19 SAY 'Press "Q" to quit or any key to continue.'
  26. SET COLOR TO &mnorf./&mnorb.,&menhf./&menhb.,&mbord
  27. SET CONSOLE OFF
  28. WAIT TO option
  29. SET CONSOLE ON
  30. IF UPPER(option)="Q"
  31.    CLEAR
  32.    RETURN
  33. ENDIF
  34. @  4, 0
  35. @  5, 0
  36. * test for existence of dictnary file
  37. IF .NOT. FILE("DICTNARY.DBF")
  38.    SET COLOR TO &mblnk.*/&mnorb.,&menhf./&menhb.,&mbord
  39.    @ 20,28 SAY "Dictionary file missing."
  40.    SET COLOR TO &mmess./&mnorb.,&menhf./&menhb.,&mbord
  41.    @ 21,24 SAY "Press any key to return to menu."
  42.    SET COLOR TO &mnorf./&mnorb.,&menhf./&menhb.,&mbord
  43.    SET CONSOLE OFF
  44.    WAIT
  45.    SET CONSOLE ON
  46.    CLEAR
  47.    RETURN
  48. ENDIF
  49. SELECT 1
  50. USE dictnary
  51. SET COLOR TO &mblnk.*/&mnorb.,&menhf./&menhb.,&mbord
  52. @  4,32 SAY "Printing report."
  53. SET COLOR TO &mnorf./&mnorb.,&menhf./&menhb.,&mbord
  54. SET DEVICE TO PRINT
  55. SET MARGIN TO INT(mpagewdth-80)/2
  56. STORE mpagelen-2 TO mrow
  57. STORE 1 TO mpage
  58. * begin printing report
  59. DO WHILE .NOT. EOF()
  60.    STORE file_name to mfilename
  61.    STORE 1 TO mttlwidth
  62.    STORE 1 TO mfieldno
  63.    STORE .T. TO mnewfile
  64.    DO WHILE file_name=mfilename .AND. .NOT. EOF()
  65.       IF mrow>=(mpagelen-3)
  66.          @  1, 0 SAY date()
  67.          @  2, 0 SAY "Page"+STR(mpage,2)
  68.          @  3,31 SAY "Dictionary Listing"
  69.          STORE mpage+1 TO mpage
  70.          STORE 5 TO mrow
  71.          STORE .T. TO mnewpage
  72.       ENDIF
  73.       IF field_type="X"
  74.          IF mrow>(mpagelen-11)
  75.             STORE mpagelen-2 TO mrow
  76.             LOOP
  77.          ENDIF
  78.          @ mrow,   0 SAY "Filename:"
  79.          @ mrow,  19 SAY mprintwide+TRIM(file_name)+".DBF"
  80.          @ mrow+1, 0 SAY "File description:"
  81.          @ mrow+1,19 SAY field_desc
  82.          STORE mrow+3 TO mrow
  83.          STORE .T. TO mnewfile
  84.          SKIP
  85.       ENDIF
  86.       IF mnewpage .OR. mnewfile
  87.          @ mrow,   0 SAY "FLD FIELD NAME TYPE WIDTH DEC                 FIELD DESCRIPTION"
  88.          @ mrow+1, 0 SAY "=== ========== ==== ===== === =================================================="
  89.          STORE mrow+2 TO mrow
  90.          STORE .F. TO mnewpage, mnewfile
  91.       ENDIF
  92.       @ mrow, 0 SAY mfieldno PICTURE "999"
  93.       @ mrow, 4 SAY field_name
  94.       * print abbr file type
  95.       DO CASE
  96.          CASE field_type="C"
  97.             @ mrow,15 SAY "Char"
  98.          CASE field_type="N"
  99.             @ mrow,15 SAY "Num"
  100.          CASE field_type="D"
  101.             @ mrow,15 SAY "Date"
  102.          CASE field_type="L"
  103.             @ mrow,15 SAY "Log"
  104.          CASE field_type="M"
  105.             @ mrow,15 SAY "Memo"
  106.       ENDCASE
  107.       @ mrow,22 SAY field_len
  108.       * if numeric field type, print decimals
  109.       IF field_type="N"
  110.          @ mrow,26 SAY field_dec
  111.       ENDIF
  112.       @ mrow,30 SAY field_desc
  113.       STORE mttlwidth+field_len TO mttlwidth
  114.       SKIP
  115.       STORE mfieldno+1 TO mfieldno
  116.       STORE mrow+1 TO mrow
  117.    ENDDO
  118.    @ mrow, 0 SAY "** Total **"
  119.    @ mrow,21 SAY mttlwidth PICTURE "9999"
  120.    STORE mrow+3 TO mrow
  121. ENDDO
  122. EJECT
  123. SET DEVICE TO SCREEN
  124. CLEAR
  125. CLOSE DATABASES
  126. RETURN
  127.