home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / lambda / soundpot / a / dbugraph.lbr / DEMGRAPH.CZD / DEMGRAPH.CMD
Encoding:
Text File  |  1993-10-26  |  5.3 KB  |  195 lines

  1. *--------------------------------------------------------
  2. *  Screen graphics demonstration program                |
  3. *  Universal terminal version                           |
  4. *  John Hathaway    3/1/83                              |
  5. *--------------------------------------------------------
  6. RELEASE ALL
  7. SET TALK OFF
  8. ERASE
  9. *--------------------------------------------------------
  10. *       new DBF file ?                        |
  11. *--------------------------------------------------------
  12. ? 'DBASE SCREEN GRAPHICS DEMONSTRATION PROGRAM'
  13. ?
  14. IF FILE("UGRAPH.DBF")
  15. USE UGRAPH
  16. ELSE
  17. ? 'FILE "UGRAPH.DBF" NOT IN THIS USER GROUP' 
  18. RETURN
  19. ENDIF
  20. STORE 0 TO D
  21. DO WHILE D<50
  22. STORE D+1 TO D
  23. ENDDO
  24. RELEASE D
  25. *--------------------------------------------------------
  26. * setup field variables and data base read conditions   |
  27. *--------------------------------------------------------
  28. *? 'ENTER FIELD VARIABLES AND CONDITIONS BELOW'
  29. ?
  30. STORE 'X' TO VX
  31. STORE 'Y' TO VY
  32. STORE 'X<>0' TO C
  33. ?
  34. ?
  35. STORE 'B' TO BARS
  36. IF !(BARS)='B'
  37. STORE  'LABEL' TO LABEL
  38. ENDIF
  39. ERASE
  40. ?'DETERMINING MINIMUM AND MAXIMUM DATA POINTS ...'
  41. ?
  42. STORE -10000 TO XMAX
  43. STORE 10000 TO XMIN
  44. STORE -10000 TO YMAX
  45. STORE 10000 TO YMIN
  46. STORE 1 TO NUM
  47. STORE 0 TO SUME
  48. GOTO TOP
  49. DO WHILE .NOT. EOF
  50. *   DISPLAY OFF 'RECORD #:',#,CHR(11)
  51.   IF &C
  52.     IF &VX<=XMIN
  53.         STORE &VX TO XMIN
  54.     ELSE
  55.     IF &VX>=XMAX
  56.         STORE &VX TO XMAX
  57.     ENDIF
  58.     ENDIF
  59.     IF &VY<=YMIN
  60.         STORE &VY TO YMIN
  61.     ELSE
  62.     IF &VY>=YMAX
  63.         STORE &VY TO YMAX
  64.     ENDIF
  65.     ENDIF
  66.     STORE NUM+1 TO NUM
  67.     STORE SUME+&VY TO SUME
  68.   ENDIF
  69.     SKIP+1
  70. ENDDO
  71. *-------------------------------------------------------
  72. * display minimum and maximum - allow alternate entries|
  73. *-------------------------------------------------------
  74. STORE '  ' TO RET
  75. ERASE
  76. @ 2,10 SAY 'AXIS SETUP SCREEN'
  77. @ 5,10 SAY 'NUMBER:'
  78. @ 5,20 SAY STR(NUM,6,0)
  79. @ 7,10 SAY 'AVERAGE:'
  80. @ 7,20 SAY STR(SUME/NUM,8,2)
  81. @ 8,10 SAY '-------------------'
  82. @ 10,10 SAY 'LOWER X'
  83. @ 10,20 SAY STR(XMIN,8,2)
  84. @ 11,10 SAY 'UPPER X'
  85. @ 11,20 SAY STR(XMAX,8,2)
  86. @ 13,10 SAY 'LOWER Y'
  87. @ 13,20 SAY STR(YMIN,8,2)
  88. @ 14,10 SAY 'UPPER Y'
  89. @ 14,20 SAY STR(YMAX,8,2)
  90. @ 17,1 SAY 'THESE ARE THE ACTUAL MAXIMUM AND MINUMUM DATA POINTS IN THE DATA'
  91. @ 18,1 SAY 'BASE.  THESE VALUES WOULD BE USED TO DETERMINE THE AXIS ENDPOINTS.'
  92. @ 19,1 SAY 'THE Y AXIS HAS 4 INTERVALS SO THE DIFFERENCE BETWEEN THE UPPER POINT'
  93. @ 20,1 SAY 'AND THE LOWER POINT SHOULD BE EVENLY DIVISABLE BY 4. X AXIS HAS 5.'
  94. @ 23,10 SAY 'PRESS "RETURN" TO CONTINUE' GET RET
  95. READ
  96. STORE 0 TO XMIN
  97. STORE 10 TO XMAX
  98. STORE 0 TO YMIN
  99. STORE 8 TO YMAX
  100. *--------------------------------------------------------
  101. *          determine axis scaling factors             |
  102. *--------------------------------------------------------
  103. STORE XMAX-XMIN TO XDIF
  104. STORE XDIF/5 TO XINC
  105. STORE YMAX-YMIN TO YDIF
  106. STORE YDIF/4 TO YINC
  107. STORE 1 TO X
  108. STORE 1 TO Y
  109. STORE 1 TO A
  110. ERASE
  111. *--------------------------------------------------------
  112. *                    draw Y axis   |
  113. *--------------------------------------------------------
  114. STORE YMAX TO B
  115. STORE '    ' TO D
  116. DO WHILE A<23
  117.     STORE (A-2)/5 TO F
  118.     IF YMAX>10
  119.         STORE STR(B-F*YINC,3) TO D
  120.     ELSE
  121.         STORE STR(B-F*YINC,3,1) TO D
  122.     ENDIF
  123.     IF A=2 .OR. A=7 .OR. A=12 .OR. A=17 .OR. A=22
  124.         @ A,1 SAY D
  125.         @ A,4 SAY '+'
  126.     ELSE
  127.         @ A,4 SAY '|'
  128.     ENDIF
  129.     STORE A+1 TO A
  130. ENDDO
  131. *--------------------------------------------------------
  132. *                       draw X axis            |
  133. *--------------------------------------------------------
  134. STORE 0 TO A
  135. @ 22,4 SAY '+--------------+--------------+--------------+--------------+--------------+'
  136. STORE 15 TO N5
  137. DO WHILE A<6
  138.     IF A=5 
  139.         STORE 14.4 TO N5
  140.     ENDIF
  141.     STORE XMIN+A*XINC TO B
  142.     @ 23,A*N5+1 SAY STR(B,5,1)
  143.     STORE A+1 TO A
  144. ENDDO
  145. @ 1,50 SAY 'Y AXIS ='
  146. @ 1,58 SAY VY
  147. @ 1,30 SAY 'X AXIS ='
  148. @ 1,38 SAY VX
  149. *--------------------------------------------------------
  150. *               read file and plot data         |
  151. *--------------------------------------------------------
  152. GOTO TOP
  153. DO WHILE .NOT. EOF
  154.     IF &C 
  155.         STORE (&VX-XMIN)/XDIF*75 TO X1
  156.         STORE (&VY-YMIN)/YDIF*20 TO Y1
  157.         STORE 22-Y1 TO JJ
  158.       IF !(BARS)='B'
  159.         @ JJ,X1+3 SAY '*'
  160.         @ JJ,X1+4 SAY '*'
  161.         @ JJ,X1+5 SAY '*'
  162.         STORE JJ+1 TO JJ
  163.         DO WHILE JJ<22
  164.             @ JJ,X1+3 SAY '|'
  165.             @ JJ,X1+5 SAY '|'
  166.             STORE JJ+1 TO JJ
  167.         ENDDO
  168. *--------------------------------------------------------
  169. *    plot labels vertically inside bars            |
  170. *--------------------------------------------------------
  171.         STORE 1 TO L
  172.         STORE TRIM(&LABEL) TO TLABEL
  173.         DO WHILE L<=LEN(TLABEL)
  174.             @ 21-LEN(TLABEL)+L,X1+4 SAY $(TLABEL,L,1)
  175.             STORE L+1 TO L
  176.         ENDDO
  177. *------------------------------------ scatter plot
  178.       ELSE
  179.         @ JJ,X1+4 SAY '*'
  180.       ENDIF
  181.     ENDIF
  182.     SKIP+1
  183. ENDDO
  184. RELEASE ALL
  185. *--------------------------------------------------------
  186. *     jump up here to avoid rolling the screen up    |
  187. *--------------------------------------------------------
  188. STORE '  ' TO YS
  189. @ 1,70 SAY 'RET' GET YS
  190. READ
  191. ERASE
  192. ? 'TYPE FILE "UGRAPH.DOC" FOR FURTHER INFORMATION'
  193. DO DEMOCHC
  194.  
  195.