home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / pcmagazi / 1992 / 09 / spcchk.spr < prev    next >
Text File  |  1992-01-26  |  8KB  |  259 lines

  1. *       ╓─────────────────────────────────────────────────────────╖
  2. *       ║                                                         ║
  3. *       ║ 01/26/92             SPCCHK.SPR                13:57:08 ║
  4. *       ║                                                         ║
  5. *       ╟─────────────────────────────────────────────────────────╢
  6. *       ║                                                         ║
  7. *       ║ Author's Name                                           ║
  8. *       ║                                                         ║
  9. *       ║ Copyright (c) 1992 Company Name                         ║
  10. *       ║ Address                                                 ║
  11. *       ║ City,     Zip                                           ║
  12. *       ║                                                         ║
  13. *       ║ Description:                                            ║
  14. *       ║ This program was automatically generated by GENSCRN.    ║
  15. *       ║                                                         ║
  16. *       ╙─────────────────────────────────────────────────────────╜
  17.  
  18.  
  19. #REGION 0
  20. REGIONAL m.currarea, m.talkstat, m.compstat
  21.  
  22. IF SET("TALK") = "ON"
  23.     SET TALK OFF
  24.     m.talkstat = "ON"
  25. ELSE
  26.     m.talkstat = "OFF"
  27. ENDIF
  28. m.compstat = SET("COMPATIBLE")
  29. SET COMPATIBLE FOXPLUS
  30.  
  31. m.currarea = SELECT()
  32.  
  33.  
  34. *       ╓─────────────────────────────────────────────────────────╖
  35. *       ║                                                         ║
  36. *       ║                    Window definitions                   ║
  37. *       ║                                                         ║
  38. *       ╙─────────────────────────────────────────────────────────╜
  39. *
  40.  
  41. IF NOT WEXIST("spcchk")
  42.     DEFINE WINDOW spcchk ;
  43.         FROM INT((SROW()-9)/2),INT((SCOL()-48)/2) ;
  44.         TO INT((SROW()-9)/2)+8,INT((SCOL()-48)/2)+47 ;
  45.         TITLE "Field Space Usage Calculator" ;
  46.         FLOAT ;
  47.         CLOSE ;
  48.         SHADOW ;
  49.         MINIMIZE ;
  50.         SYSTEM ;
  51.         COLOR SCHEME 8
  52. ENDIF
  53.  
  54.  
  55. *       ╓─────────────────────────────────────────────────────────╖
  56. *       ║                                                         ║
  57. *       ║              SPCCHK Setup Code - SECTION 2              ║
  58. *       ║                                                         ║
  59. *       ╙─────────────────────────────────────────────────────────╜
  60. *
  61.  
  62. #REGION 1
  63. PUBLIC oldesc, oldecho, oldtalk, tindex
  64. SET SYSMENU AUTOMATIC
  65.  
  66. tindex = ""                   && temporary index filename
  67. oldesc = SET("ESCAPE")
  68. SET ESCAPE OFF
  69. oldecho = SET("ECHO")
  70. SET ECHO OFF
  71. oldtalk = SET("TALK")
  72. SET TALK OFF
  73.  
  74. ON ERROR DO Shutdown WITH ;
  75.     ERROR(), MESSAGE(), MESSAGE(1), PROGRAM(), LINENO(), tindex
  76.  
  77. *
  78. *  Do this for screen shot
  79. *
  80. IF SROWS() < 26 .AND. SCOLS() < 81
  81.   CLEAR
  82.   SET COLOR TO W+/N
  83.   pcmag="PC Magazine Databases PC Magaz"+;
  84.       "ine Databases PC Magazine Data"+;
  85.       "bases PC Magazine "
  86.   single = CHR(218)+CHR(196)+CHR(191)+;
  87.   CHR(179)+CHR(217)+CHR(196)+CHR(192)+;
  88.   CHR(179)
  89.   @ 1, 0, 24, 79 BOX single+"x"
  90.   i = 2
  91.   DO WHILE i <=23
  92.      @ i,1 SAY pcmag
  93.      i = i + 1
  94.   ENDDO
  95. ENDIF
  96.  
  97. IF "" = ALIAS()
  98.    fln = GETFILE("DBF","Select the file to space check:")
  99.    IF "" = fln
  100.       CLEAR
  101.       RETURN
  102.    ELSE
  103.       USE (fln)
  104.    ENDIF
  105. ENDIF
  106.  
  107. okbutton = "Check Usage"
  108. fldvar = 1         && initialize to zero
  109. fldcount = AFIELDS(fldlist)
  110.  
  111. *
  112. * Remove non-character fields from the array
  113. * and redimension the array
  114. *
  115. X = 1
  116. DO WHILE X <= fldcount
  117.    IF fldlist(X,2) <> "C"
  118.       =ADEL(fldlist,X)
  119.       fldcount = fldcount - 1
  120.    ELSE
  121.       X = X + 1
  122.    ENDIF
  123. ENDDO
  124. DECLARE fldlist[fldcount,4]    && redimension
  125.  
  126.  
  127. *       ╓─────────────────────────────────────────────────────────╖
  128. *       ║                                                         ║
  129. *       ║                  SPCCHK Screen Layout                   ║
  130. *       ║                                                         ║
  131. *       ╙─────────────────────────────────────────────────────────╜
  132. *
  133.  
  134. #REGION 1
  135. IF WVISIBLE("spcchk")
  136.     ACTIVATE WINDOW spcchk SAME
  137. ELSE
  138.     ACTIVATE WINDOW spcchk NOSHOW
  139. ENDIF
  140. @ 1,24 GET fldvar ;
  141.     PICTURE "@^" ;
  142.     FROM fldlist ;
  143.     SIZE 3,13 ;
  144.     DEFAULT 1 ;
  145.     COLOR SCHEME 8, 9
  146. @ 2,8 SAY "Field to check:" ;
  147.     COLOR BG+/BG  
  148. @ 5,9 GET okbutton ;
  149.     PICTURE "@*HN Check \<Usage;\?\<Cancel" ;
  150.     SIZE 1,13,1 ;
  151.     DEFAULT 1 ;
  152.     VALID _q2m0twlji()
  153.  
  154. IF NOT WVISIBLE("spcchk")
  155.     ACTIVATE WINDOW spcchk
  156. ENDIF
  157.  
  158. READ CYCLE
  159.  
  160. RELEASE WINDOW spcchk
  161. SELECT (m.currarea)
  162.  
  163.  
  164. #REGION 0
  165. IF m.talkstat = "ON"
  166.     SET TALK ON
  167. ENDIF
  168. IF m.compstat = "ON"
  169.     SET COMPATIBLE ON
  170. ENDIF
  171.  
  172.  
  173. *       ╓─────────────────────────────────────────────────────────╖
  174. *       ║                                                         ║
  175. *       ║                   SPCCHK Cleanup Code                   ║
  176. *       ║                                                         ║
  177. *       ╙─────────────────────────────────────────────────────────╜
  178. *
  179.  
  180. #REGION 1
  181. SET ESCAPE &oldesc
  182. SET TALK &oldtalk
  183. SET ECHO &oldecho
  184. CLEAR
  185.  
  186.  
  187. ***********************************************************
  188. * PROCEDURE Shutdown - Called by ON ERROR
  189. *
  190. * This is an abbreviated error handler that just closes
  191. * everything and cancels, displaying some messages...
  192. *
  193. ***********************************************************
  194. PROCEDURE Shutdown
  195. PARAMETER merror, mess, mess1, mprog, mlineno, tfile
  196. CLOSE INDEX
  197. CLOSE DATABASES
  198. FLUSH
  199. RELEASE WINDOW spcchk
  200. CLEAR
  201. ?
  202. ? 'Error number: ' + LTRIM(STR(merror))
  203. ? 'Error message: ' + mess
  204. ? 'Line of code with error: ' + mess1
  205. ? 'Line number of error: ' + LTRIM(STR(mlineno))
  206. ? 'Program with error: ' + mprog
  207.  
  208. *
  209. * IF FILE(tfile + ".IDX")
  210. *   DELETE FILE (tfile + ".IDX")
  211. * ENDIF
  212.  
  213. CANCEL
  214.  
  215. RETURN
  216.  
  217. *       ╓─────────────────────────────────────────────────────────╖
  218. *       ║                                                         ║
  219. *       ║ _Q2M0TWLJI           okbutton VALID                     ║
  220. *       ║                                                         ║
  221. *       ║ Function Origin:                                        ║
  222. *       ║                                                         ║
  223. *       ║ From Screen:         SPCCHK,     Record Number:    4    ║
  224. *       ║ Variable:            okbutton                           ║
  225. *       ║ Called By:           VALID Clause                       ║
  226. *       ║ Object Type:         Push Button                        ║
  227. *       ║ Snippet Number:      1                                  ║
  228. *       ║                                                         ║
  229. *       ╙─────────────────────────────────────────────────────────╜
  230. *
  231. FUNCTION _q2m0twlji     &&  okbutton VALID
  232. #REGION 1
  233. DO CASE
  234. CASE okbutton = "Check Usage"
  235.    oldord = ORDER()
  236.    tindex = SYS(3)                  && temporary file name
  237.    fldname = fldlist(fldvar,1)
  238.    fldwidth = fldlist(fldvar,3)
  239.    WAIT WINDOW "Working..." NOWAIT
  240.    INDEX ON LEN(ALLTRIM(&fldname)) TO (tindex) COMPACT
  241.    GO BOTTOM
  242.    maxwid = LEN(ALLTRIM(&fldname))
  243.    msgnum = ALLTRIM(TRANSFORM(maxwid,"999,999"))
  244.    msg = "Maximum usage is " + msgnum + " bytes out of " + ;
  245.       ALLTRIM(TRANSFORM(fldwidth,"999,999")) + ". "
  246.    msgnum = ALLTRIM(TRANSFORM(RECCOUNT()*(fldwidth-maxwid),"9,999,999,999"))
  247.    msg = msg + "Savings potential is " + msgnum + " bytes."
  248.    WAIT msg WINDOW
  249.    SET INDEX TO
  250.    IF "" <> oldord
  251.       SET INDEX TO (oldord)
  252.    ENDIF
  253.    DELETE FILE (tindex+".idx")
  254.    _CUROBJ = 1                      && go back to fields popup
  255. OTHERWISE
  256.    CLEAR READ
  257. ENDCASE
  258. RETURN
  259.