home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / workdb.zip / DUPREC.PRG < prev    next >
Text File  |  1988-08-15  |  5KB  |  165 lines

  1. *!!* dBASE CONVERT - dBASE III File Conversion Aid  v2.01  1/10/86
  2. *
  3. SET HEADING OFF
  4. SET SAFETY OFF
  5. * duprec.sig 08/18/83
  6. * this module displays duplicate records with the same last names
  7. * and gives enough information to evaluate them. Note if you
  8. * use the edit function the 'edited' information will appear in
  9. * the main file but will not appear on the duplicate record screen.
  10. * this is because we are saving what we see here to a temporary file
  11. * while we edit.
  12. SKIP -1
  13. STORE ORDER TO ORDER1
  14. STORE LNAME TO LNAME1
  15. STORE FNAME TO FNAME1
  16. STORE CITY TO CITY1
  17. STORE ZIP TO ZIP1
  18. STORE VOL1 TO VOL11
  19. IF DELETE()
  20.    STORE 'DELETED' TO DELETED1
  21. ELSE
  22.    STORE '       ' TO DELETED1
  23. ENDIF *
  24. SKIP
  25. STORE ORDER TO ORDER2
  26. STORE LNAME TO LNAME2
  27. STORE FNAME TO FNAME2
  28. STORE CITY TO CITY2
  29. STORE ZIP TO ZIP2
  30. STORE VOL1 TO VOL12
  31. IF DELETE()
  32.    STORE 'DELETED' TO DELETED2
  33. ELSE
  34.    STORE '       ' TO DELETED2
  35. ENDIF *
  36. STORE .T. TO MORE
  37. DO WHILE MORE
  38.    * set up the screen format and variables
  39.    CLEAR
  40.    STORE '<C>ONTINUE, <D>ELETE/RECALL, <E>DIT, <P>RINT, <Q>UIT' TO PROMPT
  41.    STORE 'RECORDS WITH DUPLICATE LAST NAMES' TO MODE
  42.    STORE '?' TO COMMAND
  43.    STORE '?' TO RECORD
  44.    * show both records and find out what to do next
  45.    @ 01,27 SAY MODE
  46.    @ 02,00 SAY '+--------------------'
  47.    @ 02,20 SAY '---------------------'
  48.    @ 02,40 SAY '---------------------'
  49.    @ 02,60 SAY '-------------------+'
  50.    @ 03,00 SAY 'LASTNAME: '
  51.    @ 03,12 SAY LNAME1
  52.    @ 03,40 SAY 'FIRST: '
  53.    @ 03,49 SAY FNAME1
  54.    @ 05,00 SAY 'CITY: '
  55.    @ 05,20 SAY CITY1
  56.    @ 05,50 SAY 'ZIP: '
  57.    @ 05,55 SAY ZIP1
  58.    @ 06,00 SAY 'VOLUMES:'
  59.    @ 06,10 SAY VOL11
  60.    @ 08,00 SAY 'ORDER NUMBER: '
  61.    @ 08,17 SAY ORDER1
  62.    @ 08,50 SAY DELETED1
  63.    @ 09,00 SAY '+--------------------'
  64.    @ 09,20 SAY '---------------> > > '
  65.    @ 09,40 SAY 'RECORD-A < < <-------'
  66.    @ 09,60 SAY '-------------------+'
  67.    @ 11,00 SAY 'LASTNAME: '
  68.    @ 11,12 SAY LNAME2
  69.    @ 11,40 SAY 'FIRST: '
  70.    @ 11,49 SAY FNAME2
  71.    @ 13,00 SAY 'CITY: '
  72.    @ 13,20 SAY CITY2
  73.    @ 13,50 SAY 'ZIP: '
  74.    @ 13,55 SAY ZIP2
  75.    @ 14,00 SAY 'VOLUMES: '
  76.    @ 14,10 SAY VOL12
  77.    @ 16,00 SAY 'ORDER NUMBER: '
  78.    @ 16,17 SAY ORDER2
  79.    @ 16,50 SAY DELETED2
  80.    @ 17,00 SAY '+--------------------'
  81.    @ 17,20 SAY '---------------> > > '
  82.    @ 17,40 SAY 'RECORD-B < < <-------'
  83.    @ 17,60 SAY '-------------------+'
  84.    @ 18,17 SAY PROMPT
  85.    @ 19,24 SAY 'WHAT NEXT?'
  86.    @ 19,35 GET COMMAND PICTURE '!'
  87.    READ
  88.    * If Delete, Edit or Print - ask question
  89.    IF COMMAND = 'D' .OR. COMMAND = 'E' .OR. COMMAND = 'P'
  90.       * move up a line
  91.       ?? CHR(11)
  92.       ?? '                         WHICH RECORD ?'
  93.       SET CONSOLE OFF
  94.       WAIT TO RECORD
  95.       SET CONSOLE ON
  96.       STORE UPPER(record) TO record
  97.       ?? RECORD
  98.    ENDIF COMMAND = D
  99.    * move to the record to be processed
  100.    IF RECORD = 'A'
  101.       SKIP -1
  102.    ENDIF RECORD = A
  103.    *PROCESS the record
  104.    DO CASE
  105.       CASE COMMAND = 'C' .OR. COMMAND = 'Q'
  106.            * set up the loop to exit
  107.  
  108.            STORE .F. TO MORE
  109.       CASE COMMAND = 'D'
  110.            IF DELETE()
  111.               RECALL
  112.            ELSE
  113.               DELETE
  114.            ENDIF *
  115.            IF RECORD = 'A'
  116.               IF DELETED1 = 'DELETED'
  117.                  STORE '       ' TO DELETED1
  118.               ELSE
  119.                  STORE 'DELETED' TO DELETED1
  120.               ENDIF DELETED1
  121.            ENDIF RECORD = A
  122.            IF RECORD <> 'A'
  123.               IF DELETED2 = 'DELETED'
  124.                  STORE '       ' TO DELETED2
  125.               ELSE
  126.                  STORE 'DELETED' TO DELETED2
  127.               ENDIF DELETED2
  128.            ENDIF RECORD <> A
  129.       CASE COMMAND = 'E'
  130.            SAVE TO TEMP2
  131.            RELEASE ALL
  132.            RESTORE FROM TEMP1
  133.            * don't use indexs to speed up the edit
  134.            ? 'HIT RETURN TO CONTINUE'
  135.            SET CONSOLE OFF
  136.            RESTORE
  137.            STORE RECNO() TO rec_number
  138.            CLOSE INDEX
  139.            IF REC_NUMBER = 0
  140.               GOTO 1
  141.            ELSE
  142.               GOTO REC_NUMBER
  143.            ENDIF REC:NUMBER = 0
  144.            SET CONSOLE ON
  145.            DO EDIT.PRG
  146.            SAVE TO TEMP1
  147.            RELEASE ALL
  148.            RESTORE FROM TEMP2
  149.       CASE COMMAND = 'P'
  150.            DO PRINT.PRG
  151.    ENDCASE
  152.    * move back to the correct record
  153.    IF RECORD = 'A'
  154.       SKIP
  155.    ENDIF RECORD = A
  156.    * loop back again
  157. ENDDO WHILE MORE
  158. * if more duplicates are to be found
  159. * set up the loop to continue in DUPCHECK.SIG
  160. IF COMMAND = 'C'
  161.  
  162.    STORE .T. TO MORE
  163. ENDIF COMMAND = C
  164.  
  165.