home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / pssst.zip / PSSUSPEN.PRG < prev    next >
Text File  |  1986-07-15  |  9KB  |  336 lines

  1. * PSSUSPEN.PRG
  2. *
  3. * A DBASE II 16BIT COMMAND FILE to allow input or creation of
  4. * filename, and display of suspenses.  Control is then shifted
  5. * back to PSSST.PRG for main menu options.
  6. *
  7. * Version 1
  8. * By LTC Denny Hugg
  9. * ANGSC/DOS Andrews AFB MD 16 Jul 1985
  10. *
  11. * Version 2
  12. * modified by Maj Jim McMurry
  13. * ANGSC/DOSC Truax Field, WI 15 Jun 1986
  14. *
  15. ERASE
  16. STORE 'S U S P E N S E   T R A C K I N G   S Y S T E M' TO heading
  17. DO PSHEADING
  18. STORE ' ' TO moutput
  19. @ 22,14 SAY 'Do You Want Suspenses On Screen Or Printer? (S/P) '
  20. DO WHILE moutput <> 'S' .AND. moutput <> 'P'
  21.    STORE ' ' TO moutput
  22.    @ 22,64 GET moutput PICTURE '!'
  23.    READ
  24. ENDDO
  25. @ 22, 0 SAY gclearline
  26. * --- to determine 7 day suspense taking into account various months
  27. * --- and leap years
  28. STORE VAL($(gdate,1,2)) TO year
  29. STORE VAL($(gdate,4,2)) TO month
  30. STORE VAL($(gdate,7,2)) TO day
  31. DO CASE
  32.    CASE (month = 4 .OR. month = 6) .OR. (month = 9 .OR. month = 11)
  33.       IF day > 23
  34.          STORE day - 23 TO mday
  35.          STORE month + 1 TO mmonth
  36.          STORE year TO myear
  37.       ELSE
  38.          STORE day + 7 TO mday
  39.          STORE month TO mmonth
  40.          STORE year TO myear
  41.       ENDIF
  42.    CASE month = 2
  43.       IF INT(year/4) <> year/4 .OR. INT(year/100) <> 0
  44.          IF day > 21
  45.             STORE day - 21 TO mday
  46.             STORE 3 TO mmonth
  47.             STORE year TO myear
  48.          ELSE
  49.             STORE day + 7 TO mday
  50.             STORE 2 TO mmonth
  51.             STORE year TO myear
  52.          ENDIF
  53.       ELSE
  54.          IF day > 22
  55.             STORE day - 22 TO mday
  56.             STORE 3 TO mmonth
  57.             STORE year TO myear
  58.          ELSE
  59.             STORE day + 7 TO mday
  60.             STORE 2 TO mmonth
  61.             STORE year TO myear
  62.          ENDIF
  63.       ENDIF
  64.    OTHERWISE
  65.       IF day > 24
  66.          STORE day - 24 TO mday
  67.          STORE month + 1 TO mmonth
  68.          STORE year TO myear
  69.       ELSE
  70.          STORE day + 7 TO mday
  71.          STORE month TO mmonth
  72.          STORE year TO myear
  73.       ENDIF
  74. ENDCASE
  75. STORE STR(myear,2) + '/' TO mdate7
  76. IF mmonth > 9
  77.    STORE mdate7 + STR(mmonth,2) + '/' TO mdate7
  78. ELSE
  79.    STORE mdate7 + '0' + STR(mmonth,1) + '/' TO mdate7
  80. ENDIF
  81. IF mday > 9
  82.    STORE mdate7 + STR(mday,2) TO mdate7
  83. ELSE
  84.    STORE mdate7 + '0' + STR(mday,1) TO mdate7
  85. ENDIF
  86. @ 10, 0 SAY gclearline
  87. * --- indexing is more efficient than sorting for the variety of our tasks
  88. USE &gsusfile INDEX &gsusindex
  89. * --- IF EOF
  90. IF # = 0
  91. * --- nobody home so let's go somewhere else
  92.    USE
  93.    STORE 10 TO line
  94.    STORE 'No Suspense Items Stored ' + gfirstname TO prompt
  95.    DO PSPROMPT
  96.    STORE 0 TO mcount
  97.    DO WHILE mcount < gdelay
  98.       STORE mcount + 1 TO mcount
  99.    ENDDO
  100. * --- release local variables
  101.    RELEASE ALL EXCEPT g*
  102.    RETURN
  103. ENDIF
  104. * --- print suspenses
  105. IF moutput = 'P'
  106.    STORE 56 TO mpagelen
  107.    STORE 1 TO pageno
  108.    STORE 22 TO line
  109.    STORE 'N' TO gflag
  110.    STORE 'Printing Now ...' TO prompt
  111.    DO PSPROMPT
  112.    STORE 'Y' TO gflag
  113.    SET FORMAT TO PRINT
  114.    STORE 2 TO mline
  115.    STORE '----------------------------------------';
  116.         +'----------------------------------------' TO gline
  117. ELSE
  118.    ERASE
  119.    STORE 20 TO mpagelen
  120.    STORE 1 TO mline
  121. ENDIF
  122. IF moutput = 'P'
  123.    @ mline, 1 SAY 'Page no. ' + STR(pageno,1)
  124.    @ mline,24 SAY 'S U S P E N S E   L I S T I N G'
  125.    @ mline,71 SAY gdate
  126.    STORE mline + 1 TO mline
  127. ELSE
  128.    STORE mline TO line
  129.    STORE 'SUSPENSE LISTING' TO prompt
  130.    DO PSPROMPT
  131. ENDIF
  132. STORE mline + 2 TO mline
  133. * --- find overdue stuff
  134. STORE 0 TO mpasses
  135. @ mline, 0 SAY 'DUE DATE'
  136. @ mline,10 SAY 'SUSPENSE ITEM'
  137. @ mline,66 SAY 'TASKED BY'
  138. STORE mline + 1 TO mline
  139. @ mline, 0 SAY gline
  140. STORE mline + 1 TO mline
  141. @ mline, 10 SAY 'Overdue Items:'
  142. STORE mline + 1 TO mline
  143. DO WHILE .NOT. EOF
  144.    IF mline > mpagelen
  145.       STORE 2 TO mline
  146.       IF moutput = "S"
  147.          @ 22,21 SAY "- Please Strike Any Key To Continue -"
  148.          SET CONSOLE OFF
  149.          WAIT
  150.          SET CONSOLE ON
  151.          ERASE
  152.       ELSE
  153.          EJECT
  154.          STORE pageno + 1 TO pageno
  155.          @ mline, 0 SAY 'Page no. ' + STR(pageno,1)
  156.          @ mline,72 SAY gdate
  157.          STORE mline + 3 To mline
  158.       ENDIF
  159.       @ mline, 0 SAY 'DUE DATE'
  160.       @ mline,10 SAY 'SUSPENSE ITEM'
  161.       @ mline,66 SAY 'TASKED BY'
  162.       STORE mline + 1 TO mline
  163.       @ mline, 0 SAY gline
  164.       STORE mline + 1 TO mline
  165.    ENDIF
  166.    IF gdate > duedate
  167.       @ mline, 0 SAY duedate
  168.       @ mline,10 SAY descrip
  169.       @ mline,66 SAY origin
  170.       STORE mline + 1 TO mline
  171.       STORE mpasses + 1 TO mpasses
  172.    ENDIF
  173.    SKIP
  174. ENDDO gdate > duedate
  175. IF mpasses = 0
  176.    STORE mline - 1 TO mline
  177.    @ mline,26 SAY "None"
  178.    STORE mline + 1 TO mline
  179. ENDIF
  180. IF moutput = "S"
  181.    STORE mline + 1 TO mline
  182. ELSE
  183.    STORE mline + 2 TO mline
  184. ENDIF
  185. GO TOP
  186. * --- find stuff due today
  187. STORE 0 TO mpasses
  188. @ mline, 10 SAY 'Items Due Today:'
  189. STORE mline + 1 TO mline
  190. DO WHILE .NOT. EOF
  191.    IF mline > mpagelen
  192.       STORE 2 TO mline
  193.       IF moutput = "S"
  194.          @ 22,21 SAY "- Please Strike Any Key To Continue -"
  195.          SET CONSOLE OFF
  196.          WAIT
  197.          SET CONSOLE ON
  198.          ERASE
  199.       ELSE
  200.          EJECT
  201.          STORE pageno + 1 TO pageno
  202.          @ mline, 0 SAY 'Page no. ' + STR(pageno,1)
  203.          @ mline,72 SAY gdate
  204.          STORE mline + 3 TO mline
  205.       ENDIF
  206.       @ mline, 0 SAY 'DUE DATE'
  207.       @ mline,10 SAY 'SUSPENSE ITEM'
  208.       @ mline,66 SAY 'TASKED BY'
  209.       STORE mline + 1 TO mline
  210.       @ mline, 0 SAY gline
  211.       STORE mline + 1 TO mline
  212.    ENDIF
  213.    IF gdate = duedate
  214.       @ mline, 0 SAY duedate
  215.       @ mline,10 SAY descrip
  216.       @ mline,66 SAY origin
  217.       STORE mline + 1 TO mline
  218.       STORE mpasses + 1 TO mpasses
  219.    ENDIF
  220.    SKIP
  221. ENDDO  gdate = duedate
  222. IF mpasses = 0
  223.    STORE mline - 1 TO mline
  224.    @ mline,28 SAY 'None'
  225.    STORE mline + 1 TO mline
  226. ENDIF
  227. IF moutput = 'S'
  228.    STORE mline + 1 TO mline
  229. ELSE
  230.    STORE mline + 2 TO mline
  231. ENDIF
  232. * --- find stuff due in next 7 days
  233. GO TOP
  234. STORE 0 TO mpasses
  235. @ mline, 10 SAY 'Items Due In The Next 7 Days:'
  236. STORE mline + 1 TO mline
  237. DO WHILE .NOT. EOF
  238.    IF mline > mpagelen
  239.       STORE 2 TO mline
  240.       IF moutput = "S"
  241.          @ 22,21 SAY "- Please Strike Any Key To Continue -"
  242.          SET CONSOLE OFF
  243.          WAIT
  244.          SET CONSOLE ON
  245.          ERASE
  246.       ELSE
  247.          EJECT
  248.          STORE pageno + 1 TO pageno
  249.          @ mline, 0 SAY 'Page no. ' + STR(pageno,1)
  250.          @ mline,72 SAY gdate
  251.          STORE mline + 3 TO mline
  252.       ENDIF
  253.       @ mline, 0 SAY 'DUE DATE'
  254.       @ mline,10 SAY 'SUSPENSE ITEM'
  255.       @ mline,66 SAY 'TASKED BY'
  256.       STORE mline + 1 TO mline
  257.       @ mline, 0 SAY gline
  258.       STORE mline + 1 TO mline
  259.    ENDIF
  260.    IF gdate < duedate .AND. duedate <= mdate7
  261.       @ mline, 0 SAY duedate
  262.       @ mline,10 SAY descrip
  263.       @ mline,66 SAY origin
  264.       STORE mline + 1 TO mline
  265.       STORE mpasses + 1 TO mpasses
  266.     ENDIF
  267.     SKIP
  268. ENDDO next 7 days
  269. IF mpasses = 0
  270.    STORE mline - 1 TO mline
  271.    @ mline,41 SAY 'None'
  272.    STORE mline + 1 TO mline
  273. ENDIF
  274. IF moutput = 'S'
  275.    STORE mline + 1 TO mline
  276. ELSE
  277.    STORE mline + 2 TO mline
  278. ENDIF
  279. STORE 0 TO mpasses
  280. @ mline, 10 SAY 'Other Suspenses Facing You:'
  281. STORE mline + 1 TO mline
  282. GO TOP
  283. * --- find stuff due after next week
  284. DO WHILE .NOT. EOF
  285.    IF mline > mpagelen
  286.       STORE 2 TO mline
  287.       IF moutput = "S"
  288.          @ 22,21 SAY "- Please Strike Any Key To Continue -"
  289.          SET CONSOLE OFF
  290.          WAIT
  291.          SET CONSOLE ON
  292.          ERASE
  293.       ELSE
  294.          EJECT
  295.          STORE pageno + 1 TO pageno
  296.          @ mline, 0 SAY 'Page no. ' + STR(pageno,1)
  297.          @ mline,72 SAY gdate
  298.          STORE mline + 3 TO mline
  299.       ENDIF
  300.       @ mline, 0 SAY 'DUE DATE'
  301.       @ mline,10 SAY 'SUSPENSE ITEM'
  302.       @ mline,66 SAY 'TASKED BY'
  303.       STORE mline + 1 TO mline
  304.       @ mline, 0 SAY gline
  305.       STORE mline + 1 TO mline
  306.    ENDIF
  307.    IF duedate > mdate7
  308.       @ mline, 0 SAY duedate
  309.       @ mline,10 SAY descrip
  310.       @ mline,66 SAY origin
  311.       STORE mline + 1 TO mline
  312.       STORE mpasses + 1 TO mpasses
  313.    ENDIF
  314.    SKIP
  315. ENDDO suspenses beyond a week
  316. IF mpasses = 0
  317.    STORE mline - 1 TO mline
  318.    @ mline,39 SAY 'None'
  319.    STORE mline + 1 TO mline
  320. ENDIF
  321. USE
  322. IF moutput = "S"
  323.    @ 22,21 SAY "- Please Strike Any Key To Continue -"
  324.    SET CONSOLE OFF
  325.    WAIT
  326.    SET CONSOLE ON
  327. ELSE
  328. * --- dumps last line out of printer buffer
  329.    @ 0, 0 SAY CHR(13)
  330.    SET FORMAT TO SCREEN
  331. ENDIF
  332. RELEASE ALL EXCEPT g*
  333. ERASE
  334. RETURN
  335. * --- EOF PSSUSPEN.PRG
  336.