home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / pssst.zip / PSDELETP.PRG < prev    next >
Text File  |  1986-07-17  |  12KB  |  327 lines

  1. * PSDELETP.PRG
  2. *
  3. * A DBASE II 16BIT COMMAND FILE to allow deletion of records from
  4. * the PHONE datafile. The selection may be the scan mode which
  5. * allows viewing/deleting, either by selecting a letter or going through
  6. * the entire alphabet letter by letter.
  7. *
  8. * Version 1
  9. * By LTC Denny Hugg
  10. * ANGSC/DOS Andrews AFB MD 16 Jul 1985
  11. *
  12. * Version 2  
  13. * modified by Maj Jim McMurry
  14. * ANGSC/DOSC Truax Field, WI 15 Jun 1986
  15. *
  16. * --- makes extensive use of the technique where we write to the last
  17. * --- column of line 22 to get the display on line 23 without screen jump.
  18. *
  19. *
  20. USE PSPHONE
  21. GO BOTTOM
  22. * --- for use in checking if selected record is in range
  23. STORE # TO last
  24. * --- displays will be alphabetical based on last name as that is how
  25. * --- PSPHONEI is indexed.  Deletions will be automatically updated
  26. USE PSPHONE INDEX PSPHONEI
  27. * --- we won't pack unless a deletion has been made
  28. STORE 'N' TO needpack
  29. STORE '           ' TO mlname
  30. DO WHILE T
  31.    SET EXACT ON
  32.    GO TOP
  33.    ERASE
  34.    IF mlname = '           '
  35.       STORE 'TELEPHONE RECORD VIEW/DELETE';
  36.              TO heading
  37.       DO PSHEADING
  38.       STORE '           ' TO select
  39. * --- done this way so the record will be re-displayed with asterisk
  40.       @  0, 0 SAY gcuron
  41.       @ 22,79 SAY '         Enter Name To Delete, (S)can , Or ';
  42.                   +'<RETURN> To Exit ';
  43.               GET select PICTURE '!!!!!!!!!!!'
  44.       READ NOUPDATE
  45.       @  0, 0 SAY gcuroff
  46.    ENDIF
  47.    IF select = '           ' 
  48.       IF needpack = 'N'
  49.          @ 22,79 SAY gclearline
  50.          @ 10, 0 SAY ' '
  51.          STORE 10 TO line
  52.          STORE 'No Last Name Entered ' + gfirstname + ;
  53.              + ' Returning To Phone Menu' TO prompt
  54.          DO PSPROMPT
  55.          STORE 1 TO counter
  56.          DO WHILE counter < gdelay
  57.             STORE counter + 1 TO counter
  58.          ENDDO
  59.       ELSE
  60.          ERASE
  61.          STORE ' ' TO select
  62.          @ 22,12 SAY 'Permanently Delete Records Marked ';
  63.                     +'This Session? (Y/N) ';
  64.                  GET select PICTURE '!'
  65.          READ
  66.          @ 22, 0  SAY gclearline
  67.          IF select = 'N'
  68.             STORE 10 TO line
  69.             STORE 'Removing Deletion Flags From Marked Records' TO prompt
  70.             DO PSPROMPT
  71.             RECALL ALL
  72.          ELSE
  73.             STORE 10 TO line
  74.             STORE 'Permanently Deleting Marked Records '+gfirstname TO prompt
  75.             DO PSPROMPT
  76.             PACK
  77.          ENDIF
  78.       ENDIF
  79.       USE
  80.       RELEASE ALL EXCEPT g*
  81.       SET EXACT OFF
  82.       RETURN
  83.    ENDIF
  84.    IF $(select,1,1) = ' '
  85.       * --- he added some leading space(s)
  86.       STORE 1 TO pointer
  87.       * --- locate the first non-empty character
  88.       DO WHILE $(select,pointer,1) = ' '
  89.          STORE pointer + 1 TO pointer
  90.       ENDDO
  91.       * --- get the non-empty characters
  92.       STORE $(select,pointer,LEN(select)-pointer + 1) TO select
  93.    ENDIF
  94.    RELEASE pointer
  95.    STORE TRIM(select) TO mlname
  96. * --- give the guy a way out
  97.    DO CASE
  98.       CASE mlname <> 'S'
  99.          ERASE
  100.          STORE 1 TO line
  101.          STORE 'SEARCH BY LAST NAME' TO prompt
  102.          DO PSPROMPT
  103.          FIND &mlname
  104.          IF # = 0
  105.             @ 22,79 SAY '                         '+;
  106.                         'That Name Is Not In The Database'
  107.             STORE 0 TO counter
  108.             DO WHILE counter < gdelay
  109.                STORE counter + 1 TO counter
  110.             ENDDO
  111.             STORE '           ' TO mlname
  112. * --- get back a little quicker
  113.             LOOP
  114.          ELSE
  115.             @ 4, 0 SAY 'Rec #   Last Name    First    Rank    O/S    U #';
  116.                       +'   Type     Location   Phone'
  117.             @ 5, 0 SAY gline
  118.             @ 5,78 SAY ' '
  119.             STORE 0 TO line
  120.             DO WHILE .NOT. EOF .AND. !(lname) = mlname
  121. * --- stops the screen after a screenful or two - can be expanded if necessary
  122. * --- but that would take more than 29 Smith or Jones'
  123.                IF line = 8 .OR. line = 19 
  124.                   @ 22,79 SAY '                   '+;
  125.                               'More To Come ... Strike Any Key To Continue'
  126.                   SET CONSOLE OFF
  127.                   WAIT
  128.                   SET CONSOLE ON
  129.                   ERASE
  130.                   STORE 1 TO line
  131.                   STORE 'SEARCH BY LAST NAME' TO prompt
  132.                   DO PSPROMPT
  133.             @ 4, 0 SAY 'Rec #   Last Name    First    Rank    O/S    U #';
  134.                       +'   Type     Location   Phone'
  135.                   @ 5, 0 SAY gline
  136.                   @ 5,78 SAY ' '
  137.                   STORE 0 TO line
  138.                ENDIF
  139.                IF *
  140.                   SKIP
  141.                   LOOP
  142.                ENDIF
  143.                DISPLAY  ' '+lname+'  '+fname+'  '+rank+'   '+;
  144.                         offsym+'   '+unitno+'   '+unitype+'   '+icao+;
  145.                        '   '+state+'   '+avnop+'-'+avnos
  146.                STORE line + 1 TO line
  147.                SKIP
  148.             ENDDO
  149.             STORE '1' TO recno
  150.             STORE '     ' TO select
  151.             @  0, 0 SAY gcuron
  152.             @ 22,79 SAY '             '+;
  153.                         'Enter # To Delete Or <RETURN> To Try Another Name ';
  154.                     GET select PICTURE '99999'
  155.             READ NOUPDATE
  156.             @  0, 0 SAY gcuroff
  157.             @ 22,79 SAY gclearline
  158.             IF select = '     '
  159.                STORE '           ' TO mlname
  160.                LOOP
  161.             ENDIF
  162.             IF $(select,1,1) = ' '
  163.                * --- he added some leading space(s)
  164.                STORE 1 TO pointer
  165.                 * --- locate the first non-empty character
  166.                DO WHILE $(select,pointer,1) = ' '
  167.                   STORE pointer + 1 TO pointer
  168.                ENDDO
  169.                * --- get the non-empty characters
  170.                STORE $(select,pointer,LEN(select)-pointer + 1) TO select
  171.             ENDIF
  172.             RELEASE pointer
  173.             STORE TRIM(select) TO recno     
  174.             IF recno <> ' '
  175. * --- check if there's a number that big
  176.                IF VAL(recno) > last
  177.                   @ 22,79 SAY gclearline
  178.                   @ 22,79 SAY '                         '+;
  179.                               'There Is No '+recno+' ... Try Again'
  180.                   STORE 0 TO counter
  181.                   DO WHILE counter < gdelay
  182.                      STORE counter + 1 TO counter
  183.                   ENDDO
  184.                ELSE
  185.                   @ 22,79 SAY gclearline
  186.                   @ 22,79 SAY '                        '+;
  187.                               'Marking Record '+recno+' For Deletion'
  188.                   STORE 0 TO counter
  189.                   DO WHILE counter < gdelay
  190.                      STORE counter + 1 TO counter
  191.                   ENDDO
  192.                   @ 22,79 SAY gclearline
  193.                   GO VAL(recno)
  194.                   DELETE
  195.                   STORE 'Y' TO needpack
  196.                   STORE '           ' TO mlname
  197.                ENDIF
  198.             ENDIF
  199.          ENDIF
  200.       CASE mlname = 'S'
  201.          SET EXACT OFF
  202.          @ 22,79 SAY gclearline
  203.          STORE ' ' TO choice
  204.          @ 22,79 SAY '                       ';
  205.                     +'Letter To Scan Or <Return> For All ';
  206.                  GET choice PICTURE '!'
  207.          READ NOUPDATE
  208.          IF choice = ' '
  209.             STORE 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' TO letters
  210.             STORE 1 TO loops
  211.          DO WHILE loops <= 26
  212.          ELSE
  213.             STORE choice TO letters
  214.             STORE 1 TO loops
  215.          DO WHILE loops <= 1
  216.          ENDIF
  217.             ERASE
  218.             STORE $(letters,loops,1) TO scan
  219.             STORE 1 TO line
  220.             STORE 'SCANNING FIRST LETTER ' + scan TO prompt
  221.             DO PSPROMPT
  222.             FIND &scan
  223.             STORE loops + 1 TO loops
  224.             IF !($(lname,1,1)) <> scan
  225.                STORE 10 TO line
  226.                STORE 'There Are No Names Beginning With ' + scan TO prompt
  227.                DO PSPROMPT
  228.                STORE 1 TO counter
  229.                DO WHILE counter < gdelay
  230.                   STORE counter + 1 TO counter
  231.                ENDDO
  232.                @  9, 0 SAY gclearline
  233.                @ 10, 0 SAY gclearline
  234.                @ 11, 0 SAY gclearline
  235.             ELSE
  236.                @ 4, 0 SAY 'Rec #   Last Name    First    Rank    O/S    U #';
  237.                          +'   Type     Location   Phone'
  238.                @ 5, 0 SAY gline
  239.                @ 5,78 SAY ' '
  240.                STORE 0 TO line
  241.                DO WHILE .NOT. EOF .AND. !($(lname,1,1)) = scan
  242.                   IF line = 8 .OR. line = 19
  243.                      @ 22,79 SAY '                   '+;
  244.                                  'More To Come ... Strike Any Key To Continue'
  245.                      SET CONSOLE OFF
  246.                      STORE 1 TO line
  247.                      STORE 'SCANNING FIRST LETTER ' + scan TO prompt
  248.                      WAIT
  249.                      SET CONSOLE ON
  250.                      ERASE
  251.                      DO PSPROMPT
  252.                @ 4, 0 SAY 'Rec #   Last Name    First    Rank    O/S    U #';
  253.                          +'   Type     Location   Phone'
  254.                      @ 5, 0 SAY gline
  255.                      @ 5,78 SAY ' '
  256.                      STORE 0 TO line
  257.                   ENDIF
  258.                   IF *
  259.                      SKIP
  260.                      LOOP
  261.                   ENDIF
  262.                   DISPLAY  ' '+lname+'  '+fname+'  '+rank+'   '+;
  263.                            offsym+'   '+unitno+'   '+unitype+'   '+icao+;
  264.                           '   '+state+'   '+avnop+'-'+avnos
  265.                   STORE line + 1 TO line
  266.                   SKIP
  267.                ENDDO
  268.                STORE '     ' TO select
  269.                @  0, 0 SAY gcuron
  270.                @ 22,79 SAY '                 '+;
  271.                            'Enter # To Delete Or <RETURN> To Continue ';
  272.                        GET select PICTURE '99999'
  273.                READ NOUPDATE
  274.                @  0, 0 SAY gcuroff
  275.                @ 22,79 SAY gclearline
  276.                IF select <> '     '
  277.                   IF $(select,1,1) = ' '
  278.                      * --- he added some leading space(s)
  279.                      STORE 1 TO pointer
  280.                      * --- locate the first non-empty character
  281.                      DO WHILE $(select,pointer,1) = ' '
  282.                         STORE pointer + 1 TO pointer
  283.                      ENDDO
  284.                      * --- get the non-empty characters
  285.                      STORE $(select,pointer,LEN(select)-pointer + 1) TO select
  286.                   ENDIF
  287.                   STORE TRIM(select) TO recno
  288.                   IF VAL(recno) > last
  289.                      @ 22,79 SAY gclearline
  290.                      @ 22,79 SAY '                          ';
  291.                                 +'There Is No '+select+' ... Try Again'
  292.                      STORE 0 TO counter
  293.                      DO WHILE counter < gdelay
  294.                         STORE counter + 1 TO counter
  295.                      ENDDO
  296.                   ELSE
  297. * --- we'll send him back to same letter to display asterisk and give him
  298. * --- a chance to delete another of the same first letter
  299.                      STORE TRIM(select) TO select
  300.                      STORE loops - 1 TO loops
  301.                      @ 22,79 SAY '                          '+;
  302.                                  'Record '+select+' Marked For Deletion'
  303.                      STORE 1 TO counter
  304.                      DO WHILE counter < gdelay
  305.                         STORE counter + 1 TO counter
  306.                      ENDDO
  307.                      @ 22,79 SAY gclearline
  308.                      GO VAL(recno)
  309.                      DELETE
  310.                      STORE 'Y' TO needpack
  311.                   ENDIF
  312.                ELSE
  313.                   STORE '           ' TO mlname
  314.                ENDIF
  315.             ENDIF
  316.          ENDDO
  317.    ENDCASE
  318. ENDDO T
  319. * --- EOF PSDELETP.PRG
  320.  
  321.  gdelay
  322.                      STORE counter + 1 TO counter
  323.                   ENDDO
  324.                ELSE
  325.                   @ 22,79 SAY gclearline
  326.                   @ 22,79 SAY '                        '+;
  327.                               'Marking Record '+recn