home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / pssst.zip / PSSEARCH.PRG < prev    next >
Text File  |  1986-08-15  |  11KB  |  347 lines

  1. * PSTSRCHP.PRG
  2. *
  3. * A DBASE II 16BIT COMMAND FILE to allow finding a phone number
  4. * in PHONE.DBF by matching any of nine variables input by user.
  5. *
  6. * Version 1
  7. * By LTC Denny Hugg
  8. * ANGSC/DOS Andrews AFB MD 16 Jul 1985
  9. *
  10. * Version 2
  11. * modified by Maj Jim McMurry
  12. * ANGSC/DOSC Truax Field, WI 15 Jun 1986
  13. *
  14. *
  15. DO WHILE T
  16.    ERASE
  17.    STORE 'TELEPHONE SEARCH / PRINT' TO heading
  18.    DO PSHEADING
  19.    STORE 'LN' TO p1
  20.    STORE 'FN' TO p2
  21.    STORE 'RK' TO p3
  22.    STORE 'U#' TO p4
  23.    STORE 'UT' TO p5
  24.    STORE 'IC' TO p6
  25.    STORE 'OS' TO p7
  26.    STORE 'SB' TO p8
  27.    STORE 'AV' TO p9
  28.    STORE 'ST' TO p10
  29.    STORE 'RET' TO p11
  30.    STORE ' '+p1+'  '+p2+'  '+p3+'  '+p4+'  '+p5+'  '+p6+;
  31.          '  '+p7+'  '+p8+'  '+p9+'  '+p10+'  '+p11+'  ' TO lin
  32.    STORE '               (Find By Last Name)' TO y1
  33.    STORE '              (Find By First Name)' TO y2
  34.    STORE '                    (Find By Rank)' TO y3
  35.    STORE '             (Find By Unit Number)' TO y4
  36.    STORE '               (Find By Unit Type)' TO y5
  37.    STORE '                    (Find By ICAO)' TO y6
  38.    STORE '           (Find By Office Symbol)' TO y7
  39.    STORE '                 (Find By Subject)' TO y8
  40.    STORE '          (Find By Autovon Prefix)' TO y9
  41.    STORE '                   (Find by State)' TO y10
  42.    STORE '       (Return To Main Phone Menu)' TO y11
  43.    STORE '0004081216202428323640' TO col
  44.    STORE 1 TO c
  45.    STORE '1' TO z
  46.    STORE '0' TO mcho
  47.    STORE t TO screen
  48.    @ 22,0 SAY gline
  49.    DO WHILE screen
  50.       @ 22,79 SAY lin + y&z
  51.       @ 23,VAL($(col,c,2)) GET p&z
  52.       CLEAR GETS
  53.       SET CONSOLE OFF
  54.       STORE '0' TO mcho
  55.       DO WHILE ' '<>mcho .AND. .NOT. mcho$'DCKM46'
  56.          WAIT TO mcho
  57.       ENDDO
  58.       SET CONSOLE ON
  59.       DO CASE
  60.          CASE mcho$('CM6')
  61.             IF c#21
  62.                STORE c+2 TO c
  63.                IF c<19
  64.                   STORE str(val(z)+1,1) TO z
  65.                ELSE
  66.                   STORE str(val(z)+1,2) TO z
  67.                ENDIF
  68.             ELSE
  69.                STORE 1 TO c
  70.                STORE '1' TO z
  71.             ENDIF
  72.          CASE mcho$('KD4')
  73.             IF c>1
  74.                STORE c-2 TO c
  75.                IF c<19
  76.                   STORE str(val(z)-1,1) TO z
  77.                ELSE
  78.                   STORE str(val(z)-1,2) TO z
  79.                ENDIF
  80.             ELSE
  81.                STORE 21 TO c
  82.                STORE '11' TO z
  83.             ENDIF
  84.          CASE mcho = ' '
  85.             STORE f TO screen
  86.             LOOP
  87.       ENDCASE
  88.    ENDDO
  89.    @ 22, 0 SAY gclearline
  90.    @ 22,79 SAY gclearline
  91.    DO CASE
  92.       CASE c=1
  93.          @  0, 0 SAY gcuron
  94.          STORE '           ' TO requested
  95.          @ 22,25 SAY 'Last Name Desired ' GET requested PICTURE '!!!!!!!!!!!'
  96.          READ
  97.          STORE "lname = '" + TRIM(requested) + "'" TO condition
  98.          @  0, 0 SAY gcuroff
  99.          IF requested = '           '
  100.             LOOP
  101.          ENDIF
  102.       CASE c=3
  103.          @  0, 0 SAY gcuron
  104.          STORE '       ' TO requested
  105.          @ 22,27 SAY 'First Name Desired ' GET requested PICTURE '!!!!!!!'
  106.          READ
  107.          STORE "fname = '" + TRIM(requested) + "'" TO condition
  108.          @  0, 0 SAY gcuroff
  109.          IF requested = '       '
  110.             LOOP
  111.          ENDIF
  112.       CASE c=5
  113.          @  0, 0 SAY gcuron
  114.          STORE '     ' TO requested
  115.          @ 22,31 SAY 'Rank Desired ' GET requested PICTURE '!!!!!'
  116.          READ
  117.          STORE "rank = '" + TRIM(requested) + "'" TO condition
  118.          @  0, 0 SAY gcuroff
  119.          IF requested = '     '
  120.             LOOP
  121.          ENDIF
  122.       CASE c=7
  123.          @  0, 0 SAY gcuron
  124.          STORE '   ' TO requested
  125.          @ 22,28 SAY 'Unit Number Desired ' GET requested PICTURE '999'
  126.          READ
  127.          STORE "unitno = '" + TRIM(requested) + "'" TO condition
  128.          @  0, 0 SAY gcuroff
  129.          IF requested = '   '
  130.             LOOP
  131.          ENDIF
  132.       CASE c=9
  133.          @  0, 0 SAY gcuron
  134.          STORE '      ' TO requested
  135.          @ 22,28 SAY 'Unit Type Desired ' GET requested PICTURE '!!!!!!'
  136.          READ
  137.          STORE "unitype = '" + TRIM(requested) + "'" TO condition
  138.          @  0, 0 SAY gcuroff
  139.          IF requested = '      '
  140.             LOOP
  141.          ENDIF
  142.       CASE c=11
  143.          @  0, 0 SAY gcuron
  144.          STORE '   ' TO requested
  145.          @ 22,26 SAY 'Location (ICAO) Desired ' GET requested PICTURE '!!!'
  146.          READ
  147.          STORE "icao = '" + TRIM(requested) + "'" TO condition
  148.          @  0, 0 SAY gcuroff
  149.          IF requested = '   '
  150.             LOOP
  151.          ENDIF
  152.       CASE c=13
  153.          @  0, 0 SAY gcuron
  154.          STORE '    ' TO requested
  155.          @ 22,27 SAY 'Office Symbol Desired ' GET requested PICTURE '!!!!'
  156.          READ
  157.          STORE "offsym = '" + TRIM(requested) + "'" TO condition
  158.          @  0, 0 SAY gcuroff
  159.          IF requested = '    '
  160.             LOOP
  161.          ENDIF
  162.       CASE c=15
  163.          @  0, 0 SAY gcuron
  164.          STORE '                ' TO requested
  165.          @ 22,26 SAY 'Subject Desired ';
  166.                  GET requested PICTURE '!!!!!!!!!!!!!!!!'
  167.          READ
  168.          STORE "subject = '" + TRIM(requested) + "'" TO condition
  169.          @  0, 0 SAY gcuroff
  170.          IF requested = '                '
  171.             LOOP
  172.          ENDIF
  173.       CASE c=17
  174.          @  0, 0 SAY gcuron
  175.          STORE '   ' TO requested
  176.          @ 22,27 SAY 'Autovon Prefix Desired ' GET requested PICTURE '999'
  177.          READ
  178.          STORE "avnop = '" + TRIM(requested) + "'" TO condition
  179.          @  0, 0 SAY gcuroff
  180.          IF requested = '    '
  181.             LOOP
  182.          ENDIF
  183.       CASE c=19
  184.          @  0, 0 SAY gcuron
  185.          STORE '  ' TO requested
  186.          @ 22,32 SAY 'State Desired ' GET requested PICTURE '!!'
  187.          READ
  188.          STORE "state = '" + TRIM(requested) + "'" TO condition
  189.          @  0, 0 SAY gcuroff
  190.          IF requested = '  '
  191.             LOOP
  192.          ENDIF
  193.       CASE c=21
  194.          RELEASE ALL EXCEPT g*
  195.          RETURN
  196.    ENDCASE
  197.    IF $(requested,1,1) = ' '
  198.       * --- he added some leading space(s)
  199.       STORE 1 TO pointer
  200.       * --- locate the first non-empty character
  201.       DO WHILE $(requested,pointer,1) = ' '
  202.          STORE pointer + 1 TO pointer
  203.       ENDDO
  204.       * --- get the non-empty characters
  205.       STORE $(requested,pointer,LEN(requested)-pointer + 1) TO requested
  206.    ENDIF
  207.    RELEASE pointer
  208.    STORE TRIM(requested) TO requested
  209.    @  0, 0 SAY gcuroff
  210.    STORE ' ' TO moutput
  211.    USE PSPHONE INDEX PSPHONEI
  212.    IF c=1
  213.       FIND &requested
  214.    ENDIF
  215.    @ 22, 0 SAY gclearline
  216.    @ 22,16 SAY 'Do You Want Output On Screen Or Printer? (S/P):'
  217.    DO WHILE moutput <> 'S' .AND. moutput <> 'P'
  218.       STORE ' ' TO moutput
  219.       @ 22,63 GET moutput PICTURE '!'
  220.       READ
  221.    ENDDO
  222.    @ 22, 0 SAY gclearline
  223. * --- considered indexing and using FIND.  A test on a 140 record database
  224. * --- (on a floppy drive) yielded 51 seconds this way, and 58 seconds  to
  225. * --- create an index then use the FIND followed by DO WHILE loop.  Since
  226. * --- I'm not going to carry 10 indexes on this database, this is the best way.
  227.    IF moutput = 'P'
  228.       STORE 56 TO mpagelen
  229.       STORE 1 TO pageno
  230.       @ 10,32 SAY 'Printing Now ...'
  231.       SET FORMAT TO PRINT
  232.       STORE 2 TO mline
  233.       STORE '----------------------------------------';
  234.            +'----------------------------------------' TO gline
  235.    ELSE
  236.       ERASE
  237.       STORE 20 TO mpagelen
  238.       STORE 0 TO mline
  239.    ENDIF
  240.    IF moutput = 'P'
  241.       @ mline, 1 SAY 'Page no. ' + STR(pageno,1)
  242.       @ mline, 31 - INT((LEN(requested)+.5)/2) SAY 'LISTING OF ALL ';
  243.                                    + requested + "S"
  244.       @ mline,71 SAY gdate
  245.       STORE mline + 1 TO mline
  246.    ELSE
  247.       STORE 1 TO line
  248.       STORE 'LISTING ' + requested + "'S" TO prompt
  249.       DO PSPROMPT
  250.    ENDIF
  251.    STORE mline + 3 TO mline
  252.    * --- print the info
  253.    STORE 0 TO mpasses
  254.    @ mline, 0 SAY 'LAST NAME'
  255.    @ mline,12 SAY 'FIRST'
  256.    @ mline,20 SAY 'RANK'
  257.    @ mline,27 SAY 'O/S'
  258.    @ mline,33 SAY 'U/#'
  259.    @ mline,38 SAY 'TYPE'
  260.    @ mline,46 SAY 'LOC'
  261.    @ mline,51 SAY 'ST'
  262.    @ mline,55 SAY 'SUBJECT'
  263.    @ mline,72 SAY 'PHONE'
  264.    STORE mline + 1 TO mline
  265.    @ mline, 0 SAY gline
  266.    STORE mline + 1 TO mline
  267.    DO WHILE .NOT. EOF
  268.       IF mline > mpagelen
  269.          STORE 2 TO mline
  270.          IF moutput = "S"
  271.             @ 22,23 SAY "- Please Hit Any Key To Continue -"
  272.             SET CONSOLE OFF
  273.             WAIT
  274.             SET CONSOLE ON
  275.             ERASE
  276.          ELSE
  277.             EJECT
  278.             STORE pageno + 1 TO pageno
  279.             @ mline, 0 SAY 'Page no. ' + STR(pageno,1)
  280.             @ mline,72 SAY gdate
  281.             STORE mline + 3 To mline
  282.          ENDIF
  283.          @ mline, 0 SAY 'LAST NAME'
  284.          @ mline,12 SAY 'FIRST'
  285.          @ mline,20 SAY 'RANK'
  286.          @ mline,27 SAY 'O/S'
  287.          @ mline,33 SAY 'U/#'
  288.          @ mline,38 SAY 'TYPE'
  289.          @ mline,46 SAY 'LOC'
  290.          @ mline,51 SAY 'ST'
  291.          @ mline,55 SAY 'SUBJECT'
  292.          @ mline,72 SAY 'PHONE'
  293.          STORE mline + 1 TO mline
  294.          @ mline, 0 SAY gline
  295.          STORE mline + 1 TO mline
  296.       ENDIF
  297.       IF .NOT. &condition
  298.          SKIP
  299.          LOOP
  300.       ENDIF
  301.       @ mline, 0 SAY lname
  302.       @ mline,12 SAY fname
  303.       @ mline,20 SAY rank
  304.       @ mline,27 SAY offsym
  305.       @ mline,33 SAY unitno
  306.       @ mline,38 SAY unitype
  307.       @ mline,46 SAY icao
  308.       @ mline,51 SAY state
  309.       @ mline,55 SAY subject
  310.       @ mline,72 SAY avnop + '-' + avnos
  311.       STORE mline + 1 TO mline
  312.       STORE mpasses + 1 TO mpasses
  313.       SKIP
  314.    ENDDO
  315.    IF mpasses = 0
  316.       @ 10,26 - INT((LEN(requested)+.5)/2) SAY 'There Is No ';
  317.                                    + requested + ' In The Database'
  318.       STORE 0 TO timer
  319.       DO WHILE timer <= gdelay
  320.          STORE timer + 1 TO timer
  321.       ENDDO
  322.    ENDIF
  323.    IF moutput = "S" .AND. mpasses <> 0
  324.       @ 22,22 SAY "- Please Strike Any Key To Continue -"
  325.       SET CONSOLE OFF
  326.       WAIT
  327.       SET CONSOLE ON
  328.       @ 22, 0 SAY gclearline
  329.    ELSE
  330.       * --- dumps last line out of printer buffer
  331.       @ 0, 0 SAY CHR(13)
  332.       SET FORMAT TO SCREEN
  333.       @ 10, 0 SAY gclearline
  334.    ENDIF
  335. ENDDO T
  336. * --- EOF PSTSRCHP.PRG
  337. RCHP.PRG
  338. utput = "S"
  339.             @ 22,23 SAY "- Please Hit Any Key To Continue -"
  340.             SET CONSOLE OFF
  341.             WAIT
  342.             SET CONSOLE ON
  343.             ERASE
  344.          ELSE
  345.             EJECT
  346.             STORE pageno + 1 TO pageno
  347.             @